Bonjour,
J'aimerais créer une macro pour mettre à jour les onglets d'un classeur excel. Je suis totalement novice, mais j'ai commencé par lire des tutoriels. On m'a également apporté de l'aide sur d'autres forums mais qui se revele insuffisante pour l'instant et pour mon cas.
Pour resumer ce fameux cas:
Dans mon "d:\", j'ai
- Fichier "analysis.xls" (1 feuil "synthesis", 1 feuil "pays1", 1 feuil "pays2")
- Fichier "sourcepays1" (1 feuil)
- Fichier "sourcepays2" (1 feuil)
Ces 2 derniers fichiers ont 1 structure identique, seules les valeurs changent.
Tous les mois, je recupère ces fichiers source. Le but est donc de faire une macro pour ne pas faire un copier coller manuel des valeurs (parce qu'en réalité j'ai pas que 2 pays ). En gros, je souhaite que ça se passe ainsi,:
dans feuil "synthesis" avec un bouton "MAJ"
- Trouve moi les fichiers "SourcePays*.xls" dans le dossier
- Ouvre le premier. Controle moi la concordance des mois (valeur) entre le mois choisi en feuil "synthesis" et le mois marqué sur "SourcePays*.xls".
- Si identiques,
- appelle moi la macro definie pour la feuil "pays*" (et qui execute un copier/coller des plages de valeurs spécifées selon le pays)
- Sinon
- msg d'erreur pour ce pays et passe au suivant
- Recommence avec le suivant.[/quote]
Voila du code dont je ne suis, mais alors, vraiment pas sur!
Bon c'est du très sommaire parce que je n'y connais rien, je bloque surtout sur la boucle et le call de la macro en fonction du pays "étudié".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Option Explicit Private Sub ButtonMAJ_Click() Dim wb_target As Workbook Dim chemin, mois_target, wb_sourcex, mois_sourcex As String 'trouve moi les fichiers "SourcePays*.xls" Set chemin = ChDir(ActiveWorkbook.Path) Set wb_sourcex = (chemin & "\" & "SourcePays*.xls") Set wb_target = Workbooks("Analysis.xls") Set mois_target = Workbooks("Analysis.xls").sheets(1).Range("H1") Select Case MsgBox("Etes-vous sûr de vouloir charger les données de" & " " & mois_target & "?", vbYesNo) Case vbYes For Each wb_sourcex In .. 'repertoire avec tous les fichiers sourcepaysx.xls Workbooks.Open (wb_sourcex) If mois_target.Value <> wb_sourcex.Range("B8").Value Then MsgBox "Le mois choisi ne correspond pas avec les données du rapport !", vbExclamation Workbooks("SourcePays*.xls").Close Else 'Call MiseAJour* (nom de la macro; MiseAJour1 si sourcepays1) End If Next wb_sourcex wb_sourcex.Close MsgBox "Vos données ont bien été mises à jour pour " & mois_target Case vbNo End Select End Sub
Toute aide est grandement bienvenue!
Bonne soirée
Partager