gad311081
Messages postés53Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention31 mars 2008
-
29 févr. 2008 à 21:04
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDerniè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.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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 !
gad311081
Messages postés53Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention31 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
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
gad311081
Messages postés53Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention31 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.....)
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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
gad311081
Messages postés53Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention31 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+
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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
gad311081
Messages postés53Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention31 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????