Comment affectuer une variable

jojo9999 Messages postés 28 Statut Membre -  
jojo9999 Messages postés 28 Statut Membre -
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.
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. jojo9999 Messages postés 28 Statut Membre 4
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. jojo9999 Messages postés 28 Statut Membre 4
       
      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
  4. jojo9999 Messages postés 28 Statut Membre 4
     
    merci!!!!...... lermite222
    je vais faire un éssais.

    a++
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    -1
    1. jojo9999 Messages postés 28 Statut Membre 4
       
      salut est merci beaucoup de ton aide.
      a+
      -1
  7. jojo9999 Messages postés 28 Statut Membre 4
     
    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
  8. jojo9999 Messages postés 28 Statut Membre 4
     
    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
  9. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    1°) sheets ("feuil1").select
    2°) MyDate = format(Date,"dd/mm/yyyy")
    Maintenant vais souper...
    -1
    1. jojo9999 Messages postés 28 Statut Membre 4
       
      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