Ajout de données avec bouton - vba sous excel

Résolu/Fermé
cartman29 Messages postés 60 Date d'inscription dimanche 7 novembre 2010 Statut Membre Dernière intervention 4 août 2012 - Modifié par cartman29 le 7/11/2010 à 11:59
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 7 nov. 2010 à 18:11
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 :

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:

5 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 7/11/2010 à 12:44
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)
0
cartman29 Messages postés 60 Date d'inscription dimanche 7 novembre 2010 Statut Membre Dernière intervention 4 août 2012
Modifié par cartman29 le 7/11/2010 à 14:12
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)
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 nov. 2010 à 15:36
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.
0
cartman29 Messages postés 60 Date d'inscription dimanche 7 novembre 2010 Statut Membre Dernière intervention 4 août 2012
7 nov. 2010 à 16:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 nov. 2010 à 18:11
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+
0