Code VBA s'arrête à la première donnée.

ouinonon -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
vous m'excuserez je suis débutant, je commence à peine ma formation sur vba et là je rencontre un problème avec mon code, j'ai essayé à plusieurs reprise de le changer j'ai fais tout ce que je pouvais et tout ce que je savais mais malgré cela ça ne marche toujours pas.
le but de mon code est de parcourir tout ma feuille 'région' et qu'à chaque fois que je trouve un pays qui corresponds à la zone géographique mentionné dans la case A1 de la feuille région une, il doit copié toute la ligne de la première feuille et la coller dans la colonne de la deuxième feuille, j'ai réussis à faire quelque chose cependant il s'arrête à la première donnée qui correpond à la zone géographique.
voici mon code :
Sub test()

Dim testpopulation As Workbook
Dim data, region, region2 As Worksheet
Dim i, j, k, l As Integer

Worksheets(2).Activate

c = Worksheets(2).Cells.SpecialCells(xlCellTypeLastCell).Column - 2

r = Worksheets(2).Cells.SpecialCells(xlCellTypeLastCell).Row

i = 1
j = 2
k = 4
l = 2

For i = 1 To r

If Cells(i, j) = Worksheets(3).Cells(1, 1) Then
Worksheets(2).Range(Cells(i, j + 1), Cells(i, c)).Copy
Worksheets(3).Select
Range(Cells(k, l), Cells(r, l)).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False

l = l + 1
End If

Next i
End Sub

si vous pouvez m'aider je vous serais très reconnaissant, merci.

Configuration: Windows / Chrome 99.0.4844.84

6 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Pouvez mettre un fichier exemple avec ce que vous attendez sur la feuille qui recoit les donnees

    Pour transmettre un fichier,
    Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
    il faut passer par un site de pièce jointe tel que cjoint.com

    Allez sur ce site : https://www.cjoint.com/
    Clic sur parcourir,
    Cherche ton fichier,
    clic sur ouvrir,
    Clic sur "Créer le lien cjoint",
    Copier le lien,
    Revenir ici le coller dans une réponse...
    1
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    désolé de vous dérangez
    Pas a etre desole, je vous aide parce que je le veux bien,

    Vous voulez du code pour allez plus vite, automatiser car avec votre filtre et quelques manip copier collage transposer ca le fait.
    1
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Avec ce que j'ai compris, votre code modifie(pourrait etre encore plus "simple").
    Pourquoi transpose?
    Sub test()
        Dim testpopulation As Workbook
        Dim data, region, region2 As Worksheet
        Dim Col2, Derl2, Lig3, Col3D
        
        Worksheets("3").Activate
        Col2 = Worksheets("2").Cells.SpecialCells(xlCellTypeLastCell).Column - 2
        Derl2 = Worksheets("2").Cells.SpecialCells(xlCellTypeLastCell).Row
        i = 1
        Col2D = 2       'colonne de debut feuille 2
        Lig3 = 4          'ligne de depart feuille 3
        Col3D = 2       'colonne de debut feuille 3
        region = Cells(1, 1)
        With Worksheets("2")
            For i = 1 To Derl2
                If .Cells(i, Col2D) = region Then
                     .Range(.Cells(i, Col2D), .Cells(i, Col2 + 1)).Copy
                    Range(Cells(Lig3, Col3D), Cells(Lig3, Col2 + 1)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                            :=False, Transpose:=False
                    Application.CutCopyMode = False
                    Lig3 = Lig3 + 1
                End If
            Next i
        End With
    End Sub
    0
    1. ouinonon
       
      Bonjour, je vous remercie car déjà le code arrive à tout parcourir et à tout copier et coller cependant il reste un autre problème, il me copie seulement les pays et me le note plusieurs fois , et pourquoi transposé ? car dans mon autre excel je dois coller les ligne de la feuille 1 en colonne.
      0
  4. ouinonon
     
    https://www.cjoint.com/c/LDdn1Ga4nZE
    voici le document excel sur lequel je travaille, vous verrez que sur la feuille2 qui se nomme "region" il y a le code du pays puis la zone géographique du pays, le nom du pays et après le nombre de population allant de 1960 jusqu'en 2050.
    sur la feuille 3 qui se nomme "region1" dans a case 1 il y a le nom de la zone géographique et un peu en dessous les année qui sont répartie sur toute la première colonne "A"
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Ok, je recupere le fichier et regarde la chose
    0
    1. ouinonon
       
      écoutez,
      je vous remercie beaucoup et encore désolé de vous dérangez avec mes problèmes.
      0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    fichier: https://www.cjoint.com/c/LDekhwVH12f sans raz des feuilles region

    pour lancer la procedure: appuyez sur ctrl+shift+t
    cette apres-midi, j'ajouterai la RAZ des feuilles en debut de procedure et des commentaires
    0