Comment affectuer une variable

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. Contributeur
    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
    1. 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
      1. Contributeur
        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. 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
      2. merci!!!!...... lermite222
        je vais faire un éssais.

        a++
        -1
        1. 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
          1. 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
            1. Contributeur
              1°) sheets ("feuil1").select
              2°) MyDate = format(Date,"dd/mm/yyyy")
              Maintenant vais souper...
              -1
              1. 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