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 :

Ajouter une ligne avec un 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
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut Ajouter une ligne avec un bouton
    Hello tlm,

    Je souhaiterai ajouter une ligne dans mon tableau en gardant les listes déroulante de la ligne copiée, mais en effacant le contenu des autres cellules

    J'ai un début de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub add_rows()
    Range("A17").Select
    nbre = ActiveCell.Value
    ligne = ActiveCell.Row
     
    Rows(ligne).Copy
    Rows(ligne + 1).Insert Shift:=xlDown
    Cells(ligne + 1, 1).Value = nbre + 1
     
    End Sub
    La ligne se copie, les listes déroulantes restes mais l'incrément de ma cellule A17 qui a une valeur 1, passe à 2 en A18 et reste 2 en A19...etc bloqué a 2.

    Si en plus quelqu'un a une idée pour rajouter un bouton afin de supprimer une ligne (fonction inverse), je suis preneur.

    Merci de votre aide et de la patience envers les débutant comme moi.

    Salutations

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne comprends pas très bien ce que vous voulez faire, par contre je comprends très le résultat que vous obtenez et qui ne peut être autre que celui-là.

    Si vous repartez à chaque fois de la sélection de la cellule "A17" il est évident que la variable "nbre" est égale à 1 puis va devenir = 2, que pour la ligne qui a été insérée précédemment la cellule "A18" va toujours contenir la valeur 2 et va être déplacée en "A19" et la nouvelle "A18" va contenir 2, etc.. etc...

    Il faudrait préciser le but de cette macro de même que pour la suppression d'une ligne : sur quel critère ?

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par jacques_jean Voir le message
    Bonjour,

    Je ne comprends pas très bien ce que vous voulez faire, par contre je comprends très le résultat que vous obtenez et qui ne peut être autre que celui-là.

    Si vous repartez à chaque fois de la sélection de la cellule "A17" il est évident que la variable "nbre" est égale à 1 puis va devenir = 2, que pour la ligne qui a été insérée précédemment la cellule "A18" va toujours contenir la valeur 2 et va être déplacée en "A19" et la nouvelle "A18" va contenir 2, etc.. etc...

    Il faudrait préciser le but de cette macro de même que pour la suppression d'une ligne : sur quel critère ?
    Pour corriger cela, en prenant comme hypothèse de départ que nous sommes sur la ligne à copier.

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub add_rows()
        ligne = ActiveCell.Row
        nbre = ActiveCell.Value
        Range("A" & ligne).Select
        Rows(ligne).Copy
        Rows(ligne + 1).Insert Shift:=xlDown
        Cells(ligne + 1, 1).Value = nbre + 1
    End Sub

    PS : non testé, c'est juste une idée

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut precision ;-)


    J'ai joint le fichier comme ça c'est peut-être plus simple. En gros j'essais de réaliser un "bulletin de commande" avec un bouton "+" pour rajouter une ligne ou "-" pour la suppprimer. L'idée est d'ajouter une ligne vide, d'incrémenter la colonne "A" et de garder la macro de la ligne 17 "autoformat", ainsi que les listes déroulantes "Artikle", "Farbe" et "Sprache" [pour info] les listes déroulantes utiliseront les valeurs de la feuille "values"... voilà ma galère.

    MErci d'avance à tous les King's du Forumbulletin_de_commande.zip

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je vous joins le fichier. Faites des essais et dîtes s'il y a au moins quelque chose qui vous convient et dans ce cas ce qu'il y a lieu de modifier, car je ne crois pas avoir compris totalement ce que vous voulez faire :

    1) la suppression de ligne est prévue :
    -pour réinitialiser le bon de commande ? dans ce cas il vaut mieux prévoir cette réinitialisation automatiquement après impression et enregistrement éventuel du fichier avec un autre nom.
    -pour rectifier une erreur de saisie ? dans ce cas OK mais je suppose qu'il faut modifier la numérotation des éventuelles lignes suivantes ?
    2) pourquoi dans les 3 listes se trouvant sur la feuille "values" la 1ère ligne de données est "-" ?

    3) la case à cocher qui se trouve en ligne 17 dans la colonne "Autoformat" doit-elle être copier dans les lignes ajoutées ?
    Dans ce cas à quoi sert-elle ? elle ne pourra de toutes façons porter le même nom que celle de la ligne 17.


    Remarque : j'ai créé une procédure "Sub supp_rows()" mais j'ai oublié de l'affecter au bouton comportant le -
    Faites-le avant d'essayer.
    Dernière modification par Invité ; 09/09/2008 à 17h06.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut On y est presque! :-))
    Hello,

    Chapeau bas! là on touche presque le but! Je résume votre code:
    • L'insertion de ligne avec duplication avec le bouton "+" fonctionne à merveille
    • Les listes dans la feuilles values comporte un "-" car c'est une valeur texte neutre de départ pour la liste dns le bon de commande
    • Le bouton "-" avec suppression de la dernière ligne ne fonctionne pas après affectation de la macro. En faite j'aimerai supprimer la dernière ligne entrée par le bouton "+" une sorte de reour en arrière. Mais je peu faire l'impasse sur cette macro si trop penible. Pour moi point suivant plus important
    • La case à coché en ligne 17 doit être copier avec le bouton "+" mais le challenge est qu'elle ne soit pas être lié... l'idéee est que cette case me génére le "label" par ligne, une fois le client peu faire l'autoformat, une autre ligne il peut choisir son label et ainsi de suite.


    Dans tout les cas là vous avez fait un code génial qui m'aide beaucoup, si on arrive à trouver une solution pour cette case à coché, je dis BRAVO.

    Salutations, vous êtes un

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

Discussions similaires

  1. [E-07]ajouter une valeur avec un bouton
    Par choutben dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/03/2009, 20h09
  2. TlistView ajouter une ligne avec 2 colonnes
    Par GO dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/01/2009, 16h55
  3. Réponses: 18
    Dernier message: 23/06/2007, 01h17
  4. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 08h27

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