Macro excel double boucle

Fermé
yadloh Messages postés 3 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 21 janvier 2010 - 21 janv. 2010 à 10:42
yadloh Messages postés 3 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 21 janvier 2010 - 21 janv. 2010 à 13:42
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
21 janv. 2010 à 12:36
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 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 21 janvier 2010
21 janv. 2010 à 13:42
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