Fractionner des cellules déjà fusionnées

Bonjour le forum,

J'ai un problème de fractionnement de cellules déjà fusionnées:

  • dans la Feuil1 en colonne A à partir de A2 j'ai des cellules qui peuvent être fusionnées par lot de 6: A2:A7 ; A8:A13 etc.
  • avec une macro je copie ces cellules en Feuil2. Je souhaite d'une part les "défusionner" et d'autre part copier le contenu de la cellule dans les 5 qui sont dessous (et qui sont désormais vides après le fractionnement).
  • Et faire ça au fur et à mesure qu'une cellule fusionnée est copiée de Feuil1 à Feuil2.
J'ai essayé un bout de code, mais avec une erreur
Sub fractionner()
Dim i As Integer
Dim j As Integer
Set MaPlage = Columns("A").Rows(i)   'Erreur d'exécution '1004', Erreur définie par l'application ou par l'objet
i = 2  
With MaPlage
For j = 0 To 10
    If .MergeCells Then
        Set MaPlage = .MergeArea
        .UnMerge
        .Cells(i + j, 1).Copy MaPlage
        Set MaPlage = Nothing
    End If
Next
End With
End Sub

Merci à vous et bonne journée

Bonjour,

Voici un code qui te permet de faire ce que tu désire.

J'ai mis le code pour uniquement les 3 cases, il y a moyen de mettre en fonction de la fin de tes données.

Dis moi déjà si cela te vas

Bonjour Shymei,

Merci pour aide, je vais apporter quelques précision au sujet:

  • la copie d'une feuille à l'autre était juste pour le contexte, j'ai déjà une macro qui le fait
  • ce que je cherche à faire est de fractionner les cellules quand elles arrivent sur la feuille (et à copier leur nom dans la cellule vide)
  • les cellules n'arrivent pas forcément toutes en même temps, il s'agit de pouvoir le faire au fur et à mesure du remplissage de la feuille
Peut être quelquechose dans ce goût là:
Sub Macro1()
    Columns("A:A").Select
    With Selection
        .MergeCells = False
    End With
    Selection.UnMerge
    For i = 2 To 14 Step 6
        'Sheets("Feuil1").Select
        'Cells(i, 1).Select
        'Selection.Copy
        For j = 1 To 6
            Sheets("Feuil1").Select
            Cells(i + j - 1, 1).Select
            Sheets("Feuil1").Paste
        Next j
    Next i
    'Sheets("Feuil2").Select
    'Range("A2:A19").Select
    'Selection.Copy
    'Sheets("Feuil1").Select
    'Cells(2, 1).Select
    'ActiveSheet.Paste
    'Application.CutCopyMode = False
End Sub

En tout cas merci de ton aide, ça me permet d'avancer !

Qu'entendez vous par au fur et a mesure. Car si les cellules arrivent fusionnées une à une pourquoi le faire. Et idéalement quand elles arrivent directement faire la copie de celle si plusieurs fois.

Re,

"Réellement" je traite des documents que je mets dans une feuille en colonne dans un fichier. Je fusionne 6 cellules entre elles parcequ'elle traite du même documents.

Une fois que j'ai fini de le traiter je le copie dans une autre feuille pour le garder en mémoire et je le supprime de la feuille des documents actifs pour ne pas l'encombrer.

Si j'ai besoins de fractionner mes cellules dans la feuille de copie c'est à cause d'une formule utilisant la fonction RECHERCHEV. Celle-ci doit me récupérer des informations par ligne. Or si 6 cellules sont fusionnées j'aurai 5 lignes sans titre, et RECHERCHEV n'est pas capacble de comprendre que les cellules sont fusionnées (du moins c'est ce que j'ai vu sur internet).

J'espère que ça éclaire un peu mieux la situation.

Merci

Je voie ce que vous voulez faire.

Car si j'ai bien compris, vous prenez des valeurs d'un doc x, que vous copier sur une feuille annexe (ici vous fusionner).

Après traitement vous devez les fractionner c'est ça ?

Mais je voie pas pourquoi mon code serait pas adapter.

Si vous faite une copie des données que vous renseigner, il y a uniquement des valeurs fusionnées.

Donc dés que vous faites votre copie de cellules fusionnée vous faites fonctionner la macro et elle fera ce que vous demandez.

Après le problème si c'est la gestion du copie colle sur un document variable cela peux être possible.

Re,

Non, tout se fait sur le même fichier excel:

Feuil1: traitement des documents en cours (avec les 6 cellules déjà fusionnées)

Feuil2: quand le document est fini d'être traité il est coupé de la feuil1 et mis en Feuil2 => c'est à ce moment que le fractionnement se fait.

Votre code fait très bien le fractionnement, mais sur les deux Feuil et il n'est nécessaire de le faire que sur la Feuil2.

J'ai essayé de modifié votre code, mais comme je suis encore très novice en VBA j'ai du mal.

L'autre point que j'essaye de modifier c'est au niveau de la longueur des lignes qui est variables: en effet comme les docuemnts ne sont pas tous copié de la Feuil1 à la Feuil2 en même temps mais le sont au fur et à mesure du temps, je ne suis pas à même de connaître la longueur de ligne qui seront remplies en avance:

.Range("B65536").End(xlUp).Row

J'ai un bout de code de ce style que j'essaye d'adapter.

Désolé pour les complications, le sujet n'est pas simple et je ne suis pas assez connaisseur en VBA pour y arriver seul :/

Voilà cela vous vas t'il ?

Re,

C'est super, merci beaucoup pour le temps que vous avez passé à m'aider, vous m'avez retiré une épine du pied ^^

Bonne après-midi et @+

Pas de soucis bonne après-midi

Rechercher des sujets similaires à "fractionner deja fusionnees"