Liste déroulante option

yonyon26 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Walter-Kum-Dorne Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Mon problème est le suivant:
j'ai 2 fichiers excel A ET B

je souhaite créer sur B une liste deroulante a partir d'une colonne de A
Seulement je veux que lorsque la liste déroulante s'affiche avec tous les choix possible, et quand je clique sur le choix, celui ci ne s'affiche pas dans la cellule!

c'est juste une listé déroulante d'information en gros.....

J'espère avoir été clair!

Merci pour vos réponses

A voir également:

5 réponses

Walter-Kum-Dorne Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Est-ce que ça ne conviendrait pas de simplement copier ta liste dans des cellules normales et de rajouter une mise en forme ?

Si tu pouvais nous expliquer un peu la finalité des fichiers on pourrait essayer de trouver une solution qui pourrait aller quand même parce que là ton problème de choix, je vois pas trop.
Tu voudrais juste avoir une liste qui ne prenne de la place que quand tu en as besoin ?

Si oui à mon avis il y a possibilité de rajouter un objet dont l'apparence (compacte ou développée) serait modifiée par un cilc ou juste un passage du curseur (après si tu connais pas trop le vba on va pouvoir t'aider, t'inquiètes).
0
yonyon26 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Alors j'explique !

J'ai 2 fichiers excel

« matrice haccp » appellé A
« base de donnée » Appellé B

mon tableau dans A ontient entre autre 2 colonnes
- colonne prp
- colonne numero prp

Mon tableau dans B contient entre autre 2 colonnes
- nom du sous prp
- num du sous prp


j'ai 2 ipb

- faire une liste déroulante dans la colonnenum prp de A qui contient toutes les cellules de la colonne « nom sous prp » de B
seulement je veux que lorsque la liste déroulante avec toutes les infos contenues de la colonne de B s'affiche je ne puisse pas cliquer dessu et du coup changer ce qu'il y a ds la cellule ou se trouve la liste déroulante......


- j'ai créée une liste dans la colonne "nom sous prp" et "num sous prp" de B
qui m'affiche tt ce qu'il y a contenu dans les cellules
est t'il possible que je clique sur une cellule de num sous prp et que ce num s'affiche directement dans la cellule "prp" de A


j'ai l'impression parler chinois.....
j'espere que c'est plu clair


;) en tt cas merci

Marion
0
Walter-Kum-Dorne Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
 
Donc je repose ma question, pourquoi tu veux avoir un menu déroulant si c'est pour ne pas l'utiliser ? Ca ne serait pas plus simple de copier seulement les données de la colonne du fichier B directement dans une colonne du fichier A ?
A quoi va te servir ce menu ?

Sinon pour ton deuxième problème c'est tout à fait possible, mais il va falloir faire un peu de programmation (rien de bien méchant).

1 - Ouvrir l'éditeur VBA du fichier B : Outils / Macro / Visual Basic Editor (ou Alt + F11 ça marche aussi).
2 - Dans la colonne de gauche, doublecliquer sur la feuille qui contient num sous prp.
3 - En haut de la feuille qui vient de s'ouvrir tu as deux menus déroulants. Celui de gauche tu sélectionne "Worksheet" et ensuite dans celui de droite "SelectionChange".
4 - Insérer le code suivant :

If Not Intersect(Target, Range("A2:A12")) Is Nothing Then
Workbooks("A.xls").Sheets("feuille").Range("B1") = Target.Value
Cancel = True
End If

5 - remplacer les valeurs suivantes :

a la place de A2:A12, il faut mettre la plage num sous prp
a la place de A.xls, il faut mettre le nom du fichier A
a la place de feuille il faut mettre le nom de la feuille qui contient la cellule "prp"
a la place de B1, il faut mettre la cellule "prp"
0
yonyon26 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

J'ai fait tout bien comme tu as dit.... seulement évidement ca ne fonctionne pas....

As tu une adresse email ou je puisse vous transmettre une impression ecran des mes 2 fichiers pour que tu puisses comprendre car je doit pas bien m'exprimer.... je ne suis pas du tout une adepte excel!

En tt cas merci tt de même c'est frenchement cool de ta part

Bonne journée

Marion
0
Walter-Kum-Dorne Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
 
Ok, vas voir tes mp
0

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

Posez votre question
Walter-Kum-Dorne Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
 
Salut

J'ai eu le temps de faire un bout de programme.
J'ai essayé de réduire au maximum, mais il y en a quand même dans les deux fichiers, et il faudra le mettre dans toutes les études pour que ca marche (comme les autres macros quoi) :

Dans l'étude, dans la feuille nommée xxx_grille_risque il faut rajouter ca :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 11 And LCase(Cells(Target.Row, Target.Column - 1).Value) = "prp" Then
Dim Localisation, Cellule As String
Localisation = ThisWorkbook.Name
Cellule = Target.Address
Set Basededonnee = Application.Workbooks.Open(ActiveWorkbook.Path & "\HACCP base_de_données.xls")
ActiveWorkbook.Sheets("PRP").Activate
ActiveWorkbook.Sheets("PRP").Range("Y1") = Localisation
ActiveWorkbook.Sheets("PRP").Range("Z1") = Cellule
MsgBox "Cliquez sur le numéros correspondant au cas"
End If

End Sub

Et dans la base de donnée dans la feuille PRP il faut rajouter ca :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Sheets("PRP").Range("Y1") <> "" And Not Application.Intersect(Range("C:C"), Target) Is Nothing Then
If Target.Cells.Count = 1 Then

Sheets("PRP").Range("X1") = Sheets("PRP").Range("X1") & Target.Value & ", "
Continue = MsgBox("Voulez vous sélectionner un cas suplémentaire ?", vbYesNo, "Sélection multiple ?")

If Continue = 7 Then
Sheets("PRP").Range("X1") = Left(Sheets("PRP").Range("X1").Value, Len(Sheets("PRP").Range("X1")) - 2)

Workbooks(Sheets("PRP").Range("Y1").Value).Sheets("xxx_grille_risque").Range(Sheets("PRP").Range("Z1").Value) = Sheets("PRP").Range("X1").Value
Sheets("PRP").Range("X1:Z1").Clear
ThisWorkbook.Close False
End If

Else
MsgBox "Une cellule à la fois svp"
End If

End If
End Sub


Sinon, il y a des points à respecter pour que le programme fonctionne correctement :

1 Il faut que les deux fichiers soient dans le même dossier (possibilité de rajouter une fonction de recherche manuelle, mais j'ai pas eu le temps).
2 Il faut que le nom de la feuille PRP dans le fichier base de donnée ne change pas (le programme peut être modifié pour changer le nom, mais si il faut le faire à chaque fois ça va être vite chiant).
3 Il faut disposer de trois cases libres (pas de liste, rien qui va etre inscrit dedans, pas de référence,...) dans le fichier base de donnée pour pouvoir retrouver le fichier étude et pouvoir faire les calculs. J'ai choisi arbitrairement les cellules X1, Y1 et Z1, mais si c'est modifié dans les deux programmes de la même façon ce n'est pas gênant de choisir d'autres cases (bien remplacer dans le programme pour chaque fois où la case concernée apparait).

Enfin, concernant le fonctionnement, il suffit d'ouvrir le fichier étude, de double cliquer sur la case vide colonne K où il faut ajouter la référence. La deuxième feuille s'ouvre avec un message, et derrière, il suffit de cliquer sur le numéro du cas pris en compte.

Dernière chose, il faut bien sur activer les macros si excel demande à l'ouverture des fichiers (possibilité de supprimer ce message en modifiant les paramètres d'excel dans Outils/Options/Sécurité/Sécurité des macros/niveau de sécurité faible).

PS : attention aux retours à la ligne, vba aime pas trop, regardes plutot les fichiers que je t'ai envoyé par mail.
0