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 à la fin d'un tableau excel avec vba


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Inserer une ligne à la fin d'un tableau excel avec vba
    Bonjour,

    je réalise un petit projet en bureautique mais je n'arrive pas à créer une macro qui me permet d'inserer une ligne à la fin de mon tableau...


    Merci

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    1) qu'appelles-tu exactement un "tableau" ? Est-ce une feuille Excel ou un véritable tableau Excel (insertion -->> tableau depuis le menu) sur une feuille Excel ?
    2) quels sont les éléments (lignes, colonnes) de ce "tableau" ? Sont-ils des constantes ou des résultats de formules ?

    Quel code as-tu au moins tenté d'écrire pour parvenir à tes fins (montre-le ici entre balises code, s'il te plait) ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Document
    Bonjour,

    1. Oui j'ai fais insertion, tableau
    2. Je vous met mon document en pièce jointe

    J'ai essayer de faire avec l'enregistreur de macro.

    Le problème c'est lorsque je commence à enregistrer la macro je sélectionne une certaine cellule (au hasard), la macro fonctionne seulement lorsque cette cellule est sélectionnée...

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour
    à mon avis et du coté conception, il est à mon avis recommandé de faire avec 3 feuilles
    Achats - Montage - Stock et éviter l'insertion des lignes surtout que t'as pas des connaissance en VBA
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Re
    Attention je suis Aussi débutant VBA
    voila comment insérer une ligne suivant ton choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim ref As String
    ref = InputBox("veuillez entrer la référence de la ligne à insérer")
    With Sheets("feuil1")
    Rows(ref).Resize(1).Insert
    End With
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je vous met mon document en pièce jointe
    lis donc la dernière phrase de ma signature et ceci :
    https://www.developpez.net/forums/d8...s-discussions/
    Je ne t'ai en aucun cas (et pour cause) demandé ton classeur en pièce jointe, mais ceci, pour mémoire :
    Quel code as-tu au moins tenté d'écrire pour parvenir à tes fins (montre-le ici entre balises code, s'il te plait) ?
    Et je t'ai également posé cette question, restée sans réponse :
    2) quels sont les éléments (lignes, colonnes) de ce "tableau" ? Sont-ils des constantes ou des résultats de formules ?
    Sauf à t'y conformer, ne compte pas sur mon aide !
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut rep
    Excusez-moi j'avais pas vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub InsertLigneTableauAchats()
    '
    ' InsertLigneTableauAchats Macro
    ' Cette macro permet d'inserer une ligne à la fin du tableau achats
    '
     
    '
        Selection.ListObject.ListRows.Add AlwaysInsert:=True
        Range("A11").Select
    End Sub
    2) quels sont les éléments (lignes, colonnes) de ce "tableau" ? Sont-ils des constantes ou des résultats de formules ?

    Il n'y aucune formule dans mon tableau, lignes : n°facture et colonne : type de produit


    Merci

  8. #8
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Je ne comprends pas bien où se situe ton problème. Si tu ajoutes des données à la fin d'un tableau Excel, la nouvelle ligne s'intègre automatiquement au tableau.
    Quel est le but de ton insertion de ligne ? Quelles sont les données que tu veux ajouter ?
    Peut-être qu'il serait plus facile pour nous de le comprendre si tu nous joint une copie d'écran de ton tableau.

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut rep
    J'aimerais créer une macro que j'affecterai à un bouton. Lorsqu'on clique sur le bouton, une ligne s'ajoute en s'intégrant automatiquement au tableau. L'utilisateur aura ensuite pour mission de compléter manuellement le tableau.

  10. #10
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Je vois toujours pas à quoi te sert la macro :
    Nom : tableau.png
Affichages : 20469
Taille : 15,2 Ko

  11. #11
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    La personne qui va utilisée ce document n'y connais rien en excel.


    Je sais que le tableau prend en compte automatiquement les données saisies en suivant mais je veux INSERER une ligne, une nouvelle ligne en cliquant sur un bouton et qu'elle s'intègre au tableau.

    J'ai essayé de mettre une copie écran

    Merci beaucoup pour vos réponses
    Images attachées Images attachées  

  12. #12
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Ah ok, c'est parce qu'il y a une ligne de total en dessous du tableau que c'est important d'insérer une ligne. Je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ajoutLigne()
        Dim nvlLig As Long
        nvlLig = Range("A" & Rows.Count).End(xlUp).Row - 1          'ligne juste en dessous du tableau
        Rows(nvlLig).Insert 'insertion d'une ligne juste en dessous du tableau
        ActiveSheet.ListObjects("Tableau1").Resize Range("A1:A" & nvlLig)           'redimensionnement du tableau pour prendre en compte la dernière ligne.
    End Sub
    A adapter à ton document (mon tableau comportait seulement la colonne A).

  13. #13
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci, c'est déjà plus clair mais je n'arrive pas à l'adapter à mon tableau

    Merci

  14. #14
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    C'est-à-dire ? Ton tableau est sur les colonnes A à G et commence à la ligne 3. On adapte le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ajoutLigne()
        Dim nvlLig As Long
        nvlLig = Range("A" & Rows.Count).End(xlUp).Row - 1          'ligne juste en dessous du tableau
        Rows(nvlLig).Insert 'insertion d'une ligne juste en dessous du tableau
        ActiveSheet.ListObjects("Tableau1").Resize Range("A3:G" & nvlLig)           'redimensionnement du tableau pour prendre en compte la dernière ligne.
    End Sub
    EDIT : i lfaut bien sûr aussi adapter le nom tu tableau.

  15. #15
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Youpiiiiii !

    Merci beaucoup !!

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur automatisation
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur automatisation

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, désolé de faire remonter le post mais je cherchais également la solution pour insérer un ligne à la fin d'un objet tableau.
    Je me permet de proposer la solution que j'ai utilisé, plus simple je pense, si ça peut servir à d'autres.

    Ps : mon tableau à une ligne de total et la nouvelle ligne est bien insérée entre la dernière ligne et la ligne de total.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("maFeuille").ListObjects("monTableau").ListRows.Add

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/03/2011, 09h37
  2. [WD-2002] Insérer une ligne à la fin d'un tableau
    Par Wanaka dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/05/2009, 07h31
  3. [DOM] Inserer une ligne dans un tableau
    Par xclam dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/06/2008, 10h38
  4. [VBA-E] Construction d'un tableau EXCEL avec VBA
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/05/2007, 07h35
  5. Ajouter une ligne à la fin d'un classeur excel
    Par maketossss dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 09h38

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