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

Fermé
ouinonon - 2 avril 2022 à 22:06
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 4 avril 2022 à 12:09
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
A voir également:

6 réponses

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
3 avril 2022 à 15:49
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
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
Modifié le 3 avril 2022 à 16:47
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
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
Modifié le 3 avril 2022 à 08:58
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
3 avril 2022 à 16:25
Re,

Ok, je recupere le fichier et regarde la chose
0
écoutez,
je vous remercie beaucoup et encore désolé de vous dérangez avec mes problèmes.
0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
4 avril 2022 à 12:09
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