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 :

Inserer une ligne avec bouton


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 13
    Par défaut Inserer une ligne avec bouton
    Bonjour,

    Pour mon projet de fin d'étude je dois réaliser un outils de dimmensionnemnt sur excel avec l'intégration de vba.

    Sur ma feuille excel j'ai 5 tableaux, placés les uns au dessous des autres (escpacé de quelques lignes).

    A la fin de chaque tableau j'ai créé un bouton qui permet de rajouter des lignes avec la meme mise en forme que la ligne du dessus,

    voici un code que j'ai trouvé et qui fonctionne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'faire une nouvelle ligne 
    ActiveCell.EntireRow.Insert Shift:=xlDown 
    'copier la ligne du dessus 
    ActiveCell.Offset(-1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1) 
    On Error Resume Next 
    'effacer le contenu de la nouvelle ligne mais garder la forme 
    ActiveCell.EntireRow.ClearContents
    Le seul soucis est que cette "insertion de ligne " se fait sur la cellule active (ActiveCell)

    Je veux que l'insertion se fasse sur une ligne définie du genre à la ligne 17,21 par exemple.




    Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Activell est un objet Range qui représente la cellule active.
    Dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.EntireRow.Insert Shift:=xlDown
    Tu inséres la ligne entière de la cellule active en décalant les cellules vers le bas.
    Avec les lignes suivantes, tu fais la même chose mais avec la cellule A8 et ce avec deux syntaxes différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A8").EntireRow.Insert Shift:=xlDown
    Cells(8, 1).EntireRow.Insert Shift:=xlDown
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 13
    Par défaut
    Merci beaucoup!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 13
    Par défaut
    Bonjour
    J'ai enlevé le status "Résolu" car finalement j'ai un Pb.
    Je vous donne 2 codes pour 2 boutons assignés à leurs tableaux respectifs:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Tableau 1
    'faire une nouvelle ligne
    Range("A16").EntireRow.Insert Shift:=xlDown
    'copier la ligne du dessus
    Range("A16").Offset(-1, 0).EntireRow.Copy Cells(16, 1)
    On Error Resume Next
    'effacer le contenu de la nouvelle ligne mais garder la forme
    Range("A16").EntireRow.SpecialCells(xlCellTypeConstants, 23).ClearContents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Tableau 2
    'faire une nouvelle ligne
    Range("A31").EntireRow.Insert Shift:=xlDown
    'copier la ligne du dessus
    Range("A31").Offset(-1, 0).EntireRow.Copy Cells(31, 1)
    On Error Resume Next
    'effacer le contenu de la nouvelle ligne mais garder la forme
    Range("A31").EntireRow.SpecialCells(xlCellTypeConstants, 23).ClearContents



    Mon Pb: j'insère une ligne (ou des lignes) sur mon premier tableau=> pas de soucis

    J'insère une ligne (ou des lignes) sur mon 2eme tableau=> soucis car la ligne ciblée n'est plus la bonne .

    Comment pourrais-je proceder ?

    Cordialement

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

Discussions similaires

  1. [XL-2013] Création d'une ligne avec bouton et combobox
    Par Loanito31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2013, 13h46
  2. [XL-2003] Inserer une ligne avec un nombre fixe
    Par chouki60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/02/2011, 17h10
  3. Effacer une ligne avec bouton
    Par ptitepo dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/05/2008, 13h16
  4. inserer une ligne avec condition
    Par pepesese dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2008, 19h22
  5. Réponses: 18
    Dernier message: 23/06/2007, 01h17

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