Bonjour à tous,
Sous excel 2002, je voudrais faire une macro qui va inserer une ligne sous la cellule contenant le texte "203/gr". Ensuite, il faut reprendre le même processus mais pour le texte "203/gr08".
Bonjour à tous,
Sous excel 2002, je voudrais faire une macro qui va inserer une ligne sous la cellule contenant le texte "203/gr". Ensuite, il faut reprendre le même processus mais pour le texte "203/gr08".
Bonjour,
Tu pourrais essayer un enregistrement automatique et faire les manipulations :
Edition/rechercher 203/gr, fermer la recherche, abaisser le surseur et insérer une ligne.
puis tu regardes le code et tu vois comment optimiser....
Oui mais dans mon fichier, il peut y avoir 20 fois la même information et je veux que le curseur se positionne sur la derniere cellule de la colonne E contenant "203/gr" et ensuite insérer une ligne.
bonsoir
Tu peux utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim Cible As Range Set Cible = Columns(5).Find(What:="203/gr", After:=Range("E1"), _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _ MatchCase:=False, SearchFormat:=False) Rows(Cible.Row + 1).Insert xlDown
bonne soirée
michel
Merci SilkyRoad, ça fonctionne comme je le souhaitais.
T'es le TOP KING du VBA!
J'ai oublié un petit détail dans ma demande: Lorsque la ligne est insérée, le curseur doit alors se retrouver dans une des cellules de cette nouvelle ligne car je dois y mettre une formule de sous-total.
Puisque cette nouvelle ligne ne sera jamais à la même position d'une semaine à l'autre, je ne peux pas mettre ' Range("E22").Select '
Quelle serait le code qu'il faudrait mettre à la suite de ta macro pour positionner le curseur à la cellule X?
Merci de ton aide!
La réponse est déjà donnée par Michel, il suffit juste que tu comprennes son Code.J'ai oublié un petit détail dans ma demande: Lorsque la ligne est insérée, le curseur doit alors se retrouver dans une des cellules de cette nouvelle ligne car je dois y mettre une formule de sous-total.
Puisque cette nouvelle ligne ne sera jamais à la même position d'une semaine à l'autre, je ne peux pas mettre ' Range("E22").Select '
Plus exactement dans cette ligne:
A ton avis, ça signifie quoi : Cible.Row + 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part Rows(Cible.Row + 1).Insert xlDown![]()
Cible.Row + 1 ne positionne pas le curseur dans la cellule vide sous la cible. Ce code ne permet que d'insérer une ligne sous la cellule qui contient l'information recherchée. Le curseur demeurera à l'endroit où il était avant l'exécution de la macro.
Ce qu'il me faut, c'est d'amener le curseur dans la cellule vide qui se situe juste en dessous de l'information demandée. Par exemple, je recherche "203/gr" dans la colone E. Lorsque trouvé via la macro, insertion de ligne et positionnement du curseur dans la colonne E sous la cellule contenant "203/gr".
Bonjour,
vois du côté d' Offset dans l'aide vba
genre Cible.offset(row, column) = xx ou select ou....
cordialement,
Didier
Rajoute ceci à la fin pour sélectionner la cellule juste en dessous:
Franchement c'était pas dur à trouver...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(Cible.Row+1,Cible.Column).Select![]()
Merci Decondelite, c'est exactement ce qu'il me fallait.
Grâce à vous tous, je vais finir par comprendre.....![]()
bonsoir
Plutot que sélectionner à tout prix ta cellule, pourquoi ne pas écrire directement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cible.Offset(1, 0).Formula = "..."
bonne soirée
michel
Salut SilkyRoad ,
Effectivement cette solution fonctionne également mais ne répond tout à fait à ce que je veux faire effectuer dans mon fichier. Dans ce cas-ci, la solution de Decondelite est plus appropriée.
Merci de votre aide à tous!
![]()
Partager