Fusion de cellules sous vb avec excel

Résolu
Bonjour,
J'ai posté tout à l'heure une autre discussion à propos de la programmation en vb sur excel et je suis à nouveau bloquée ;

En fait, maintenant, je souhaiterai que le code détecte une cellule vide dans une colonne donnée et qu'il la fusionne avec la cellule du dessus. Donc il y aurait une grande fusion jusqu'au résultat suivant (cellule pleine) où il ne se passerait rien puis à nouveau, dès qu'il trouverait une cellule vide, il faudrait la fusionner avec celle du dessus.

J'ai également un problème, je ne sais pas à quel moment arreter mon code, vu qu'on ne peut pas lui demander d'arreter dès qu'il rencontre une case vide comme j'ai l'habitude de faire. Ce code est amené à etre utilisé sur plusieurs fichiers différents donc je ne peux pas en prévoir la longueur.

Merci d'avance de vos réponses, j'essaie depuis tout à l'heure mais rien n'y fait !

4 réponses

  1. as tu une cellule dans une autre colonne qui pourrait indiquer la fin du fichier a traiter ?
    tu peux faire un truc soit en te positionnant sur la cellule, soit sans (c est plus rapide)
    peux tu dire s il y a au moins 1 colonne qui peut servir de point d arret ou un nombre de lignes maxi ?
    0
    1. Bonjour,
      Disons que la colonne que je veux fusionner et en colonne C, je peux me repérer avec les valeurs de la colonnes A qui sont toujours renseignées, donc si la cellule en colonne A est vide, le fichier est terminé.
      Merci de ton aide !
      0
      1. Voici ma solution: elle n est pas tres ergonomique car j ai un peu jonglé avec ColA et ColC mais ca marche

        Sub Macro1()
        Dim x As Integer, y As Integer, valC As Variant
        x = 1
        y = 1
        Do While Range("A" & x).Value <> ""
        valC = Range("C" & y).Value
        Do While valC = "" And Range("A" & y).Value <> ""
        y = y + 1
        valC = Range("C" & y).Value
        Loop
        If x < y Then
        Range("C" & x - 1 & ":C" & y - 1).Merge
        Else
        y = y + 1
        End If
        x = y

        Loop
        End Sub

        bonne suite, @+
        0
        1. Merci beaucoup, ça fonctionne correctement, au début ça ne marchait pas, mais c'est parce que mes cellules en colonne A étaient fusionnées donc elles étaient considérées comme vide !
          Merci de ton aide précieuse, bonne continuation :)
          0