Changer la cellule defini apres clic

Fermé
olimonta - 23 mars 2009 à 15:45
 olimonta - 23 mars 2009 à 18:17
Bonjour,
je souhaite creer un tableau dans excel a partir de donnees que j'extrait de combobox dans un userform
j'ai donc un bouton valider qui une fois la valeur de mes combobox selectionner envoie ces valeurs dans les cellules defini
je voudrais si je clic de nouveau sur mon bouton valider que les valeurs de mes combobox soit envoyer à la ligne
et ainsi dresser mon tableaux .
EXEMPLE
en A1 valeur de combobox au premier clic
en A2 valeur de combox au second clic et ainsi de suite

mon code qui ne fonctionne pas car il reste sur la meme ligne et change les donnees a chaque clic sans conserver les precedents

Private Sub ValideBt_Click()
i = 15
'Cellule de Départ

Cells(i, 3) = CBox1.Value
Cells(i, 4) = CBox2.Value
Cells(i, 5) = CBox3.Value
Cells(i, 6) = CBox4.Value

i= i + 1
End Sub

j'avoue je suis completement rouille je vois bien que ma variable i ne sert a rien juste donner la valeur 15
si quelqu'un a une piste je suis preneur d'avance merci
A voir également:

4 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
23 mars 2009 à 16:00
Bonjour,

Il faut essayer d'inserer une ligne vide avant de la renseigner par exemple :

Private Sub ValideBt_Click()
Rows("15:15").Select
Selection.Insert Shift:=xlDown
Cells(15, 3) = CBox1.Value
Cells(15, 4) = CBox2.Value
Cells(15, 5) = CBox3.Value
Cells(15, 6) = CBox4.Value
End Sub

Je n'ai pas testé mais je pense que cela fonctionne

A+
0
leplot Messages postés 191 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 13 août 2015 131
23 mars 2009 à 16:06
bonjour,

effectivement à chaque clic i = 15.

essaie de déclarer i en STATIC pour qu'il conserve sa valeur et l'incrémenter à chaque clic.
Pour qu'il débute à 15, je ne sais pas trop comment faire proprement :
voici un exemple d'utilisation de static
sub test()
Static i
If i < 15 Then i = 15 'force la valeur à 15 au premier passage
(...
...)
i = i + 1
endif

mais cette solution repart à 15 à chaque ouverture du fichier

Si tu dois écrire à la dernière ligne pour ajouter du texte il faut d'abord chercher la dernière ligne.
la dernière ligne est .Range("A65536").End(xlUp).Row (s'il n'y a a aucune valeur en dessous du tableau.
Dans ce cas, i=Range("A65536").End(xlUp).Row + 1, il ne faut plus l'incrémenter, ni de mettre en static.

J'espère t'avoir débloqué

LePlot
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
23 mars 2009 à 16:52
Re bonjour,

Oui c'est Leplot qui a raison, ma proposition permet d'ajouter les nouvelles lignes par le haut. Pour les ajouter à la fin on peut effectivement utiliser sa suggestion :
i = ActiveSheet.Range("A65536").End(xlUp).Row + 1

A+
0
Merci j'essaye ca tout de suite et vous tiens au courant
0