Boucle pour défusionner

Bonjour,

Je dois traiter, trier et rechercher des données dans une liste de défauts téléchargée d'une machine de conditionnement.

J'ai une boucle pour défusionner des cellules (jusque 256 lignes) mais au delà elle ne fonctionne plus.

Auriez-vous une idée pour remplacer "as byte" afin de boucler jusqu'à la dernière ligne écrite ? (à savoir que ce sont des fichiers à 5 ou 6 chiffres en terme de lignes à traiter)

Sub test_merge_loop()
  dim i as byte
  ' ligne maxi 255
  For i = 1 to 255
    Range("A" & i & ":D" & i).UnMerge
    Range("A" & i & ":D" & i).HorizontalAlignment = xlCenter
    Range("A" & i & ":D" & i).VerticalAlignment = xlCenter
  Next i
End Sub

bonjour,

remplacer byte par long et ce "for i=1 to 255" ce 255 par un nombre plus convenable

Bonjour Xavier_09

Voici le code corrigé, mais pourquoi faire une Boucle

Sub test_merge_loop()
  Dim dLig as long,  Lig as long
  ' Dernière remplie de la feuille active
  dLig = Range("A" & Rows.Count).End(XlUp).Row
  ' Pour chaque ligne
  For Lig = 1 to dLig
    Range("A" & Lig & ":D" & Lig).UnMerge
    Range("A" & Lig & ":D" & Lig).HorizontalAlignment = xlCenter
    Range("A" & Lig & ":D" & Lig).VerticalAlignment = xlCenter
  Next Lig
End Sub

Qu'on peut remplacer par

Sub test_merge_loop()
  Dim dLig as long
  ' Dernière remplie de la feuille active
  dLig = Range("A" & Rows.Count).End(XlUp).Row
  ' Supprimer la fusion de la plage
   Range("A1:D" & dLig).UnMerge
   Range("A1:D" & dLig).HorizontalAlignment = xlCenter
   Range("A1:D" & dLig).VerticalAlignment = xlCenter
End Sub

A+

Bonjour BrunoM45,

J'étais persuadé qu'il fallait faire une boucle

Merci pour le code, il fonctionne bien

Rechercher des sujets similaires à "boucle defusionner"