IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-02] Macro pour insérer une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut [E-02] Macro pour insérer une ligne
    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".

  2. #2
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    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....

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    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.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    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

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    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!

  6. #6
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut
    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 '
    La réponse est déjà donnée par Michel, il suffit juste que tu comprennes son Code.
    Plus exactement dans cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(Cible.Row + 1).Insert xlDown
    A ton avis, ça signifie quoi : Cible.Row + 1

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    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".

  8. #8
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    vois du côté d' Offset dans l'aide vba

    genre Cible.offset(row, column) = xx ou select ou....

    cordialement,

    Didier

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Rajoute ceci à la fin pour sélectionner la cellule juste en dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Cible.Row+1,Cible.Column).Select
    Franchement c'était pas dur à trouver...

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci Decondelite, c'est exactement ce qu'il me fallait.
    Grâce à vous tous, je vais finir par comprendre.....

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    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

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    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!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Problème pour insérer une ligne avant champ fusionné
    Par Tempas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2010, 14h22
  2. Réponses: 13
    Dernier message: 31/01/2010, 10h58
  3. Script pour insérer une ligne dans un fichier csv
    Par StéphanieB. dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/01/2010, 11h19
  4. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  5. Macro ACCESS / Insérer une ligne vide
    Par david71 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/03/2008, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo