Aide Valeurs ComboBox & Bouton

Résolu
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008 - 29 févr. 2008 à 21:04
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 1 mars 2008 à 10:36
Salut à tous,


Petite question de débutant


Quand je mets:


Private Sub ajouter_click()
Sheets("Forets HSS").Cells(1, 1).Value = ComboBox1.Value
Sheets("Forets HSS").Cells(2, 1).Value = ComboBox2.Value
End Sub

Et que je clique sur mon bouton: Cela m'affiche bien les valeurs indiquées par mes combobox dans les cellules demandée

Pourquoi lorsque je mets:

Private Sub ajouter_click()
Sheets("Forets HSS").Cells(ComboBox1.Value, ComboBox2.Value).Value = 1
End Sub

Cela ne fonctionne pas

Pourquoi?
Est-ce que quelqu'un peut m'aider?
Si toutefois il faut plus d'explications, n'hésitez pas.

merci

15 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 mars 2008 à 01:12
Tu commences ta première boucle à la ligne 12Donc, le premier item de ton combobox ligne 12 ListIndex 0
Même chose pour l'autre combobox qui concerne les colonnes de 6 à 9

Tu pourrais donc essayer comme ceci
Sheets("Forets HSS").Cells(comboBox1.Listindex +12, comboBox2.ListIndex + 6).Value = Variable

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
29 févr. 2008 à 21:39
Salut,

les combobox renvois des valeurs au format string or la fonction cells fonctionne avec des valeurs  au format long,single ou integer. Donc tu dois convertir la valeur par une Clng pour, CSng pour single etc.

Private Sub ajouter_click()
Sheets("Forets HSS").Cells(Clng(ComboBox1.Value), Clng(ComboBox2.Value)).Value = 1
End Sub

Mais attention la valeur de ta combobox doit etre une valeur convertible un truc du style Clng("bob") ça ne marche pas !

A+
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
29 févr. 2008 à 21:41
...

j'ai encore oublié de me relire , donc il fallait comprendre :

Donc tu dois convertir la valeur par une fonction du type : Clng pour long, CSng pour single etc.

A+
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
29 févr. 2008 à 23:34
Ca ne fonctionne pas
????
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 févr. 2008 à 23:50
Que valent Combobox1.value et Combobox2.Value ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 févr. 2008 à 23:52
J'aurais dû préciser aussi...
Comment sont chargés ces combobox ? d'où proviennent les données ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 00:00
voici le code:

Private Sub userform_initialize()


Dim Ma_Liste As String
   Dim Col As Integer
   Dim Lig As Integer
   Col = 5
   For Lig = 12 To 131
      Ma_Liste = Sheets("Forets HSS").Cells(Lig, Col).Value
      Fenetre_de_Selection_Outils.ComboBox1.AddItem Ma_Liste
   Next Lig

Dim Mon_type As String
   Dim Col2 As Integer
   Dim Lig13 As Integer
   Lig13 = 11
   For Col2 = 6 To 9
      Mon_type = Sheets("Forets HSS").Cells(Lig13, Col2).Value
      Fenetre_de_Selection_Outils.ComboBox2.AddItem Mon_type
   Next Col2
  
End Sub

Private Sub CheckBox1_Change()

Select Case CheckBox1.Value
Case True: CheckBox1 = Sheets("Forets HSS")
End Select

End Sub




Private Sub ajouter_click()


    'MsgBox "Coucou"   MARCHE
    'Sheets("Forets HSS").Cells(Ma_Liste, Mon_type).Value = 1
    'Sheets("Forets HSS").Cells(ComboBox1.Value, ComboBox2.Value).Value = 1 FAUX
    'Sheets("Forets HSS").Cells(Lig, Col2).Value = 1 FAUX
    'Sheets("Forets HSS").Cells(1, 1).Value = 1 MARCHE
    'Sheets("Forets HSS").Cells(1, 1).Value = ComboBox1.Value MARCHE
    'Sheets("Forets HSS").Cells(1, 1).Value = ComboBox2.Value MARCHE


    'Dim Diam1 As String
    'Dim Typ2 As String
    'Dim ComboBox1 As String
    'Dim ComboBox2 As String
    'Sheets("Forets HSS").Cells(ComboBox1, ComboBox2).Value = 1 FAUX




    ' Sheets("Forets HSS").Cells(1, 1).Value = ComboBox1.Value MARCHE
    ' Sheets("Forets HSS").Cells(2, 1).Value = ComboBox2.Value MARCHE
    ' Sheets("Forets HSS").Cells(CSng(ComboBox1.Value), CSng(ComboBox2.Value)).Value = 1 FAUX


End Sub
 

Mon fichier Excel est constitué de plusieurs feuilles.
Pour l'exemple on va dire qu'il y en a que 2.("Forets HSS" et "Forets HSS revêtus")
Elles sont constituées d'un tableau E12 : I131

Le but de ce fichier est de constitué au final, une gestion des stocks de tous les outils
Pour cela j'ai creé une interface utilisateur par le biais d'un userform.

elle est constituée (de haut en bas et de droite à gauche)

- Cases à cocher : Forets HSS (Feuille "Forets HSS") et Forets HSS Revêtu (Feuille "Forets HSS Revêtus")
- Combobox 1: liste correspondant au ligne du tableau de chaque feuilles
- Combobox 2: au colonne
- Zone de texte: Quantité à renseigner par l'utilisateur
- Puis de bouton "ajouter" ou "retirer" du stock

Ce que je souhaite c'est que lorsqu'on coche la case Forets HSS par exemple, que cela se réfère au tableau de la feuille "Forets HSS".
Et Que lorsque que l'utilisateur entre sa quantité et clique sur le l'un des 2 boutons "ajouter" ou "retirer", que cela incrémente ou désincrémente automatiquement la bonne cellule du tableau en fonction du choix fait par le biais des combobox.


Voila ma question,


Est-ce quelqu'un peut m'aider à constituer ce code ? ? ?
MERCI
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 00:03
Desolé, j'ai oublié...La comboBox1 correspond aux lignes donc aux diametres.(Valeurs num de 1 à 12.9)
La comboBox2 corespond aux colonnes donc au types. ( Standart, Extra.....)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 mars 2008 à 00:08
Seulement cette dernière réponse aurait été suffisante...
Cells(1,1)= "Allo"  'ça, ça peut fonctionner
Cells("1.9", "Standard") = "Allo"  'là, ça ne va plus...

Je te laisse y cogiter....

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 00:31
allez vas-y.
Expliques moi....c'est peut tout bete pour toi, mais moi j'apprends, donc ce serait sympa que tu ne me laisses pas cogiter j'ai testé beaucoup comme t'as pu voir dans le code...mais je vois vraiment pas.
merci a+
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 mars 2008 à 00:45
Ben... tu cherches à mettre du texte en guise de paramètre à la fonction Cells(Ligne, Colonne) qui prend des entiers Long ou Integer. Tu ne peux pas y mettre "1.3" ou "standard". Il n'existe pas de ligne ou de colonne avec ces coordonnées.

Tu dois donc trouver une autre méthode.
Si chaque ligne de ta feuille = chaque ligne de ton Combobox (et dans le même ordre), tu pourrais utiliser la propriété ListIndex du ou des combobox.
EX: si le premier item du combobox (Index 0) = la 3e ligne, il te suffit d'additionner 3 au ListIndex pour connaître la ligne. Même chose pour les colonnes. Il s'agit seulement de position relative...

Autrement, il faudrait que tu te crées une procédure de recherche et soit boucler pour trouver la bonne valeur, soit utiliser la fonction Find pour la trouver. Une fois la valeur trouvée, il ne te reste qu'à incrémenter ou décrémenter la cellule voulue.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 01:02
Bah pourtant j'ai bien ma ligne "1.3" =  ligne 15 de la boucle:


Dim Ma_Liste As String
   Dim Col As Integer
   Dim Lig As Integer
   Col = 5
   For Lig = 12 To 131
      Ma_Liste = Sheets("Forets HSS").Cells(Lig, Col).Value
      Fenetre_de_Selection_Outils.ComboBox1.AddItem Ma_Liste
   Next Lig


et ma colonne "standard" = colonne F de la boucle:

Dim Mon_type As String
   Dim Col2 As Integer
   Dim Lig13 As Integer
   Lig13 = 11
   For Col2 = 6 To 9
      Mon_type = Sheets("Forets HSS").Cells(Lig13, Col2).Value
      Fenetre_de_Selection_Outils.ComboBox2.AddItem Mon_type
   Next Col2

Il n'existe pas de fonction permettant de trouver l'intersection de ces 2 boucles en fonction du choix fait par ces 2 comboBox????

Puis apres,

Private Sub ajouter_click()
Sheets("Forets HSS").Cells( choix comboBox 1, choix comboBox2).Value = Variable

Puis ensuite j'incremente cette variable....

Non???pas possible, si oui peux tu developper un peu plus comment tu ferais.

Merci
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 01:13
J'ai regarder l'aide sur Excel sur les ListIndex et les combobox:
le premier choix de la combobox est 0, le second 1 et ainsi de suite...

En l'occurence j'ai deux combobox: combobox1 pour les lignes 12 à 131 et Combobox2 pour les colonnes F à I

Mais je voudrais bien savoir comment on ecrit un tel code et comment il s'utilise.
Si on pouvais m'aider ca serait sympa.

merci
0
gad311081 Messages postés 53 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 31 mars 2008
1 mars 2008 à 01:20
Je te remercie, ca fonctionne.

Je n'ai plus qu'à faire ma textBox pour indiquer la quantité souhaiter à ajouter ou retirer dans la bonne cellule.

Merci encore a+
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 mars 2008 à 10:36
pense au flag "réponse acceptée" sur la ou les réponses qui ont solutionné ton problème ;)
0
Rejoignez-nous