Fusionner cellule avec cellule(s) du bas si vide (VBA)

  • Initiateur de la discussion Initiateur de la discussion lolobala
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lolobala

Guest
Bonjour à tous

Étant débutant en vba, (je m'y intéresse depuis peu) j'ai du mal à faire ce que je veux.
Dans mon cas je souhaiterai fusionner mon numéro de rep. avec les cellules vides en dessous.
Dans mon exemple B2 sera fusionner avec B3 et B4 sera fusionner avec B5 et B6.

J'espère avoir été assez clair.

Merci pour votre aide.
 

Pièces jointes

Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Re bonjour

N'ayant pas de réponse je continu mes recherches,
J'ai trouve des choses intéressante mais c'est pas ce qu'il me faut.
La plupart du temps on trouve des fusions de cellule identiques. Dans mon cas c'est différent car les cellules sont vide, c'est ce qui fait toute la complexité de la chose.
Personne ne veut m'aider, je suis a cour d'idée.
Faut il absolument que les cellules soit pleine ?
Faut il comparer avec d'autres critères ?
Merci pour vos reponse
 
Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Bonsoir lolobala,

Le problème des maigres réponses vient peut-être du fait qu'on conseille souvent aux utilisateurs d'éviter les cellules fusionnées 😉

En partant du principe que tu sais ceque tu fais, une proposition (à placer dans un module standard) testée sur ton fichier (des tests approfondis seraient utiles):
VB:
Sub fusionBeurk()
With Sheets(1)
    For Each c In .Range("B1:B" & .Range("B" & Rows.Count).End(xlUp).Row - 1)
        Range(c, c.End(xlDown).Offset(-1, 0)).Merge
    Next c
End With
End Sub
 
Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Bonsoir modeste et merci pour ta réponse.
Je commençai un peu à désespérer.

Le problème des maigres réponses vient peut-être du fait qu'on conseille souvent aux utilisateurs d'éviter les cellules fusionnées

J'ai lu ça dans plusieurs discussions, mon avis est partagé car si microsoft met cet outil à disposition c'est bien qu’il peut servir.
Bref ce n'est pas le sujet, pour ma part je m'en servirait que pour une mise en forme. Visuellement je trouve ça plus sympa. Et puis dans mon exemple il n'y a que 6 lignes, alors que tout les jours je peux en avoir facilement 50 à traiter.
Malgré tout je comprend que cette méthode peut être risqué, d'ou le nom de fusion beurk 😉

J'ai testé ta solution tout marche bien. Je n'ai pas réussi à faire mieux, pourtant ton code parait simple.

Je vais en profiter pour poser une ultime question, ça n'a rien à voir avec les fusions de cellules.
Je sais ça ne se fait pas, mais promis je ne recommencerai pas.

Est-ce qu'il y a un moyen de convertir les 2 dernières colonnes en nombre par une macro ?

Bonne soirée et encore merci.
 
Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Oups j'ai parlé trop vite j'ai fait des tests plus approfondie...et la ça coince.
Milles excuses. Dans le cas ou je n'ai pas de cellule vide excel me les fusionnes quand même.
Ci-joint 2 exemples.
 

Pièces jointes

Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Bah tant pis

Je me suis débrouillé autrement et ça marche.
Dans les précédentes discussion j'ai trouvé ça :

Code:
Private Sub CommandButton3_Click()
Dim Col, i
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Col = 1 To 3
   For i = Cells(Rows.Count, Col).End(xlUp).Row To 2 Step -1
        If Cells(i, Col) = Cells(i - 1, Col) Then Range(Cells(i, Col), Cells(i - 1, Col)).MergeCells = True
    Next i
Next Col
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Alors à partir de ce code je me suis arrangé avec une formule pour que les cellules ne soient pas vides.
Les cellules vides récupèrent la valeur précédente.

Voilà merci quand même à toi modeste, d'avoir pris le temps de réfléchir à mon problème.
Pour l'autre question que je te posai plus haut dans la discussion, laisse tomber je posterai un nouveau message dans une autre discussion.

Au revoir à bientôt.

Et au faite j'avais oublié.
Bonne et heureuse année 2012 à tout le monde !!!
Quelle soit riche en nouveaux codes et formules !!!
 
Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Bonjour lolobala,

Faute d'autre prétendant 😀, un autre essai:
VB:
Sub fusion()
With Sheets(1)
    lig = .Range("B" & Rows.Count).End(xlUp).Row - 1
    r = 1
    Do
    i = 0
        Do
        If .Cells(r + i + 1, 2) = "" Then i = i + 1
    Loop While .Cells(r + i + 1, 2) = ""
    .Range(.Cells(r, 2), .Cells(r + i, 2)).Merge
    r = r + 1
    Loop While r < lig
End With
End Sub
... A tester de nouveau soigneusement!
Il doit être possible de faire mieux, mais vois toujours avec ça.
 
Re : Fusionner cellule avec cellule(s) du bas si vide (VBA)

Bonjour Modeste

Ton code marche parfaitement bien, il répond exactement à mes attentes.
Je l'ai testé avec tout les cas possibles et rien ne bug.

Merci beaucoup Modeste.
Bonne continuation.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
16
Affichages
2 K
D
Réponses
6
Affichages
1 K
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
750
T
Réponses
2
Affichages
1 K
Tava94
T
K
Réponses
1
Affichages
829
KyoshiroMibu
K
Retour