Code VBA s'arrête à la première donnée.
ouinonon
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 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.
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:
- Code VBA s'arrête à la première donnée.
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
6 réponses
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...
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...
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.
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.
Bonjour,
Avec ce que j'ai compris, votre code modifie(pourrait etre encore plus "simple").
Pourquoi transpose?
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
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"
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"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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