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 :

Insertion de ligne par macro [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Agent Technique
    Inscrit en
    Avril 2009
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2009
    Messages : 179
    Par défaut Insertion de ligne par macro
    Bonjour,

    Je souhaiterai par une macro (associée à un bouton) copier et insérer une ligne de donnée (toujours la même, 2:2) directement sous la dernière ligne contenant des données et que le n° repère s'incrémente.

    D'avance merci pour l'aide à la création de cette macro.

    Sylvain
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Voici un bout de code à insérer dans un module VBA. Tu trouveras bien comment faire ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub copie()
        Dim der_ligne As Double
        Dim num As Double
     
        'on détermine le N° de la dernière ligne
        der_ligne = Range("A100000").End(xlUp).Row
        'on détermine le dernier N° utilisé dans la colonne A
        num = Cells(der_ligne, 1).Value + 1
     
        'On copie la ligne 2 en fin de tableau
        Range("2:2").Copy Cells(der_ligne + 1, 1)
        'on insère le N° dans la colonne A
        Cells(der_ligne + 1, 1).Value = num
        'On efface le contenu de la ligne 2
        Range("2:2").ClearContents
    End Sub
    Le tout commenté pour que tu puisse comprendre (et apprendre) et modifier si nécessaire.

    En espérant que ça t'ira.

    GG

  3. #3
    Membre confirmé
    Homme Profil pro
    Agent Technique
    Inscrit en
    Avril 2009
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2009
    Messages : 179
    Par défaut
    Jérôme bonjour,

    Solution parfaite et merci pour les explications.

    Sylvain

  4. #4
    Membre confirmé
    Homme Profil pro
    Agent Technique
    Inscrit en
    Avril 2009
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2009
    Messages : 179
    Par défaut
    Jérôme bonjour,

    Serait-il possible d'adapter la macro afin d'insérer une ligne en avant dernière position en mode tableau ?

    D'avance merci,

    Sylvain

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonjour,

    Une petite piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub AjoutAvantDernièreLigne()
        Dim t As ListObject
        Dim n As Long
        Set t = ActiveSheet.ListObjects("Tableau1")
        n = t.ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Count
        MsgBox "Nombre de lignes visibles : " & n
        Range("Tableau1[Prénom]")(Range("Tableau1[Prénom]").Count - 1).ListObject.ListRows.Add (n)
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Agent Technique
    Inscrit en
    Avril 2009
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2009
    Messages : 179
    Par défaut
    Bonjour,

    Merci pour ce code.
    Je vais essayer.

    Sylvain

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

Discussions similaires

  1. Insertion de formule par macro
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2008, 09h59
  2. suppression de ligne par macro
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2008, 14h41
  3. Problème d'insertion de code par macro
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2008, 20h31
  4. Supprimer ligne par macro
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/09/2007, 11h36
  5. Macro: Insertion de ligne par condition
    Par Monteninho dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2007, 14h48

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