Macro copier coller en sautant des lignes

Résolu
gazoline11 -  
 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
Configuration: Windows XP Internet Explorer 8.0

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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+
    0
  2. gazoline11
     
    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....
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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.
    0
  4. gazoline11
     
    Merci beaucoup la macro marche super !!!

    1000 mercis

    Marie
    0