XL 2016 Copier coller format : probleme cellule fusionnée

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

nicroq

XLDnaute Occasionnel
Bonjour à tous,

Un probleme s'oppose à moi pour réaliser un copier coller (pasteformat) en VBA d'une ligne entière dans une feuille ayant des cellules fusionnée dans une colonne.

Existe t il une solution pour contourner le probleme par exemple détécter si il y a une cellule fusionnée sur lepasteformat, puis défusionner et refusionner ensuite au meme endroit avec une ligne en plus du coup?

Merci pour votre aide.
Je mets en PJ un fichier très simplifié avec l'hypothèse que je souhaiterai copier la ligne 3 de la sheet "feuil copie" vers la feuille sheet "feuille paste" en ligne 8 en pasteformat.

Bonne journée
 

Pièces jointes

Bonjour sylvanu!
Cest clair que les cellules fusionnées c est vraiment la peste ca complique tt...
du coup vous auriez une solution pour detecter les cellules fusionnées et le remttre en place comme dan l exemple du fichier joint?

en vous remerciant
Cordialement
Roques Nicolas
 
Bonjour,
J'ai trouvé çà :
Code:
If c.MergeCells Then MsgBox c.MergeArea.Address
ou encore :
VB:
If Cells(1,1).MergeArea.Count > 1 Then MsgBox "Fusionné" Else MsgBox "Pas fusionné"
Mais ensuite il va falloir analyser combien de cellules sont fusionnées, calculer les colonnes où coller.
Bref l'usine.
D'où ma suggestion de supprimer les cellules fusionnées.
 
Bonjour nicroq, sylvanu,

Je m'en suis toujours sorti avec les cellules fusionnées, voyez le fichier joint et cette macro :
VB:
Sub CopierColler()
Dim Source As Range, Dest As Range, memsel, rc&, cc%, i&, j%
Set Source = Sheets("feuil copie").[3:3]
Set Dest = Sheets("feuille paste ").[8:8]
Application.ScreenUpdating = False
Set memsel = Selection
With Intersect(Dest, Dest.Parent.UsedRange)
    rc = .Rows.Count: cc = .Columns.Count
    For i = 1 To rc
        For j = 1 To cc
            If Not .Cells(i, j).MergeCells Then
                Source.Cells(i, j).Copy
                .Cells(i, j).PasteSpecial xlPasteFormats
            End If
    Next j, i
End With
Application.CutCopyMode = 0
memsel.Select
End Sub
PS : il y a un espace inutile dans le nom "feuille paste ".

A+
 

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

Discussions similaires

  • Question Question
Microsoft 365 Tableau de bord
Réponses
2
Affichages
871
Réponses
8
Affichages
395
Retour