Fuusion cellule horizontale

bonjour,

je souhaiterais fusionner automatiquement des cellules qui ce suivent Horizontalement sachant que les prénoms changent sur la ligne 3

merci pour vos réponses

cordialement

13fusion.xlsx (10.31 Ko)

Bonjour

La fusion de cellule est une plaie d'Excel : elle restreint pas mal les possibilités sans avoir une grande utilité puisque dans 95% des cas on peut obtenir le même aspect sans fusion...

Oriente toi plutôt vers l'alignement "centré sur plusieurs colonnes"

rebonjour ,

je préfère les fusionner si quelqu'un a une solution

merci

Bonjour caje17,

tu a écrit :

je préfère les fusionner si quelqu'un a une solution

oui, c'est fait dans ton fichier modifié :

10fusion.xlsm (18.53 Ko)

Ctrl e ➯ travail effectué !


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

bonjour a toi,

merci pour ce que tu me propose mais j'ai une petite chose qui me bloque quand je valide ta macro et que je veux remettre des prénoms après ,puis je revalide ta macro il ce passe rien

j'ai changer un peu ma demande j'aimerais juste fusionner au dessus de la liste des prénoms, les prénoms qui ce suivent avec une mise a jour automatique

merci pour vos réponses

cordialement

7fusion-2.xlsm (19.32 Ko)

voici ta 2ème version modifiée :

16fusion-2.xlsm (20.09 Ko)

dhany

Bonjour, Salut Dhany !

Ce qui me déroutait, c'était ces flottements entre différentes lignes... et des données dont on ne savait pas trop comment calculer le positionnement...

J'ai fini par me cadrer pour prendre en considération la ligne 3 (on peut calculer des bornes sur une ligne lorsqu'elle est définie), et on opère les fusions sur la ligne qui précède :

Sub Test()
    Dim d%, f%, n%, aa
    With ActiveSheet.Rows(3)
        d = .Cells(1, 1).End(xlToRight).Column
        f = .Cells(1, .Columns.Count).End(xlToLeft).Column
        n = f - d + 1
        aa = .Cells(1, d).Resize(, n).Value
        For i = 1 To UBound(aa, 2) - 1
            If aa(1, i) <> "" Then
                For f = i + 1 To UBound(aa, 2)
                    If aa(1, f) = aa(1, i) Then aa(1, f) = "" Else Exit For
                Next f
                aa(1, i) = f - i: i = f - 1
            End If
        Next i
        If aa(1, UBound(aa, 2)) <> "" Then aa(1, UBound(aa, 2)) = 1
        With .Cells(1, d).Resize(, n)
            .Offset(-1).Clear: .Offset(-1).HorizontalAlignment = xlCenter
            For i = 1 To UBound(aa, 2)
                Select Case aa(1, i)
                    Case ""
                    Case 1: .Cells(0, i) = .Cells(1, i)
                    Case Else
                        .Cells(0, i).Resize(, aa(1, i)).MergeCells = True
                        .Cells(0, i) = .Cells(1, i)
                End Select
            Next i
        End With
    End With
End Sub

Cette macro procède à chaque exécution à un recalcul complet de la ligne 3, et supprime l'existant ligne précédente pour la recomposer en fonction de ce recalcul.

Cordialement.

Bonjour

La fusion de cellule est une plaie d'Excel : elle restreint pas mal les possibilités sans avoir une grande utilité puisque dans 95% des cas on peut obtenir le même aspect sans fusion...

Oriente toi plutôt vers l'alignement "centré sur plusieurs colonnes"

je suis d'accord !

autre solution = MFC (sans macro)

avec une fusion, impossible de sélectionner une colonne ... et c'est pas la seule contrainte !

autre solution = MFC (sans macro)

et voilà !

Hello tous !

Je suis bien sûr d'accord pour bannir toute cellule fusionnée d'une base de données...

mais je ne suis pas puriste en la matière dans les autres cas. Je ne disconviens pas que cela entraîne des contraintes, au niveau de la sélection manuelle comme le signale Steelson, mais pas systématiquement.

Er la manipulation en VBA n'en est pas empêchée de cibler une colonne, elle n'a pas à sélectionner !

Si on fusionne on en accepte les contraintes. Tant que cela demeure relativement aisé en VBA, je considère que cela reste jouable.

Cordialement.

Rechercher des sujets similaires à "fuusion horizontale"