Macro défusionner URGENNT !!!!!!!!!!

Résolu
BOnjour tout le monde,

Travaillant sur une macro assez vaste, je dois à un moment défusionner des cellules, pour cela j'utilise :

Range("A15:U1000").MergeCells = False

Le problème est que j'aimerais que le contenu de mes cellule défusionnées soient identique (uniquement du texte), et que pas une seul des deux gardent la valeur.

Ma question que dois je rajouter à ma macro?

Merci d'avance ,

James 405

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour
    le plus simple, si pour l'exemple vos colonnes fusionnées sont A et B, semble après dégroupage de copier avec la macro la colonne A sur la colonne C? non?
    Crdlmnt

    Crdlmnt
    1. Ce ne sont que certaines cellules qui sont fusionnées, ni les ligne ni des colonnes !! Autres solutions?
      1. Contributeur
        Bonjour,

        ça pourrait être :
        Dim c As Range, plage As Range
        If [B3].MergeCells Then
            Set plage = [B3].MergeArea
            [B3].UnMerge
            For Each c In plage
                c.Value = [B3]
            Next c
        End If

        J'ai fait pour des valeurs, si ce sont des formules que tu veux conserver modifie la macro en conséquence.
        eric
        1. Bonjour Eric et merci pour la réponse,

          le problème est que cette macro n'est pas applicable à une plage ? (du moins je n'ai pas réussi à la modifier pour), je pense que la solution serait de demander a la macro de selectionner dans un premier temps les cellules fusionner de la plage, puis de lui dire de copier le contenue de la cellule d'a coté dans la cellule ou l'on perd le texte (je ne sais pas d'avance quelle cellule seront fusionnées ...)

          Le problème est que je ne suis pas très fort en macro, et je ne sais pas comment l'écrire, donc si tu as une idée ..

          En tout cas merci pour ton aide !!
          1. Contributeur
            Je pensais que tu connaissais vba c'est pour ça que je n'ai mis que la partie demandée...
            Pour traiter une plage sélectionnée :
            Sub défusionne()
                Dim c1 As Range, c2 As Range, plage1 As Range, plage2 As Range
                Application.ScreenUpdating = False
                Set plage1 = Selection
                For Each c1 In plage1
                    If c1.MergeCells Then
                        Set plage2 = c1.MergeArea
                        c1.UnMerge
                        For Each c2 In plage2
                            c2.Value = c1
                        Next c2
                    End If
                Next c1
                Application.ScreenUpdating = True
            End Sub


            Si la plage est fixe remplace
            Set plage1 = Selection
            par
            Set plage1 = range("B2:F12")

            eric
            1. OK ca marche merci d'avoir répondu, tu me sors une grosse aiguille du pied!!!!!!!!!!