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
5 réponses
-
Bonjour,
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 :
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 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...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+