Macro copier coller en sautant des lignes [Résolu/Fermé]

Signaler
-
 gazoline11 -
Bonjour,

Je n'arrive pas à faire ma macro dans excel:
je souhaite que la cellule A19 / B19 et D19 soit respectivement coller en B18 / C18 et D18
puis supprimer toutes les lignes de la colonne A qui sont vides.
Puis dès que la cellule de la colonne A comprend qqch, effectuer le même collage....et ce jusqu'en A1000.

Je vous montre ma macro mais elle est très loin de fonctionner.



Sub Miseenformeadresse()
'
' Miseenformeadresse Macro
' Macro enregistrée le 05/02/2010 par
'

'
Selection.Cut
Range("B16").Select
ActiveSheet.Paste
Range("A18").Select
Selection.Cut
Range("C16").Select
ActiveSheet.Paste
Range("D17").Select
Selection.Cut
Range("D16:F16").Select
ActiveSheet.Paste
Rows("17:19").Select
Range("A19").Activate
Selection.Delete Shift:=xlUp
Range("A18").Select
Selection.Cut
Range("B17").Select
ActiveSheet.Paste
Range("A19").Select
Selection.Cut
Range("C17").Select
ActiveSheet.Paste
Range("D18").Select
Selection.Cut
Range("D17:F17").Select
ActiveSheet.Paste
Rows("18:20").Select
Range("A20").Activate
Selection.Delete Shift:=xlUp
End Sub

4 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 137
Bonjour,
J'ai essayé de comprendre ton exposé mais ça va pas, si tu enlève les lignes vides où mettre les données qui restent ?
Donne plus d'explications (plus claires si possible) ou met un exemple de to classeur sur Cjoint
A+
Merci pour votre réponse.

Mon tableau est https://www.cjoint.com/?cgbiy30PU1

En fait, j'ai copié les adresses sur un site d'annuaire pro en ligne mais le pb c'est que les adresses se mettent en colonne et non en ligne.
Je voudrais donc remettre en forme mon fichier client pour faire du publipostage, donc en ligne.
C'est pourquoi, il faut que les cellules A19 / A20 et D19 soit respectivement coller en B18 / C18 et D18
puis supprimer toutes les lignes de la colonne A qui sont vides (les coordonnées fax ne m'intéresse pas donc on peut supprimer avec la ligne).
Puis dès que la cellule de la colonne A comprend qqch, effectuer le même collage....et ce jusqu'en A1000.

Je sais pas si c'est plus clair pour vous !

@ bientot j'espère....
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 137
OK, je pense que j'ai compris.
Attention, si tu a modifié le classeur que tu a mis sur Cjoint il faut adapter le début des modif.. Adapter Lig=15.
Si tu n'a rien changer envoyer la macro.
Sub Miseenformeadresse()
Dim Lig As Long
    Lig = 15
    While Range("A65536").End(xlUp).Row > Lig
        If Cells(Lig, 1) = "" Then
            Rows(Lig).Delete
        Else
            Rows(Lig).MergeCells = False
            Cells(Lig, 2) = Cells(Lig + 1, 1)
            Cells(Lig, 3) = Cells(Lig + 2, 1)
            Cells(Lig, 4) = Cells(Lig + 1, 4)
            Rows(Lig + 1 & ":" & Lig + 2).Delete
            Lig = Lig + 1
        End If
        DoEvents
    Wend
End Sub

A+
EDIT : Il serait prudent de faire une copie de ton classeur avant d'envoyer la macro.
Merci beaucoup la macro marche super !!!

1000 mercis

Marie