Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2013code qui de-fusionne des cellules dans un tableau
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 !
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
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 😉
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 😉
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
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
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
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
- 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