Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Parcours et fusion en vba

  • Initiateur de la discussion Initiateur de la discussion tijocanard
  • 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 !

T

tijocanard

Guest
Bonjour au forum,

Etant novice en vba, je cherche à parcourir une feuille et fusionner les cellules identiques.
Le but étant d'obtenir une certaine arborescence.

Un petit fichier bidon en exemple, en feuile 1 le problème et en feuille 2 le résultat attendu.

A force de recherche j'arrive à fusionner qu'une seule colonne. La macro:

Code:
Private Sub CommandButton3_Click()
Application.DisplayAlerts = False

Dim i As Long, j As Long

For i = 1 To Range("A65536").End(xlUp).Row
     j = 1
     While Cells(i + j, 1) = Cells(i, 1)
             Range(Cells(i, 1), Cells(i + j, 1)).MergeCells = True
             j = j + 1
     Wend
      i = i + j - 1
Next
  
Application.DisplayAlerts = True
    
End Sub

C'est pourtant tout con de parcourir chaque ligne et colonne pour comparer la valeur des cellules mais je débute en vba😛

Merci d'avance pour vos conseils
 

Pièces jointes

Re : Parcours et fusion en vba

Bonjour tijocanard,
Et dire que je milite pour l'interdiction mondiale de la fusion de cellules...
Une proposition quand même, si tu n'ébruite pas l'affaire. Chhut 😉
VB:
Private Sub CommandButton3_Click()
Dim Col&, i&
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Col = 1 To 3 '3 colonnes dans l'exemple
    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
Cordialement
 
Re : Parcours et fusion en vba

Je serais muet pour cette entorse à ta conviction 😉

Un grand merci à toi car ca marche du 1er coup, trop fort!

Pour aller un peu plus loin, est-il possible de colorier chaque colonne par une couleur différente? Pas la colonne entière mais jusqu'à la dernière cellule qui contient une valeur?

Encore un grand merci à toi Efgé (pas la 1ère fois que tu m'aides) 🙂
 
Dernière modification par un modérateur:
Re : Parcours et fusion en vba

Re
Une proposition en pièce jointe:
Onglet Fusion : Reprise de la première version
Onglet Fuion+Couleurs : Proposition pour ta dernière question
Onglet Arlequin pour le Fun...
Cordialement
 

Pièces jointes

Re : Parcours et fusion en vba

Merci pour ta réponse nocturne!

J'aime bien l'onglet arlequin 😎

Dernière finitions:
je souhaite insérer une ligne quand la valeur de la colonne A change, j'ai essayé un test du genre
Code:
If Cells(i, 1) <> Cells(i + 1, 1) Then
Range(Cells(i, 1), Cells(i + 1, 1)).EntireRow.Insert
i = i + 1
End If
Mais vu que je suis une bique ca ne marche pas 😱

Et il peut arriver qu'il n'y ait pas de valeur en colonne3, du coup les cellules vides sont fusionnées, est-il possible de faire un test si cellule fusionnée vide on défusionne 😕

Ca aurait été plus logique du coup de fusionner que les cellules non vide, mais ca je te l'avais pas dit!

Bref pour meiux comprendre le même fichier avec ce que je souhaiterai

Encore merci pour tout et promis je t'emmbète plus après 🙂
 

Pièces jointes

- 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

Réponses
5
Affichages
909
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Réponses
0
Affichages
657
Réponses
3
Affichages
877
Réponses
7
Affichages
987
Réponses
2
Affichages
769
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…