Ajout de données avec bouton - vba sous excel
Résolu
cartman29
Messages postés
60
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Mon souhait :
Arriver à faire un bouton qui, lorsqu'il est appuyé, me copie les données de ma listedéroulante vers la cellule I7 et que lorsque je re-clic dessus qu'il me copie les données de ma listedéroulante dans la cellule du dessous.
Mon code actuellement :
Mon code prend la valeur H14. Cette valeur du H14 à été défini par moi depuis la listedéroulante. Ensuite la formule (=Index(Articles!......) cherche à la colonne 2 ma valeur du H14 et m'inscrit dans la cellule I17 ma valeur de la colonne 2.. . Pour finir ça ajoute une ligne.
Cependant à chaque fois que je clic sur une autre donnée dans ma listedéroulante les données de toutes mes I17, I18.. ont la même valeur. Tout cela est normal après réflexion mais je n'arrive pas à faire en sorte que ça s'arrête de changer.
Auriez-vous un meilleur code que le mien, je débute. Merci à vous !
P.S. Je travaille actuellement sous excel 2007
Mon souhait :
Arriver à faire un bouton qui, lorsqu'il est appuyé, me copie les données de ma listedéroulante vers la cellule I7 et que lorsque je re-clic dessus qu'il me copie les données de ma listedéroulante dans la cellule du dessous.
Mon code actuellement :
Sub Macro3() ' ' Macro3 Macro ' Range("I16").Select ActiveCell.FormulaR1C1 = "=INDEX(Articles!R2C1:R16C3,R14C8,2)" Selection.EntireRow.Insert End Sub
Mon code prend la valeur H14. Cette valeur du H14 à été défini par moi depuis la listedéroulante. Ensuite la formule (=Index(Articles!......) cherche à la colonne 2 ma valeur du H14 et m'inscrit dans la cellule I17 ma valeur de la colonne 2.. . Pour finir ça ajoute une ligne.
Cependant à chaque fois que je clic sur une autre donnée dans ma listedéroulante les données de toutes mes I17, I18.. ont la même valeur. Tout cela est normal après réflexion mais je n'arrive pas à faire en sorte que ça s'arrête de changer.
Auriez-vous un meilleur code que le mien, je débute. Merci à vous !
P.S. Je travaille actuellement sous excel 2007
A voir également:
- Ajout de données avec bouton - vba sous excel
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
Bonjour,
Si j'ai bien compris ? pourquoi une formule ?
Pour insérer la ligne ont verras après où.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Si j'ai bien compris ? pourquoi une formule ?
Private Sub CommandButton1_Click() Cells(IIf(Range("I17") = "", 17, Range("I65536").End(xlUp).Row + 1), "I") = ComboBox1.Text End Sub
Pour insérer la ligne ont verras après où.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Je n'arrive pas au résultat, j'ai une erreur :
voilà j'ai juste changé "ComboBox1" en "Zonecombinée14" et j'ai enlevé le private pour qu'il devienne public. J'ai affecté cette macro au bouton.
désolé je suis débutant.
(erreur d'exécution 424, objet requis)
Sub CommandButton1_Click() Cells(IIf(Range("I17") = "", 17, Range("I65536").End(xlUp).Row + 1), "I") = Zonecombinée14.Text End Sub
voilà j'ai juste changé "ComboBox1" en "Zonecombinée14" et j'ai enlevé le private pour qu'il devienne public. J'ai affecté cette macro au bouton.
désolé je suis débutant.
(erreur d'exécution 424, objet requis)
C'est un contrôle "Formulaire" que tu a mis, dans ce cas il faudra procéder autrement.
La plage de ta liste est validée ?
La cellule liée est validée ? si oui à quelle cellule ?
Tu dis.
La plage de ta liste est validée ?
La cellule liée est validée ? si oui à quelle cellule ?
Tu dis.
La plage de ma liste à comme nom "articles" de la feuille "Articles" (je suis sur la feuille facture). Sinon mon menu déroulant est liée à la cellule G7
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec une liste déroulante "formulaire" c'est un peu plus complquer.
Tu colle le code...
Ensuite tu lie la macro à ta liste.
Pas oublier d'adapter la 1ère ligne de ta plage.
A+
Tu colle le code...
Sub ValideListe() Const LigDeb = 2 '1ère ligne de la plage -1 ; A ADAPTER Cells(IIf(Range("I17") = "", 17, Range("I65536").End(xlUp).Row + 1), "I") = Range("A" & (Range("G7") + LigDeb)) End Sub
Ensuite tu lie la macro à ta liste.
Pas oublier d'adapter la 1ère ligne de ta plage.
A+