|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() joel Technicien maintenance Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour,
Le but de cette mini macro est de copier une ligne de la feuille "IN"si la valeur de la cellule "G" correspond à "Ter" , puis de la coller à la première cellule vide de la feuille "Te", puis de supprimer la ligne de la feuille "IN" J'ai écrit cette macro avec des boucles (souvenir de BASIC) Elle fonctionne pour une ligne, pour des lignes entrecoupées de différentes valeurs de la colonne "G". Par contre, si deux lignes contigües ont en colonne "G" deux ou plusieurs fois la valeur "Ter", cela ne fonctionne pas bien.Je suis obligé de relancer plusieurs la macro sinon des lignes contenant "Ter"en colonne "G" reste en "IN" Je n'arrive pas à améliorer cette macro afin que d' un seul lancement elle transfere le contenu de la ligne concernée vers l'auutre feuille, puis d' effacer la ligne de la feuille initiale. Pouvez-vous m'aider ? Merci par avance Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() |
bonjour
ou!!!lala toi te casser beaucoup la tète pour pas grand chose utilise plutôt la function find et find next tu verra sa marchera mieux d'autant plus que dans ton exemple tu boucle sur la même cellule indéfiniment au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#3 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
J'ai remanié un peu ton code, mais je ne l'ai pas testé. Quand on supprime des lignes, on le fait en parcourant la plage du bas vers le haut, justement pour éviter les problèmes que tu as rencontrés. Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#4 |
|
Invité de passage
![]() joel Technicien maintenance Inscription : septembre 2011 Messages : 7 ![]() |
Code :
.Cells(.Cells.Rows.Count, 1).End(xlUp).Offset(1).Paste En épluchant le code je ne vois aucune raison, pouvez vous m'aider ? Je vous en remercie |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Essaie :
Code :
.Cells(.Cells.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() joel Technicien maintenance Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour Daniel et PatrickToulon,
Malgré la proposition de Daniel, la macro "se plante " à :.Cells(Cells.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues J'ai essayé en décomposant, en incluant select, sans amélioration. Je me demande si les trois boucles (for,if, et with) ne créent pas une interaction inopportune...... Cordialement ----------------------------------------------------------------------------Ne crains pas d'avancer lentement, seulement de t'arrêter . |
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Il y avait bien une erreur de compilation qui empêchait le code de s'exécuter. J'ai testé celui-ci en reconstituant ton environnement. Il suppose que la colonne A est remplie, faute de quoi, il faudra (encore) la modifier :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#8 |
|
Invité de passage
![]() joel Technicien maintenance Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour Daniel,
C'est parfait, ça boucle bien. ![]()
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Merci du retour; pense à marquer la question comme résolue.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com