Recopier après annulation de la fusion de lignes

Résolu
arcade89400 Messages postés 28 Statut Membre -  
arcade89400 Messages postés 28 Statut Membre -
Bonjour à tous et à toutes,
La macro suivante annule la fusion des cellules que j'ai mises en surbrillance :
.
Sub Defusion()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Valeur = ActiveCell.Value
Selection.UnMerge
Selection.Value = Valeur
End Sub
.
Je me retrouve avec une ligne de 3 cellules en ligne qui ont des libellés ; et en dessous une ligne de 3 cellules qui sont vides. Je souhaite recopier les 3 cellules du haut dans les 3 cellules du bas.
Si je complète la macro ci-dessus par une macro enregistrée, le numéro de ligne reste fixé. Merci de votre aide. Crldt

7 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Pouvez-vous, une fois, mettre le fichier avec situation avant traitement et le résultat que vous voulez obtenir ce sera préférable pour une bonne compréhension dans le but de vous indiquer une proposition qui tienne la route.
    Si oui le fichier sur https://www.cjoint.com/ et poster le lien.

    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      0
      1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci, salutations.
        0
  2. arcade89400 Messages postés 28 Statut Membre
     
    Désolé, parti dans mes problèmes, je pensais être clair ! Et pardon à ceux qui ont bien voulu tenter m'aider et spécialement à Eriiic dont je ne comprenais pas qu'il me demandait d'être plus clair.
    Donc, je reçois un tableau tel que celui en A1 :D10 et j'ai besoin d'avoir celui en F1 :I10 pour pouvoir faire des tris. La plage de cellules concernées est variable ; pas de problème pour mettre en surbrillance la plage concernée, évidemment.
    Question subsidiaire, le tableau réel était bien plus grand, il m'arrive souvent d'oublier des cellules fusionnées. Serait-il possible d'avoir une macro (la même, ou une autre) qui « débusque » les plages oubliées.
    0
  3. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Merci, c'est très bien mais on ne peut rien faire avec cette image.
    Si on vous demande gentiment : Si oui le fichier sur https://www.cjoint.com/ et poster le lien alors faites le ou alors préciser que vous ne le pouvez pas.... !
    Et n'oublier pas que bonjour et salutations vont de pair ...

    Salutations.
    Le Pingou
    0
  4. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour à tous
    Arcade89400, J'aurai apprécié que vous donniez une réponse à ma proposition sur le forum VBA avant de faire une nouvelle demande sur le forum EXCEL, Si ma réponse ne convenait, il suffisait de le dire, j'aurai fait le nécessaire pour l'adapter.
    Ca n'encourage pas les gens à vous aider. A éviter à l'avenir,
    Voici quand même une proposition
    Sub Defusionner()
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        Range(Cells(2, 6), Cells([F10000].End(xlUp).Row, 9)).Clear
        Range(Cells(2, 1), Cells([A10000].End(xlUp).Row, 4)).Copy
        Range("F2").Select
        ActiveSheet.Paste
        
        'Defusionner
        For i = 6 To 9
            For Each cel In Range(Cells(2, i), Cells([A10000].End(xlUp).Row, i))
                Valeur = cel.Value
                If cel.Offset(1, 0).Row > cel.Row + 1 Then
                    Cells(cel.Row, i).UnMerge
                    Cells(cel.Row + 1, i).Value = Valeur
                End If
            Next
        Next i
    End Sub
    

    Cdlt
    0
    1. arcade89400 Messages postés 28 Statut Membre
       
      Bonsoir Frenchie83,
      Je viens d'essayer cette macro. Elle est parfaite en ce qu'elle "défusionne" toutes les cellules fusionnées d'un seul coup dans toute la feuille, quelle rapidité. Toutefois elle pose un problème en ce qu'elle recopie le contenu de la plage A:D sur la plage F:I dont les informations sont perdues.
      Encore pardon et merci.
      Bonne soirée
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arcade89400 Messages postés 28 Statut Membre
     
    Bonsoir,
    Décidément, je ne fais que des bourdes vis-à vis de ceux qui veulent m'aider ! Je leur en demande bien pardon, c'est involontaire. Mais soyez compréhensif: je me bats avec Excel depuis déjà longtemps. Je découvre CCM, je m'y inscris et il faut apprendre à l'utiliser ainsi que les habitudes de ceux qui l'utilisent. Ajoutez à cela que j'ai ma petite fille de 4 ans dans les pattes (mais je ne me plains pas...) et vous pourrez comprendre que tout gérer de front peut amener à faire des bourdes.
    Voici le lien vers mon fichier qui n'a rien de secret !
    https://www.cjoint.com/c/EHcshbZRT6b
    Il s'agit donc de supprimer la fusion des cellules fusionnées pour pouvoir faire des tris. Si la macro pouvait repérer les cellules en question, ce serait super car si une seule cellule est encore fusionnée, le tri est impossible.
    J'espère que vous avez tous les éléments en main. Merci d'avance pour votre aide. Bonsoir
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Les choses ayant été mises au clair une macro que j'avais faite :
    https://www.cjoint.com/c/EHcsJenLn3b
    Plage à traiter à adapter si besoin.
    eric

    En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
    0
    1. arcade89400 Messages postés 28 Statut Membre
       
      Bonsoir Eriiic,
      C'est très exactement ce que je voulais ! Et d'un seul coup d'un seul !
      Et encore pardon de ma première réponse. Je n'avais pas compris que vous aviez besoin d'informations. D'autre part, le commentaire qui double votre signature, je l'ai lu comme du texte normal car j'avais demandé à recevoir la réponse dans ma boite mail; je ne comprenais pas ...
      Et là, je suis bloqué, comment dire que le problème est résolu ?
      En attendant, un grand merci et bonne soirée. Crldt
      0
  8. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je vous pries d'essaye le code (testé OK supprime fusion et génère les vides) qui suit :
    Sub suprfusionrecopval()
    Range("a1").CurrentRegion.Select
    deli = Selection.Rows.Count
    deco = Selection.Columns.Count
    Selection.UnMerge
    For li = 2 To deli
        For c = 1 To deco
            If Cells(li, c) = "" Then
                Cells(li, c) = Cells(li, c).Offset(-1).Value
            End If
        Next c
    Next li
    MsgBox "La plage ne contient plus de cellule fusionnées et les valeurs sont générées"
    End Sub
    

    0
    1. arcade89400 Messages postés 28 Statut Membre
       
      Bonjour,
      Il est 7h et j'ai voulu tester la macro ci-dessus avant même mon café ! J'ai probablement recopié, mais il ne se passe rien sauf l'affichage du message que les cellules n'ont pas bougé. Je vais rééssayer dans la journée. Mais ça doit venir de moi ! Merci de votre aide. Crldt
      0