Macro Vba jointure de deux lignes succesives

van_van Messages postés 63 Statut Membre -  
van_van Messages postés 63 Statut Membre -
Bonjour j'essaye de faire une boucle
Enfaite sur ma feuille excel, il y'a une multitude lignes, sauf que a chaque choix deux lignes succevices ne devrait en former qu'une.
Ainsi ma deuxieme ligne devrai venir se collé a la premiere ligne apres la derniere colonne non vide et apres supprimer la deuxieme ligne,ensuite faire pareil avec la quatrieme ligne apres avec la sixieme ligne et ainsi de suite.

Est ce impossible?
Merci d'avance

3 réponses

  1. van_van Messages postés 63 Statut Membre
     
    Private Sub CommandButton11_Click()
    Dim i As Integer
    Dim j As Integer
    
    For i = 5 To 52533
    For j = 4 To 53533
     
        Range("Ai:Ei").Select
        Selection.Copy
        Range("Fj").Select
        ActiveSheet.Paste
        Rows("i:i").Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlUp
        Next
        Next
        
    End Sub
    


    voici mon code

    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici :ICI

    Merci d'y penser dans tes prochains messages.
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Bonjour,

      Je n'ai pas le temps de regarder en détail ton code ...
      mais je peux déjà te dire que si tu veux utiliser des variables dans les plages de cellules... il va falloir que tu fasses de la concaténation...
      Par exemple :
        Range("Ai:Ei").Select
      

      A changer par:
        Range("A" & i & ":E" &i).Select
      
      0
    2. van_van Messages postés 63 Statut Membre
       
      merci , mais je pense qu il faut que j'arrive a selectionner les ligne paires a les coller dans un autres onglets et faire de meme avec les lignes impaires
      0
    3. Lils_Bis Messages postés 65 Statut Membre
       
      Bonjour,
      Ta question m'intéresse énormément car j'ai aussi un problème similaire. Je pense revenir vers toi et ta question prochainement.
      0
    4. van_van Messages postés 63 Statut Membre
       
      Etant donné que j'ai eu la solution, je me ferai un plaisir de vous aider.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour à tous,

    d'autre part la déclaration prévoit des integer et on boucle jusqu'à >52000...

    le mieux serait de
    Mettre un extrait du classeur ( env 1000 lignes) sans données confidentielles en pièce jointe sur https://www.cjoint.com/
    et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse

    0
  3. Stif
     
    Bonjour,

    Voici quelques lignes qui répondent je pense à ta demande.
    Première ligne à renseigner est la 3

    Option Explicit
    Sub lignes()
    Dim I As Variant
    For I = 4 To 52533 Step 2
    If Cells(I, 1) = "" And Cells(I, 2) = "" And Cells(I, 3) = "" And Cells(I, 4) = "" And Cells(I, 5) = "" Then Exit For
    'sortie de boucle si vides? A adapter pour ne pas répeter la boucle 52000 fois pour rien
    Range(Cells(I, 1), Cells(I, 5)).Select
    Selection.Copy
    Cells(I - 1, 6).PasteSpecial
    Next I

    For I = 3 To 52533
    Do While Cells(I, 6) = ""
    Cells(I, 6).EntireRow.Delete
    If Cells(I, 1) = "" And Cells(I, 2) = "" And Cells(I, 3) = "" And Cells(I, 4) = "" And Cells(I, 5) = "" Then Exit Do
    Loop
    If Cells(I, 1) = "" And Cells(I, 2) = "" And Cells(I, 3) = "" And Cells(I, 4) = "" And Cells(I, 5) = "" Then Exit For
    Next I
    End Sub
    -1