VBA Même itération sur deux procédures différentes

Bonjour à tous, quand j'exécute ma macro on me dit qu'elle est très longue. Donc j'ai partagé en deux procédures différentes. Cependant je dois utiliser la même boucle pour les deux procédures. Comme

sub macro1()

for i = 2 to 66

ligneRegion = i

workbook("classeur 1").sheets(1).range("B4")=workbook("classeur2").sheets(1).cells(ligneRegion,2)

workbook("classeur 1").sheets(1).range("N17")=workbook("classeur2").sheets(1).cells(ligneRegion,3)

workbook("classeur 1").sheets(1).range("N18")=workbook("classeur2").sheets(1).cells(ligneRegion,4)

''' et ainsi de suite

activeworkbook.saveCopyas filename:= workbook("classeur 1").sheets(1).range("B4")

next

end sub

sub macro2()

for i = 2 to 66

ligneRegion = i

a = Workbooks("classeur2").Sheets(1).Cells.Find("rCSI_finalphase").Column 'Colonne a patir duquel les valeurs sonts extraites

nb_facteurs = Workbooks("classeur2").Sheets(1).Cells(1, a).End(xlToRight).Column - a

for j = 1 to nb_facteurs

if (Left(Workbooks("classeur2").Sheets(1).Cells(1, a + j), 3) = "01_") then

workbook("classeur 1").sheets(2).range("L12") = Workbooks("classeur2").Sheets(1).Cells(1, a + j) & "---" & Str(Workbooks("classeur2").Sheets(1).Cells(ligneRegion, a + j)) & "%"

elseif (Left(Workbooks("Matrice_intermediaire.xlsx").Sheets(1).Cells(1, a + j), 3) = "02_") then

workbook("classeur 1").sheets(2).range("L13") = Workbooks("classeur2").Sheets(1).Cells(1, a + j) & "---" & Str(Workbooks("classeur2").Sheets(1).Cells(ligneRegion, a + j)) & "%"

' ainsi de suite

activeworkbook.savecopy as filename:= workbook("classeur 1").sheets(1).range("B4")

end if

next j

next i

Quand je met tout ensemble le code est très long et ça ne marche pas. Cependant je voudrai que la boucle for i = 2 to 66 soit utiliser pour les deux en même temps à cause de la sauvegade des classeurs.

Merci d'avance pour votre aide

Bonjour Idiise,

Il me semble que l'optimisation de ton code doit passer par d'autres méthodes de celle que tu as choisie.

Outre que l'appréciation

elle est très longue

manque singulièrement de précision (parle-t-on en secondes, minutes, heures...), il serait nécessaire de pointer dans ton code les instructions les plus consommatrices en temps.

En utilisant le débogage pas à pas, as-tu pu déterminer ces instructions?

Pour t'aider plus, il serait utile que tu fournisses une version édulcorée de tes classeurs "1" et "2" avec la macro d'origine, celle qui

est très longue

.

merci Gérard finalement j'ai trouvé une solution. J'ai remplacé la deuxième procédure par une fonction de paramètre x ensuite en faisant appel à la fonction dans la procédure principale x prend la valeur de la variable d'itération. Merci beaucoup.

Rechercher des sujets similaires à "vba meme iteration deux procedures differentes"