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

XL 2013 code qui de-fusionne des cellules dans un tableau

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

vinciHorus

XLDnaute Junior
Bonjour

J'aimerais avoir un code qui de-fusionne des cellules dans un tableau comme indiqué dans ce fichier joint

merci
 

Pièces jointes

Solution
Bonjour vinciHorus, patricktoulon, le forum,

Rien compris mais puisqu'on demande de défusionner :
VB:
Sub Sup()
With Range("D8:D" & Rows.Count)
    .UnMerge
    On Error Resume Next
    .SpecialCells(xlCellTypeBlanks).Delete xlUp
    .CurrentRegion.Borders.Weight = xlThin 'facultatif
End With
End Sub
A+
bonjour
d’après ton exemple non seulement tu veux de fusionner mais replacer la 2d donnée
parce que juste de fusionné ca donnerait
[D8]="t"
[D14]="v"
ce qui ne donne pas tout a fait le résultat que tu présente a droite
 
EN l'état si je me cantonne a ta demo
pour la reproduire je fait ceci
VB:
Sub test()
    Dim D As Object, C As Range
    Set D = CreateObject("scripting.dictionary")
    For Each C In Range("D1", Cells(Rows.Count, "D").End(xlUp)).Cells
        If C.MergeCells = True And Not D.exists(C.MergeArea.Address) Then
            D(C.MergeArea.Address) = C.Value
        End If
    Next
    [G8].Resize(D.Count, 1) = Application.Transpose(D.Items)
End Sub
mais je suis quasiment certain que c'a n'est pas tout a fait ça ,mais comme a ton habitude tu va nous donner les éléments 1 par 1 😉
 
c'est un élément qui entrera dans ma macro principale !!!

c'est possible de le faire sur le même tableau? (les modifications s'appliquent sur le même tableau)
 
re
VB:
Sub test()
    Dim D As Object, C As Range,firstrow&
    Set D = CreateObject("scripting.dictionary")
    For Each C In Range("D1", Cells(Rows.Count, "D").End(xlUp)).Cells
        If C.MergeCells = True And Not D.exists(C.MergeArea.Address) Then
            If firstrow = 0 Then firstrow = C.Row
            D(C.MergeArea.Address) = C.Value: C.MergeCells = False: C = ""
       
End If
    Next
    Cells(firstrow, "D").Resize(D.Count, 1) = Application.Transpose(D.Items)
End Sub
 
Bonjour vinciHorus, patricktoulon, le forum,

Rien compris mais puisqu'on demande de défusionner :
VB:
Sub Sup()
With Range("D8:D" & Rows.Count)
    .UnMerge
    On Error Resume Next
    .SpecialCells(xlCellTypeBlanks).Delete xlUp
    .CurrentRegion.Borders.Weight = xlThin 'facultatif
End With
End Sub
A+
 
cela fonctionne mais ça ne tient pas compte des bordures
 
- 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

Discussions similaires

Réponses
5
Affichages
275
Réponses
11
Affichages
153
Réponses
1
Affichages
83
Réponses
1
Affichages
166
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…