Programmation Excel

Résolu/Fermé
famillelulu Messages postés 4 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 11 nov. 2008 à 16:33
Boulette67 Messages postés 54 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 16 juillet 2011 - 21 nov. 2008 à 17:57
Bonjour,

Je recherche une petite aide concernant la création d'un petit programme.
Je possède 2 sites, le site A et le site B relier par VPN.
Le site A m'envoie un fichier Excel avec un résultat x (exemple 250 000).
Le site B récupère le fichier du site A et applique un calcul sur le résultat du fichier A (exemple 250 000 * 3,2 / 5), puis le renvoi au site A en fichier Excel. Je peux recevoir plusieurs fichiers Excel en même temps et je ne dois pas faire d'erreur dans le renvoi.
Le site A ne doit pas connaitre la méthode de calcul (Aucune formule ne doit apparaitre dans le fichier de renvoi).
Le fichier change de nom voir même de répertoire

Exemple : fichier1 11-11-2008.xls se transforme en Reponse fichier1 11-11-2008.xls

J'aurais besoin d'aide pour l'effectuer en automatique ?

Merci

lulu
A voir également:

3 réponses

Boulette67 Messages postés 54 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 16 juillet 2011 6
11 nov. 2008 à 18:24
Bonsoir,

Voici le code pour créer un nouveau fichier Excel à partir d'un fichier Excel :

Set oXL = CreateObject("Excel.Application")
oXL.Workbooks.Add
ExcelFile = "E:\nouveau1.xls"
oXL.ActiveWorkbook.SaveAs ExcelFile
oXL.ActiveWorkbook.Saved = True
oXL.ActiveWorkbook.Close


Il me faudrait un peu plus de renseignement.
Ce chiffre qui dois subir une modification se trouve-il toujours dans la même cellule?
Si le chiffre à modifier est toujours dans la même cellule de chaque fichier Excel (exemple : A5) il est très facile de récupérer son contenu depuis un autre fichier qui effectuera cette opération puis ce même fichier pourrai créer un nouveau fichier avec le résultat. Je trouve quand même qu'une modification du fichier déja présent sur l'ordinateur serai quand même plus simple et plus rapide.

Tiens moi au courant.
0
famillelulu
11 nov. 2008 à 19:02
Merci pour ta réponse

le chiffre qui doit subir une modification est toujours situé dans la même cellule A1 (il est possible d'avoir plusieurs cellules mais la formule de calcul pour chaque cellules sera identique (maximum de cellule : 8 de A1 à A8) . Éventuellement, je peux modifier le même fichier et le renvoyer. Il est important pour moi que le site A ne comprend pas le mode de calcul.

Comment fais-tu pour récupérer les données par un autre fichier et calculer le nouveau résultat ?

Comment automatiser cette procédure, c'est à dire réceptionner le fichier, effectuer le calcul et le renvoyer au site A ?

Merci
0
Boulette67 Messages postés 54 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 16 juillet 2011 6
12 nov. 2008 à 15:58
Alors j'ai résolu ton problème. Enfin je l'espère ^^

Private Sub cmdLancer_Click()
    vFichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
    Feuil1.Range("B3").Value = vFichier
    Call RecupInfoFichier      'Procedure de recuperation des donnees pour creer la formule ci dessous
    Feuil1.Range("B6").Formula = "='" & NomDossier & "[" & NomFichier & "]Feuil1'!" & Feuil1.Range("B4")
    
    Dim RecupDonnees
    RecupDonnees = Feuil1.Range("B7")
    With CreateObject("Excel.Application").Workbooks.Open(Feuil1.Range("B3"))
        .Worksheets(1).Cells(2, 2) = RecupDonnees       'Cells(2,4) 2=Ligne2 et 4=Colonne4
        .Close
    End With
End Sub


Sub RecupInfoFichier()
    Dim vCarac As String
    Dim I As Integer, Y As Integer
    
    Y = Len(vFichier)       'Longueur du chemin
    For I = 0 To Y
        vCarac = Mid(vFichier, Y - I, 1)        'Extraction des caractères un par un
        If vCarac <> "\" Then
            NomFichier = Right(vFichier, I + 1)     'Nom du fichier dans le chemin
        Else
            NomDossier = Mid(vFichier, 1, Len(vFichier) - Len(NomFichier))      'Nom du dossier dans le chemin
            Exit For
        End If
    Next I
End Sub


Puis dans un module les déclarations suivantes :
Public NomFichier As String
Public NomDossier As String
Public vFichier As String


Comme ça, ça peu paraître difficile ^^ mais je te rassure c'est pas simple lol.
Je vais t'envoyer un fichier exemple https://woofiles.com


Normalement c'est bon.


Si tu as d'autre question n'hésite pas.


Bye
0
famillelulu
13 nov. 2008 à 01:44
Merci Boulette67 pour ton aide.

Je suis aller acheter un ou deux bouquins sur vba et excel pour me permettre de mieux comprendre la programmation sur Excel. Concernant ton fichier il est vide, peux-tu me le renvoyer.
je n'ai pas eu le temps d'essayer ton code mais je devrais le tester demain. Je me pose la question concernant la sélection des cellules. tu sélectionne la cellule B3, tu effectue ensuite le calcul dans la cellule B6 et tu indique le résultat dans la cellule B4 ? Désolé je suis un peu perdue en programmation.

D'après ce que je voix la procédure ce déclenche lorsque j'ouvre le fichier. Moi par contre, je dois récupérer en automatique tous les fichiers qui se trouve dans le répertoire transformation, effectuer un calcul et les renvoyer à leur expéditeur. l'application doit fonctionner 24/24. Je sais pas facile!!!!

Merci encore de tes conseils et de ton aide
0
Boulette67 Messages postés 54 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 16 juillet 2011 6
21 nov. 2008 à 17:57
Désolé mais j'étais pas dispo plus tôt.

Revoilà le fichier :
http://rapidshare.de/files/40961662/traitement.zip.html
0