Comment affectuer une variable

Fermé
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 - 19 juil. 2008 à 17:54
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 - 12 août 2008 à 20:23
Bonjour, à tous
comment affecter une variable à la selection d'un combobox1 dans une useforme1, quel sont les lignes de commande que je doit frapper pour prog vba avec excel ?
merci de bien vouloir me repondre car je suis un debutant en prog vba.

9 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 juil. 2008 à 09:32
Bonjour,
pour connaître la slection d'un combobox1, dans l'événement Clic du combobox1 mettre...

Private Sub ComboBox1_Click()
dim e as integer
    e = ComboBox1.ListIndex
End Sub

A+
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
20 juil. 2008 à 13:54
Salut! Et merci pour ton aide

J’ai déjà frappé ces ligne de commande, mais rien ne ce passe, je croix que je dois te donner plus d'info.
Voila, le but de la prg avec vba pour Excel est de remplir un tableau grâce a un useforme avec plusieurs combobox par exemple:

combobox1 = les villages de ma région et combobox 2 =des personnes vivant dans le village sélectionner dans la combobox1 etc....

Donc j'ais choisi de faire cela avec des variables sans inscrire pour l'instant le résultat des sélections dans les cellules de mon tableau.
Problème si je sélection dans la combobox1 le village A le combobox2 me donne aucune sélection possible ou me donne toute les personnes de tout les villages.
Alors que mes lignes de commandes sont celle-ci:

private sub combobox1_click()
dim c as integer
c=combobox1.listindex
end sub

private sub combobox2_click()
dim s as integer
s=combobox2.listindex

if c = village A then
combobox2.additem "personne A1"
end if

if c = village B then
combobox2.additem "personne B1"
combobox2.additem "personne B2"
combobox2.additem "personne B3"
end if

end sub

Donc voila le pb je suis débutant.
Et mes lignes de commandes me paréssent logiques.

Et encore une fois merci de toute votre aide.
A+
-1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 juil. 2008 à 22:06
Je crois que j'ai compris, essaye...

Dim InitP As Boolean 'Pour éviter que les fonctions ne soient
'appelées à l'initialisation.
Dim c As Integer 'Mettre ici pour être visible dans combo2

Private Sub combobox1_click()
    If InitP Then Exit Sub
    c = combobox1.ListIndex
    InitP = true
    combobox2.Clear 'Vide le comboBox2
    Select Case c
    Case 0 ' Village A
        combobox2.AddItem "personne A1"
        combobox2.AddItem "personne A2"
        combobox2.AddItem "personne A3"
    Case 1 ' Village B
        combobox2.AddItem "personne B1"
        combobox2.AddItem "personne B2"
        combobox2.AddItem "personne B3"
    Case 2 'Village C etc....
    End Select
    
    combobox2.ListIndex = 0
    InitP = False
End Sub

Private Sub combobox2_click()
Dim s As Integer
    If InitP Then Exit Sub
    s = combobox2.ListIndex
    'Ici faire le traitement
    Select Case c
    Case 0
        Select Case s
        Case 0 '"Village A" > personne A1
        Case 1 '"Village A" > personne A2
        Case 2 '"Village A" > personne A3
        End Select
    Case 1
        Select Case s
        Case 0 '"Village B" > personne B1
        Case 1 '"Village B" > personne B2
        Case 2 '"Village B" > personne B3
    End Select
End Sub

Private Sub InitialiseCombo()
    InitP = True
    combobox1.AddItem "Village A"
    combobox1.AddItem "Village B"
    combobox1.AddItem "Village C"
    combobox1.ListIndex = 0 'sinon les combo semble vide
    
    combobox2.AddItem "personne A1"
    combobox2.AddItem "personne A2"
    combobox2.AddItem "personne A3"
    combobox21.ListIndex = 0
    InitP = False
End Sub


Tu dit...
A+

-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
29 juil. 2008 à 18:59
salut lermite222.

j'ais suivi tes instructions est cela ne fonctionne pas .Car les combobox n'affiche aucun choix de selection.Donc j'ais refait le prog dans ce style:

dim c as string * 20
dim s as string * 20

public sub combobox1_click()
c = combobox1.value
end sub

public sub combobox2_click()
if c ="village A" then
combobox2.additem "Personne A1"
combobox2.additem "Personne A2"
end if

if c ="village B" then
combobox2.additem "Personne B1"
combobox2.additem "Personne B2"
combobox2.additem "Personne B3"
end if

if c ="village c" then
combobox2.additem "Personne C1"
end if
if c ="village D" etc.........

end if

s = combobox2.value
end sub

public sub userform_initialize()

combobox1.additem"village A"
combobox1.additem"village B"
combobox1.additem"village C"
combobox1.additem"village D"
ETC.......
end sub

donc dans ce cas le combobox1 affiche bien les villages,la varible c prend bien la valeur du village selectionnez mais le combobox2 ne m'affiche aucune personne.
donc je deduit que la variable c n'est pas pris en compte dans la partie public sub combobox2_click()J'ais essaye de mettre les instructions,

if c ="village A" then
combobox2.additem "Personne A1"
combobox2.additem "Personne A2"
end if

if c ="village B" then
combobox2.additem "Personne B1"
combobox2.additem "Personne B2"
combobox2.additem "Personne B3"
end if

if c ="village c" then
combobox2.additem "Personne C1"
end if
if c ="village D" etc.........

end if

a la suite des instructions de public sub userform_initialize()
même résultat

De les mettres dans la déclarations general
même résultat

de les mettres dans public sub combobox2_change()
même résultat

merci de bien vouloir me dire comment la valeur de la variable c peut être utilisez ou appelez dans les instructions (if c="village A" then etc.......
car je ne vois plus de solution.


je compte sur vous

merci... beaucoup........a+
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
21 juil. 2008 à 00:35
merci!!!!...... lermite222
je vais faire un éssais.

a++
-1

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

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 juil. 2008 à 20:14
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
29 juil. 2008 à 21:44
salut est merci beaucoup de ton aide.
a+
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
1 août 2008 à 21:20
salut lermite 2222

tu est genial !!!!!!.....ca fonctionne,mais voila j'ais encore besoin de ton aide.

donc ,tu ma mis sur le bon chemin en me donnant le programme de la façon select case mais voila les variables sont du types integer l'orsque je lui demande de minscrire la valeurs de mes variables dans une cellule in m'inscrit la valeur des case 0,1,2,etc..... selon la selection .
cela est logique en reguardant le progr mais moi je veux le village selectionner et la personne pas les valeurs numerique les variables.
donc comment faire ?
j'ais voulus changer les declarations de mes variables mais il me donne a chaque fois des erreurs.

donc,voici la pro que je frappe:

private sub commandbouton2_click()'bouton ok dans la useform1
dim LIGNESUIVANTE as long
c = combobox1.listindex
s = combobox2.listindex
do
LIGNESUIVANTE = Range("A65536").end(xlup).row +1

Cells(LIGNESUIVANTE,3)=c
Cells(LIGNESUIVANTE,4)=s

if c= 0 then msgbox("selectionnez le village")
exit sub
if s = 0 then msgbox ("selectionnez la personne")
exit sub
loop
end sub

voila, peu tu me dire mon erreur merci.
a+
-1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 août 2008 à 07:00
J'ai remis ce que tu veux dans le classeur.

https://www.cjoint.com/?icg7E0x7xw
A+
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
5 août 2008 à 20:03
salut lermite 222

grace a toi je progresse dans mon prog.
maintemant, j'ais besoin de savoir 3 reponces.

1)
comment actver une feuille precise dans mon prog vba?
car il y a plusieurs feuilles de travail et la useforme1 travaille avec la feuille 1,la useforme 2 travaille avec la feuille 2 etc.....

donc voila ce que j'ai fait
jais mis dans le prog useform1 les expressions suivantes

worksheets ("feuil1") ou sheets ("feuil1") reponse utilisation incorrecte de la propriété

activesheets.name = "Feuil1" reponse erreur d'execution 424 objet requis

2)comment mettre la date de la forme jour/mois/ans ?

donc voila ce que j'ai fait
textbox2.value = date
donc textbox2 affiche jour/mois/ans...... impec....... mais au moment de la mettre dans les cellules cela devient mois/jour/ans alors que le format des celules est jours/mois/ans.
donc jais mis

textbox2.value = date (dd,mm,yy) comme sur le livre, mais erreur

3)comment afficher le resultat d'une somme d'une colonne dans une textbox sans chager la formule de la cellule?

j'ais fait
contolesource= compcommunes dans la propriete de la textbox cela fonctionne 2 fois puis cela me chage la formule.
ha... oui!!! (compcommunes) est le nom donnr a la cellule ou il y a la formule dans une feuille4
mon but comme tu la compris
et le selectionner une commune puis une personne puis etc..
puis quand je click sur ok toute les donnees se mettent dans une feuille1 excel avec un tableau

la cellule a2=1 la cellule b2 = la date la cellule c2 =la commun la cellule d2 = la personne etc.....
je click sur ok

les valeurs ce mettent a la ligne en dessous etc...

niquel

donc, la cellule (compcommunes) comporte la formule =somme(feuil1!a2:a65535)qui est dans une feuill4

donc comment afficher le resultat d'une somme d'une colonne dans une textbox sans chager la formule de la cellule?ou y a t il un prog pour compter toute les lignes remplis?

la est la question....................

Merci a toi pour ton aide
-1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2008 à 20:34
1°) sheets ("feuil1").select
2°) MyDate = format(Date,"dd/mm/yyyy")
Maintenant vais souper...
-1
jojo9999 Messages postés 28 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 17 août 2008 4
12 août 2008 à 20:23
salut lermit222
merci pour ton aide.

je voudrais te connaitre, a tu une adresse msn pour faire du visio ou une adresse perso?

moi,je suis de perpignan dans les P.O et toi?

je suis fonctionnaire et je n'est pas le droit de faire une formation de v.b.a car je suis de categorie c et pas informaticien.

est tu informaticien ?

j'ais achete vba pour excel 2003 de John Walkenbach tres tres tres bien, mais pas beaucoup exemples.
Connais tu un site ou il y a plein exemple de prog vba pour excel,pour evitez des questions simple comme la derniere fois?

merci ....salut et a+
-1