macro excel : plusieurs listes déroulantes mais sur une seul colonne

mimil

XLDnaute Junior
J'ai de nouveaux un probléme.

Je dois ecrire avec plusieurs liste deroulante
la premiere liste doit rentrer une donné en fonction d'une valeur
et la deuxieme liste aussi mais le probleme c que lorsque je veut rentrer une valeur dans la premiere liste elle affiche le resultat dans les cases de la premier liste et de la deuxieme
Alors que moi je veut que la valeur de la premier liste s'affiche dans une case et lorsque j'utilise l'aute liste le resultat s'affiche dans une autre case

merci d'avance


ps: ci joint deux fichier premier qui marche bien avec une liste déroulante et deuxieme avec 2 liste déroulante
 

Pièces jointes

  • Aide_v02(1) ok .xls
    43.5 KB · Affichages: 79
  • Aide_v03(1) no.xls
    40.5 KB · Affichages: 73
  • Aide_v03(1) no.xls
    40.5 KB · Affichages: 76
  • Aide_v03(1) no.xls
    40.5 KB · Affichages: 72
Dernière édition:

mimil

XLDnaute Junior
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

c-a-d

1 condition

Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim ai As Integer 'décare la variable ac (Ancien Index)


li = Me.ComboBox2.ListIndex + 3 'définit la ligne
col = Me.ComboBox1.Column(1, Me.ComboBox1.ListIndex) 'définit la colonne (récupère la valeur stockée dans la colonne 1 de la ComboBox1)
Select Case col 'agit en fonction de la colonne col
Case 3
ai = Cells(li, col - 1).Value 'définit l'ancien index (= N-1)
End Select

Cells(li, col).AddComment (TextBox1.Value) 'place le contenu de la TextBox1 (l'index du mois) en commentaire dans la cellule (li, Col)
Cells(li, col).Value = (Me.TextBox1.Value) - ai 'place la valeur de la TextBox1 - l'index du mois précédent dans la cellule (li, col)

End Sub



Avec deux condition



Dim li As Byte 'déclare la variable li (LIgne 1 à 3)
Dim la As Byte 'déclare la variable la (ligne 4 à 6)
Dim col As Byte 'déclare la variable col (COLonne)
Dim ai As Integer 'décare la variable ac (Ancien Index)


li = Me.ComboBox2.ListIndex + 3 'définit la ligne 1 à 3
la = Me.ComboBox3.ListIndex + 4 'définit la ligne 4 à 6
col = Me.ComboBox1.Column(1, Me.ComboBox1.ListIndex) 'définit la colonne (récupère la valeur stockée dans la colonne 1 de la ComboBox1)
Select Case col 'agit en fonction de la colonne col
Case 3
ai = Cells(li, col - 1).Value 'définit l'ancien index (= N-1)
ai = Cells(la, col -1).Value ' définit l'ancien index
End Select

Cells(li, col).AddComment (TextBox1.Value) 'place le contenu de la TextBox1 (l'index du mois) en commentaire dans la cellule (li, Col)
Cells(li, col).Value = (Me.TextBox1.Value) - ai 'place la valeur de la TextBox1 - l'index du mois précédent dans la cellule (li, col)

Cells(la, col).AddComment (TextBox1.Value) 'place le contenu de la TextBox1 (l'index du mois) en commentaire dans la cellule (la, Col)
Cells(la, col).Value = (Me.TextBox1.Value) - ai 'place la valeur de la TextBox1 - l'index du mois précédent dans la cellule (la, col)

End Sub


le probleme de la deuxieme , c que la valeur de la textbox lorsque je selectionne la combobox3 doit s'affiché en ligne 4 ou 5 ou 6 alors qu'ici elle s'affiche ligne 4 et 1 ou lg5 et2 ou lg6 et 3
 

Gorfael

XLDnaute Barbatruc
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

Salut mimil et le forum
Juste jeté un oeil, car pressé:
Utilise les balises pour le code (icone # en mode avancé), il n'en sera que plus lisible.
Code:
Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim ai As Integer 'décare la variable ac (Ancien Index)
Déclarer un Byte, te limite. c'est pas faux, mais si tu commences à écrire des macros plus conséquentes, tu vas te retrouver avec des dépassements de capacité aux plus mauvais moments (suivant Murphy). Prend l'habitude de déclarer tes variables en fonction de la valeur max qu'elles pourraient atteindre : C'est con de se planter pour un gain de 3 octets que tu économises en déclarant une ligne en Byte, au lieu de Long, alors que tu n'a pas vu l'espace mis par erreur à la dernière ligne.

Utiliser Select Case pour une seule valeur ? autant faire un If...End If

Je n'ai lu, vite fait que ton code et :
Code:
Case 3
    ai = Cells(li, col - 1).Value 'définit l'ancien index (= N-1)
    ai = Cells(la, col -1).Value ' définit l'ancien index
si col = 3
ai = valeur de cells(li, "B") => je veux bien
ai = valeur de cells(la,"B") => à quoi sert la ligne précédente ? si col = 3, tu colles dans ta variable ai 2 valeurs, l'une derrière l'autre : la dernière remplace la première !

Juste une remarque (je n'ai pas chargé les exemple) : donner un code faux. S'il n'est pas accompagné de ce qu'il aurait du faire, ce n'est pas le meilleur moyen d'aider au dépannage. On n'est ni devin, ni télépathe, ni utilisateur de ton fichier.
A+
 

Gorfael

XLDnaute Barbatruc
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

Salut mimil et le forum
mais ca ne resoud pas mon problème . ouvrez les fichiers pour mieux comprendre mon problème
Je les ai ouverts et ?
Je ne suis pas dans ta tête ! Je ne sais pas ce que je dois faire et avoir comme résultat ! C'est évident pour quelqu'un qui utilise le fichier, je suis bien d'accord avec toi. Le seul problème, c'est qu'à part toi, il n'y en a pas d'autre sur le site !

Je ne peux même pas me raccrocher au code, puisqu'il ne fonctionne pas comme tu le voudrais dans ton idée.
Je ne peux que te conseiller d'aller sur l'aide de Select Case, puisque tu n'a pas compris son fonctionnement. Il ne sert à rien de faire plusieurs "case" de même valeur : seule la première sera exploitée.

Si tu veux exploiter 2 valeurs, il te faut deux variables, ou charger une variable avec une valeur, l'exploiter, charger ta variable avec la seconde valeur et l'exploiter.
A+
 

mimil

XLDnaute Junior
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

c vrai ! je vais t'expliqué le fonctionnement donc dans le premier fichier on choisi un batiment( 1-2-3-4-5-6) , le mois(juin pui juillet puis ...) , on rentre une valeur dans la text box et le resultat s'affiche dans la case ( en commentaire c la valeur de la textbox) ceci fonctionne trés bien .

maintenan dans le deuxieme fichier , on choisi un batiment, mois et valeur dans textbox mais la différence c que je choisi choisi le bati 1-2-3 ou le bati 4-5-6 , ainsi le resultat s'affiche suivant le bati choisi.

mais mon probleme c que la valeur de la textbox s'affiche dans plusieurs case alors que je voudrais qu'il s'affiche au nivo du bati souhaité.

j'espére que c'est un peu plus compréhensible
 

Gorfael

XLDnaute Barbatruc
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

Salut mimil et le forum
Un code étant strictement personnel (dépend des habitudes, de la maîtrise du langage, etc...), j'ai essayé au maximum de respecter le tient. Mais je l'ai quand même bien chamboulé. Déjà, j'ai renommé tes contrôles : ça m'agace de devoir retourner sur l'USF, alors que je suis en train de coder, pour savoir si c'est la combobox 1 ou 2 que je dois mettre.

Perso, je n'utilise pas de colonne masquée, pour définir la cellule à écrire. Je préfère utiliser un .find. Mais chacun sa méthode.
je n'ai pas mis le commentaire, ne sachant pas quoi mettre.
A+
 

Pièces jointes

  • Aide_v03(1) Mod.xls
    31 KB · Affichages: 61

mimil

XLDnaute Junior
Re : macro excel : plusieurs listes déroulantes mais sur une seul colonne

merci pour ton aide Gorfael mais mon fichier n'est pas écrit de la même facon que la tienne et étant pas trés adepte de la VBA , je n'arrive pas à comprendre la tienne . Je vais essayer de trouver les réponses sur le forum. merci quand même !!
 

Discussions similaires

Réponses
3
Affichages
351
Réponses
8
Affichages
445

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 516
dernier inscrit
René Rivoli Monin