Bonjour tout le monde,
Je viens demander de l'aide sur une de mes macros qui me cause pas mal de problèmes. Je vous explique le truc :
J'ai un fichier où j'ai traité et analysé des données venant d'une base de données de notre serveur interne et qui me donnent des résultats. J'ai créé un deuxième fichier de "synthèse" qui est un tableau récapitulatif simplifié de ces résultats.
Or, les données importées ne concernent que les 3 derniers mois contre les 3 dernières années pour la synthèse. Et je cherche à copier/coller mes résultats depuis le premier fichier vers le fivhier synthèse.
Voilà ma macro :
Sub synthèse()
For j = 2 To 1000
If InStr(1, Cells(j, 2), "XXX", vbTextCompare) <> 0 Then
Windows("classeur1.xls").Activate
Cells(j, 16).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(32, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("classeur1.xls").Activate
Cells(j, 12).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(31, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next j
For i = 2 To 10
If InStr(1, Cells(i, 2), "YYY", vbTextCompare) <> 0 Then
Windows("classeur1.xls").Activate
Cells(i, 16).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(34, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("classeur1.xls").Activate
Cells(i, 12).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(33, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next i
End sub
Grosso modo, si le mot (valeur) XXX si trouve dans le premier fichier, deux résultats vont sur le fichier "synthèse". Mais avec mon système, seule la première boucle fonctionne (celle avec la variable "j") et je ne comprends pas pourquoi cela ne fonctionne pas avec la seconde (en sachant que j'en ai une bonne centaine à traiter...). Je suis vraiment bloqué et vient donc chercher de l'aide auprès de vous.
Merci d'avoir pris le temps de me lire et de me donner des idées si vous voyez d'où vient le problème.
Je viens demander de l'aide sur une de mes macros qui me cause pas mal de problèmes. Je vous explique le truc :
J'ai un fichier où j'ai traité et analysé des données venant d'une base de données de notre serveur interne et qui me donnent des résultats. J'ai créé un deuxième fichier de "synthèse" qui est un tableau récapitulatif simplifié de ces résultats.
Or, les données importées ne concernent que les 3 derniers mois contre les 3 dernières années pour la synthèse. Et je cherche à copier/coller mes résultats depuis le premier fichier vers le fivhier synthèse.
Voilà ma macro :
Sub synthèse()
For j = 2 To 1000
If InStr(1, Cells(j, 2), "XXX", vbTextCompare) <> 0 Then
Windows("classeur1.xls").Activate
Cells(j, 16).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(32, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("classeur1.xls").Activate
Cells(j, 12).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(31, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next j
For i = 2 To 10
If InStr(1, Cells(i, 2), "YYY", vbTextCompare) <> 0 Then
Windows("classeur1.xls").Activate
Cells(i, 16).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(34, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("classeur1.xls").Activate
Cells(i, 12).Select
Selection.Copy
Windows("synthèse.xls").Activate
Sheets("noms").Activate
Cells(33, 6).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next i
End sub
Grosso modo, si le mot (valeur) XXX si trouve dans le premier fichier, deux résultats vont sur le fichier "synthèse". Mais avec mon système, seule la première boucle fonctionne (celle avec la variable "j") et je ne comprends pas pourquoi cela ne fonctionne pas avec la seconde (en sachant que j'en ai une bonne centaine à traiter...). Je suis vraiment bloqué et vient donc chercher de l'aide auprès de vous.
Merci d'avoir pris le temps de me lire et de me donner des idées si vous voyez d'où vient le problème.