Fusion de cellules sous vb avec excel

Résolu
Iloon Messages postés 22 Statut Membre -  
Iloon Messages postés 22 Statut Membre -
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. @¿@ Messages postés 48 Date d'inscription   Statut Membre 6
     
    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
  2. Iloon Messages postés 22 Statut Membre 2
     
    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
  3. @¿@ Messages postés 48 Date d'inscription   Statut Membre 6
     
    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
  4. Iloon Messages postés 22 Statut Membre 2
     
    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