J'ai une colonne (B) de mon tableau, qui contient 5 valeurs (texte) possible. Ma macro réalise un tri croissant sur cette colonne.
Jusque là ça fonctionne.
Sauf que je souhaiterais insérer une ligne à chaque changement de valeur et là ça coince j'ai essayé toute les boucles possible y à un truc que je pige pas.
Voici mon code tout pourrit qui ne prend pas en compte les dernières ligne
Agence = Range("B3").Value
i = 4
Do
agencecourante = Range("B" & i).Value
If agencecourante = Agence And agencecourante <> "" Then
j = i
Else: Rows("" & i).Select
Selection.Insert shift:=xlDown
j = i + 1
Agence = Range("B" & j).Value
End If
finOA = Range("B" & j).End(xlDown).Row
i = i + 1
Loop While i <> finOA
ceci
>>> finOA = Sheets("Bilan OA").Range("A2").End(xlDown).Row
va fonctionner seulement s'il n'y a pas de cellules vides en colonne A
Utilise plutôt
>>> finOA = Sheets("Bilan OA").Cells(Rows.count, "A").End(xlUp).Row
Évite les Select.
Ce n'est pas nécessaire et ça ralentit le processus pour rien même si ce n'est pas beaucoup...
Range("A3:J" & finOA).Select
Selection.Sort Key1:=Range("B2"),....
se traduit par
Range("A3:J" & finOA).Sort Key1:=Range("B2"),....
Pour la boucle je préfère le For...Next, mais c'est une question de choix
For I = FinOA to 3 step -1 'ici tu peux mettre 3 plutôt que 2 puisque la 2e ligne sera différente de l'entête
If Range("B" & I) <> Range("B" & I - 1) Then
Rows(I).Insert
End if
Next
Quand tu postes du code, utilise le 3e icône en partant de la droite.
Sélectionne ton code et clique VB
Et indente ton code pour faciliter la lecture
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
J'ai le sentiment que j'ai un souci au niveau de ma boucle qui me fait perdre une ligne car aux tests, si je n'ai qu'une seule ligne par catégorie alors la ligne n'est pas insérée ou une fois sur deux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Super merci beaucoup pour ce petit cours.
Tu dois avoir compris que j'apprends beaucoup avec l'enregistreur de macro et que forcément tout n'est pas à recopier.