|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
Bonjour,
J'ai une macro qui fonctionne mais je pense qu'elle peut être améliorée afin de gagner en rapidité. J'ai cherché sur le forum mais je n'ai rien trouvé de précis. J'ai un fichier récapitulatif de données assez important : environ 2000 lignes. Avec une référence dans la colonne B. Dans un autre fichier excel je tape cette référence ainsi qu'un commentaire que je dois coller dans la colonne AS sur la ligne correspondant à la référence voulue. Voici ce qui fonctionne : Code :
Y a t-il une solution plus rapide ? Merci pour votre aide Catherine |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Déjà évite les Select et Activate et préfixe chaque Range ou Cells par la feuille mère.
Au lieu de Code :
__________________
Cordialement. |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Aaaaahhh ! Un GoTo !
Je vais regarder ton code, mais effectivement, l'utilisation du GoTo est à proscrire le plus possible, à part pour la gestion des erreurs. |
|
|
00
|
|
|
#4 | ||||
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
Bonjour,
J'ai simplifié cela Code :
Code :
Code :
Worksheets("Liste des ordres").Range("b2").value=mavaleur Merci |
||||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Essaie ce code :
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
Bonjour,
Merci pour ce code. Je l'ai introduit dans macro mais ça plante à Code :
Set wsRecap = Workbooks("List globale des ordres.xlsx").Worksheets("Liste des ordres") Avez vous une idée ? Merci Catherine |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
J'ai oublié le "e" au premier "liste".
En fait je déclare un objet feuille puis indique qu'il correspond à la feuille "liste des ordres" dans le classeur "liste globale des ordres.xlsx". On peut ensuite travailler sur l'objet directement sans faire des "select" ou des "activate" qui ralentissent le code et sont souvent source d'erreur. L'intérêt est surtout que l'on peut déclarer plusieurs feuilles et donc échanger facilement des informations entre ces feuilles. renvoie le classeur "Toto.xls" s'il est ouvert. renvoie l'onglet "Titi" s'il existe. |
|
|
10
|
|
|
#8 | ||
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
Merci beaucoup Zebreloup, ça fonctionne parfaitement bien et c'est beaucoup plus rapide.
j'ai ajouté à la fin du code Code :
Catherine |
||
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
En fait ça fonctionne très bien sauf que mon commentaire est collé 1462 fois.
Il est collé une première fois dans la bonne cellule, mais sur les 1461 lignes suivantes également ! Y a t-il un solution pour éviter ce problème ? Merci Catherine |
|
|
00
|
|
|
#10 | ||||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Oui désolé, c'est parce que le Offset est appliqué au range tout entier qui contient 1462 lignes. Il ne faut prendre qu'une cellule.
Remplace : Code :
Code :
|
||||
|
|
10
|
|
|
#11 |
|
Membre à l'essai
![]() Catherine ETESSEAssistante logistique Inscription : août 2011 Messages : 64 ![]() |
Cette fois ci c'est parfait.
![]() Merci beaucoup. Catherine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com