Macro excel double boucle

yadloh Messages postés 3 Statut Membre -  
yadloh Messages postés 3 Statut Membre -
Bonjour,

j'ai un probleme au niveau de ma macro excel. Je seche dessus depuis plusieurs jours deja. J'ai donc besoin que quelqu'un vienne à mon secours !!!

Je souhaite créer une double boucle. En effet je veux sélectionner les dernieres cellules d'une colonne (M) dans chaque onglet créé auparavant par la premiere boucle. pour cela j'ai besoin de faire une double boucle car les noms des onglets sont créés en fonction des informations récupérées par la premiere boucle. (je sais c'est un peu compliqué)

Mon probleme est que lorsque je lance ma macro seule la deuxieme boucle est lancée et non la premiere qui devrait me sélectionner le bon onglet .

Voila mon code :

Sub essai()

Dim I As Long

Sheets("Toutes BUs Valeurs").Select
Dim Plage_BU As Range

Set Plage_BU = Range("D8:D" & Range("D8").End(xlDown).Row)
For I = Plage_BU.Cells.Count To 1 Step -1
Plage_BU.Cells(I).Value = UCase(Plage_BU.Cells(I).Value)
Plage_BU.Cells(I - 1).Value = UCase(Plage_BU.Cells(I - 1).Value)
If Plage_BU.Cells(I).Value <> Plage_BU.Cells(I - 1).Value Then
Sheets(Plage_BU.Cells(I - 1).Value).Select
End If

Dim J As Double
Dim Plage_Total As Range
Set Plage_Total = Range("M2:M" & Range("M2").End(xlDown).Row)
For J = Plage_Total.Cells.Count To 1 Step -1
Plage_Total.Cells(J).Value = UCase(Plage_Total.Cells(J).Value)
Plage_Total.Cells(J - 1).Value = UCase(Plage_Total.Cells(J - 1).Value)
If Plage_Total.Cells(J).Value = "" Then
Plage_Total.Cells(J - 1).Select
Selection.Copy
Sheets("Récapitulatif").Select
Range("A4").Select
Selection.Insert Shift:=xlDown
End If
Next
Next

End Sub

Je vous remercie par avance de vos réponses !

Jonathan
A voir également:

1 réponse

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

Cells est désigné par le N° de ligne ET le numéro de colonne

par ex: cells(8,2) concerne la cellule B8

0
yadloh Messages postés 3 Statut Membre
 
Vous voulez dire que je devrais mettre (J-1,0) par exemple?

Mais en réalité les boucles exécutées une par une fonctionnent correctement, c'est le fait de les mettre ensemble qui pose probleme. En effet je voudrais que pour chaque condition de I, la "boucle" de J soit lancée.

Or seule la "boucle" de J se lance, lors de l'exécution la premiere boucle est sautée.

Merci
0