Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1747 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vb excel - liste deroulante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

vb excel - liste deroulante

n°1127524
niwareka
Posté le 22-06-2005 à 15:43:49  profilanswer
 

bonjour a tous,
je debute en vb et j'ai besoin dans un fichier excel de creer des listes deroulantes. je m'explique :
colonne A : je choisie un type de pb (ex : securite, information...)
colonne B : en fonction de ce qui est selectionne dans la colonne A je dois choisir un sous-type (ex : pour securite on aura vol, intrusion... et pour inforamtion on aura defaut de transmission, mauvaise orientation...)
 
je suis arrivée a faire mes listes deroulantes en utilisant donnees / validation /liste et avec le code suivant je recupere l'interieur de mes listes:
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$36" Then
[B36] = Range([A36]).Item(1)
End If
End Sub
 
 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$36" _
Or Target.Address = "$B$36" _
Then Application.SendKeys "%{down}"
End Sub
 
 
ca marche super bien pour la ligne 36, mais le probleme c'est que j'ai un certain nombre de ligne (environ 100 et ce pour chaque service cad 4) a rentrer et que je n'ai pas envie de me taper tout le code.
je ne sais pas comment declarer le n° de la ligne en variable??
ou peut etre qu'une boucle pourrait fonctionner?
si quelqu'un veut voir mon fichier : http://cjoint.com/?gwoFzbbgOg  
 
merci d'avance pour votre aide.

mood
Publicité
Posté le 22-06-2005 à 15:43:49  profilanswer
 

n°1128166
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-06-2005 à 06:16:33  profilanswer
 

Première remarque. Pas besoin d'utiliser Sendkeys alors que tu as tout ce qu'il te faut dans VBA:
 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
  If Target.Address = "$A$36" _  
  Or Target.Address = "$B$36" _  
  Then Target.Cells(2,1).Select
End Sub


Ceci dit, tiens-tu absolument a faire tes listes dans une feuille?
Je pense que c'est plus "pro" en créant un Form et en mettant tes listes dedans.
 
Je dis ça sans avoir regardé ton fichier.
Si j'ai le temps aujourd'hui, j'y jette un oeil.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1128221
niwareka
Posté le 23-06-2005 à 09:09:52  profilanswer
 

merci pour les infos. je suis d'accord avec toi sur le fait qu'il ne faudrait pas mettre les listes dans la feuille, mais a vrai dire je n'ai pas compris ce qu'etait un "form". c'est un peu comme un tableau?

n°1128788
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-06-2005 à 15:03:01  profilanswer
 

Non, c'est plutôt comme un Msgbox que tu configures avec tout ce que tu veux dessus (Boutons, Labels, Textbox, Listes, Boutons radio, cases à cocher...)
Tu peux en modifier la taille et la présentation.
Bref, très souple et ça donne un aspect "pro" à ton application.
 
Pour en créer un, tu vas en VBA et, dans le menu Insert(ion), tu choisis UserForm.


Message édité par AlainTech le 23-06-2005 à 15:03:49

---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1128909
Machiiine
Posté le 23-06-2005 à 16:29:20  profilanswer
 

A ta place je ferai une boucle. Je ne sais pas trop non plus comment boulcer sur les lignes sans utiliser la méthode "offset" à deux arguments de l'objet "Range". Elle déplace la cellule courante selon les deux arguments, le premier pour le nombre de lignes et le second pour les colonnes.
 
Si tu es sur B33 et que tu fais Offset(3,3) tu seras sur E36.
 
J'ai pas matté de code non plus, je suis pas un pro... j'essaye d'aider ;)

n°1129068
papou_net
Posté le 23-06-2005 à 18:16:55  profilanswer
 

salut
pourquoi pas faire un userform avec deux combobox et du code du genre
 
Private Sub ComboBox1_Change()
 
'select case
If ComboBox1.Value = "securite" Then ComboBox2.RowSource = "a13:a22"
If ComboBox1.Value = "dossier" Then ComboBox2.RowSource = "b13:b17"
If ComboBox1.Value = "information" Then ComboBox2.RowSource = "c13:c17"
If ComboBox1.Value = "traitement" Then ComboBox2.RowSource = "d13:d18"
If ComboBox1.Value = "information" Then ComboBox2.RowSource = "c13:c17"
 
 
 
End Sub
 
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "a2:a10"
End Sub


Message édité par papou_net le 23-06-2005 à 18:17:49
n°1129665
niwareka
Posté le 24-06-2005 à 11:56:52  profilanswer
 

merci a tous pour votre aide;
j'ai fini par reussi a faire ce que je voulais avec du VB + donnees / validation / liste.
mais je vais quand meme essayer vos methodes avec le userform histoire d'approfondir un peu plus mes (petites) connaissances en VB.
si quelqu'un veut voir le resultat pour faire la meme chose :
http://cjoint.com/?gymfBvbZAc
 
encore merci a tous, et bonne journee ;)

n°1129947
AlainTech
Pas trouvé? Cherche encore!
Posté le 24-06-2005 à 14:32:19  profilanswer
 

Pas de fichier joint...


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1131858
niwareka
Posté le 27-06-2005 à 09:28:13  profilanswer
 

oui effectivement il doit y avoir un petit souci. si tu es interesse, je peux te l'envoyer par mail....ecris moi, mon adresse est sur le lien..


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vb excel - liste deroulante

 

Sujets relatifs
vbs excel [ résolu ]activer / desactiver boite déroulante
Mettre à jour une cellule Excel avec des données du webIf imbriqués, Case of ou liste pour une grosse sélection ?
est il possible d'envoyer un mail directement d'excelListe déroulant de la base mysql
Récupérer valeur liste déroulante...???Vb excel : Afficher une liste deroulante ....debutant inside
Création d'une liste déroulante pour un fichier Excel en VBAListe déroulante sous Excel
Plus de sujets relatifs à : vb excel - liste deroulante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR