macro non fonctionnelle

  • Initiateur de la discussion Initiateur de la discussion coniou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

coniou

XLDnaute Nouveau
Bonjour,

Je début sur VBA. Je viens de créer une macro et le problème est que quand je la lance il ne se passe rien.

L'idée de cette macro est de récupérer les données qui m'intéresse provenant de 3 feuille excel est de les copier dans l'ordre qui m'intéresse sur une 4ème feuille.

Je sais que la question est assez peu concrète et que la description n'est pas très riche mais je voix pas trop comment développer.

Je vous donne la macro et le dossier sur le quelle je travaille (les tableau sont vide car je n'ai pas le droit de communiquer les info qu'ils contiennent)

Le code:

Sub trier()
Dim i, j, k, l As Long
k = 0
For i = 5 To Sheets("Feuil1").Cells("5,1").End(xlDown).Row
Sheets("Feuil6").Cells("i+k,1") = Sheets("Feuil1").Cells("i,1")
Sheets("Feuil6").Cells("i+k,2") = Sheets("Feuil1").Cells("i,10")
Sheets("Feuil6").Cells("i+k,3") = Sheets("Feuil1").Cells("i,16")
Sheets("Feuil6").Cells("i+k,4") = Sheets("Feuil1").Cells("i,17")
Sheets("Feuil6").Cells("i+1+k,5") = Sheets("Feuil1").Cells("i,22")
For j = 2 To Sheets("order_Esteve").Cells(2, 1).End(xlDown).Row
If Sheets("Feuil1").Cells("i,1") = Sheets("order_Esteve").Cells("j,1") Then
Sheets("Feuil6").Cells("i+2+k,6") = Sheets("order_Esteve").Cells("j,6")
Sheets("Feuil6").Cells("i+2+k,7") = Sheets("order_Esteve").Cells("j,5")
k = k + 1
End If
Next j
For l = 2 To Sheets("order_Esteve").Cells("2,1").End(xlDown).Row
If Sheets("Feuil1").Cells("i,1") = Sheets("order_Esteve").Cells("l,1") Then
Sheets("Feuil6").Cells("i+2+k,6") = Sheets("order_Esteve").Cells("l,6")
Sheets("Feuil6").Cells("i+2+k,7") = Sheets("order_Esteve").Cells("l,5")
k = k + 1
End If
Next l

Merci d'avance pour votre aide.
 

Pièces jointes

Re : macro non fonctionnelle

Bonjour.

Je ne savais même pas qu'on pouvait spécifier une expression String comme paramètre à la méthode Cells !
Après examen d'espions appropriés :
Sheets("Feuil1").Cells("5,1").Address = "$E$1"
Sheets("Feuil1").Cells("5,1").End(xlDown).Row = 4
4 étant inférieur à 5 on ne passe pas du tout dans la boucle.
Mais les Cells("i+k,1") à coup sûr ne passeront pas ! Cells(i + k, 1) oui ! Mais ce sera très long à exécuter.
Il vaudrait mieux tout charger et décharger en une fois dans des tableaux VBA en mémoire.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
234
Réponses
4
Affichages
184
Réponses
8
Affichages
472
Réponses
3
Affichages
667
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
489
Réponses
2
Affichages
124
Réponses
2
Affichages
205
Retour