OVH Cloud OVH Cloud

Listes déroulantes cascades, toujours et encore

18 réponses
Avatar
vertum
Salut

Malgrè tout ce que j'ai lu sur ce forum (et d'autres) à ce sujet, je n'y
arrive pas!!??

Cf fichier ci-joint
http://cjoint.com/?huo5mpfF6K

sur ma feuille "fiche", je voudrais, lorsque je sélectionne un produit
("libellé DM") à l'aide de la liste déroulante, que celà me renvoie les
caractéristiques associées à ce produit (cf feuille listingproduit) et
uniquement celles-là.

Comme vous pouvez le constater, j'ai beaucoup de références pour chaque
instrument (et la liste et loin d'être complète), et je voudrais n'avoir qu'à
remplir une seule fois ces caractéristiques sur la 1ère feuille, puis remplir
toutes les fiches que je vais faire en n'utilisant que des listes déroulantes
liées en cascades.

8 réponses

1 2
Avatar
Daniel
"> Juste un petit bémol, dans la proposition de Daniel, si je choisis un DM
pour lequel il existe plusieurs références différentes, toutes ces
références
s'affichent et effacent les lignes d'en dessous.


Regarde comme ça :
http://cjoint.com/?hvajPHmK5h
Daniel

Avatar
vertum
Nouvelle question: comment faire, lorsque je modifie le listing produit
(style je change les caractéristiques des angle droit par exemple), pour que
ces modifications apparaissent dans les fiches de recompo? Car en ce moment,
les modif apparaissent ds l'userform, mais pas dans les cases que j'ai déjà
remplies.
Enfin, si c'est possible!

Je sais, j'abuse

Véro



Re Véro,

Alors pour cela c'est assez facile :

Tu choisis dans les menus en haut de ton écran :

Outils / Macro / Macros

Dans la fenêtre nomée "Macro" qui vient de s'ouvrir tu choisis la macro qui
affiche l'userform elle s'apelle : Bouton4_QuandClic

puis tu cliques sur le bouton "Options..." et là tu choisis le raccourci que
tu veux affecter à cette macro puis tu cliques sur le bouton "OK" et pour
finir tu refermes la fenêtre "Macro" en cliquant sur sa croix rouge en haut
à droite. Pour finir le bouton " REFERENCES " sur la feuille ne sert plus à
rien, clic droit dessus et "supprimer".
Bien sur à la fermeture de ton classeur quand EXCEL te demandes si tu veux
enregistrer les modifications tu dit OUI.

Supposons que tu ai choisis D et bien à chaque fois que tu appuyeras sur les
touches " Ctrl+Maj+d " et bien ta macro s'exécutera.

Bon voila ça c'est fait.... lol :-)

1petit lien pour découvrir VBE ( Visual Basic Editor ) c'est la dedans qu'il
y a toutes les macros que tu auras crées pour ton classeur ainsi que les
userforms et autres objet d'excel faisant partie de ton classeur.

http://xlwiki.free.fr/wiki/wakka.php?wikiíiteurVBA

Et un autre pour te montrer comment on crée un formulaire ( Userform ) avec
EXCEL

http://dj.joss.free.fr/usf.htm

Il y a aussi un enregistreur de macros fourni par EXCEL qui va t'aider à
créer tes premières macros sans connaître particulièrement le language de
programmation VBA. Le principe est simple tu déclenches l'enregistreur de
macros
A partir de ce moment toutes tes actions ( ex : changement d'un police,
d'une couleur de police, de fond de cellule, etc.... ) sont mémorisées. Dès
que tu as finis tes actions tu stoppes l'enregistreur de macros qui
sauvegarde ta macro avec un nom.

Déclencher Enregistreur de macros : Outils / Macro / Nouvelle Macro
Stopper l'enregistreur : Outils / Macro / Arrêter l'enregistrement

Amicordialement.

Marc

N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm



Avatar
vertum
Est-il possible de double-cliquer dans l'Userform pour sélectionner la ligne
désirée, plutôt que d'être ssytématiquement obligée de cliquer sur "insérer"?
Ca accélèrerait la saisie.

En tout cas j'ai pris des cours accélérés sur VBA & Userform, et finalement
ce n'est pas si "effrayant" que ça en a l'air!!


Re Véro,

Alors pour cela c'est assez facile :

Tu choisis dans les menus en haut de ton écran :

Outils / Macro / Macros

Dans la fenêtre nomée "Macro" qui vient de s'ouvrir tu choisis la macro qui
affiche l'userform elle s'apelle : Bouton4_QuandClic

puis tu cliques sur le bouton "Options..." et là tu choisis le raccourci que
tu veux affecter à cette macro puis tu cliques sur le bouton "OK" et pour
finir tu refermes la fenêtre "Macro" en cliquant sur sa croix rouge en haut
à droite. Pour finir le bouton " REFERENCES " sur la feuille ne sert plus à
rien, clic droit dessus et "supprimer".
Bien sur à la fermeture de ton classeur quand EXCEL te demandes si tu veux
enregistrer les modifications tu dit OUI.

Supposons que tu ai choisis D et bien à chaque fois que tu appuyeras sur les
touches " Ctrl+Maj+d " et bien ta macro s'exécutera.

Bon voila ça c'est fait.... lol :-)

1petit lien pour découvrir VBE ( Visual Basic Editor ) c'est la dedans qu'il
y a toutes les macros que tu auras crées pour ton classeur ainsi que les
userforms et autres objet d'excel faisant partie de ton classeur.

http://xlwiki.free.fr/wiki/wakka.php?wikiíiteurVBA

Et un autre pour te montrer comment on crée un formulaire ( Userform ) avec
EXCEL

http://dj.joss.free.fr/usf.htm

Il y a aussi un enregistreur de macros fourni par EXCEL qui va t'aider à
créer tes premières macros sans connaître particulièrement le language de
programmation VBA. Le principe est simple tu déclenches l'enregistreur de
macros
A partir de ce moment toutes tes actions ( ex : changement d'un police,
d'une couleur de police, de fond de cellule, etc.... ) sont mémorisées. Dès
que tu as finis tes actions tu stoppes l'enregistreur de macros qui
sauvegarde ta macro avec un nom.

Déclencher Enregistreur de macros : Outils / Macro / Nouvelle Macro
Stopper l'enregistreur : Outils / Macro / Arrêter l'enregistrement

Amicordialement.

Marc

N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm



"vertum" a écrit dans le message de news:

Comment fait-on pour créer un raccourci clavier au lieu de cliquer sur
"REFERENCES"


Salut vertum,

J'ai un peu continué à " bricoler ' ce que je t'ai proposé. ICI :
http://cjoint.com/?huweIuAJZB

Notamment j'y ai rajouté des msg d'alerte quand tu ne te trouves pas
dans


une cellule de la colonne LIBELLE DM avant d'INSERER.
Egalement quand tu es dans cette colonne mais qu'une donnée est déjà
présente, avec possibilité de continuer ( donc d'écraser tes données
existantes ) ou d'annuler la saisie.

Tu remarqueras que l'userform ne saisira rien en dehors de la zone de
saisie


qui pour le moment dans ton tableau va de la ligne 2 à 23. Magie....lol
:-)



Si cette piste te convient je peux continuer à améliorer ( avec tes
idées )


où si elle ne te convient ( ce que je peux comprendre ) j'arrête les
frais


dans ce sens.

Amicordialement.

Marc




















Avatar
Excel...lent
Salut Véro,

Si si c'est possible disait la celèbre pub....

Donc puisque VBE n'a plus de secret pour toi maintenant, clique sur Alt+F11
pour y accéder.

Tu cliques bouton droit sur "Userform1" dans le répertoire "Feuilles" et tu
choisis "Code". tu vas avoir sur la droite de l'écran les codes qui pilotent
l'usf.

Alors dans celui qui commence comme ça :

Private Sub CommandButton1_Click()
' Bouton INSERER

Tu va remplacer ces 2 premières lignes par:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' INSERTION

Ensuite tu double clique sur "Userform1" tu vas avoir l'usf affiché sur la
droite.Tu cliques droit sur le bouton INSERER et tu choisis supprimer pour
virer le bouton qui ne sert plus à rien.

Et voili, voilou à partir de maintenant le fonctionnement reste strictement
le même mais c'est le double-click sur un item de la liste qui valide
l'insertion.

Amicordialement.

Marc
Avatar
Excel...lent
Salut Vero,

Non non pas de soucis tu n'abuses pas... Par contre au niveau de mes petites
connaissances sur EXCEL et bien je sèche un peu sur ta question.

Je vais continuer à grater mais je te promet rien.

Désolé

Marc
Avatar
vertum
Nickel. Je suppose donc qu'une solution similaire doit exister pour qu'au
lieu d'utiliser le bouton "REFERENCE" ou le raccourci clavier, je puisse
déclencher la macro en double-cliquant sur la cellule que je veux compléter!
Je pense que grâce à tout ce que tu as fait, mon travail va être grandement
accélérer!
Merci
Avatar
Excel...lent
Salut Véro,

Bien sur on peut...

Alors tu vas d'abord supprimer le code qui affiche l'userform1, tu sais
celui qui s'apelle " Bouton4_QuandClic()
" et pour lequel tu m'a demandé s'il était possible de lancer avec un
raccourci clavier, en clair celui là :

Sub Bouton4_QuandClic()
Load UserForm1
UserForm1.Show
End Sub

Bon et maitenant tu vas rajouter le code ci-dessous dans la feuille "
fichederecompo ". Pour ce faire tu vas cliquer avec le bouton droit sur
l'onglet de ta feuille et tu choisis " Visualiser le code ". Tu viens
d'ouvrir l'espace VBE sur ta feuille. Là dans la partie de droite tu colles
ce code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C2:C23")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Load UserForm1
UserForm1.Show
End If
End Sub

Pour finir tu refermes VBE en faisant Alt+Q et tu regardes le résultat.
Alors normalement si tu sélectionnes une cellule de la colonne " Libellé DM
" ( c.a.d de la cellule C2 à C23 ) l'userform s'affiche. Si tu sélectionnes
n'importe quelle autre cellule ça ne marche.

Voili, voulou ma belle, est-ce bien ce que tu voulais ?

Amicordialement.

Marc
Avatar
vertum
Ok ça roule!

Véro


Salut Véro,

Bien sur on peut...

Alors tu vas d'abord supprimer le code qui affiche l'userform1, tu sais
celui qui s'apelle " Bouton4_QuandClic()
" et pour lequel tu m'a demandé s'il était possible de lancer avec un
raccourci clavier, en clair celui là :

Sub Bouton4_QuandClic()
Load UserForm1
UserForm1.Show
End Sub

Bon et maitenant tu vas rajouter le code ci-dessous dans la feuille "
fichederecompo ". Pour ce faire tu vas cliquer avec le bouton droit sur
l'onglet de ta feuille et tu choisis " Visualiser le code ". Tu viens
d'ouvrir l'espace VBE sur ta feuille. Là dans la partie de droite tu colles
ce code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C2:C23")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Load UserForm1
UserForm1.Show
End If
End Sub

Pour finir tu refermes VBE en faisant Alt+Q et tu regardes le résultat.
Alors normalement si tu sélectionnes une cellule de la colonne " Libellé DM
" ( c.a.d de la cellule C2 à C23 ) l'userform s'affiche. Si tu sélectionnes
n'importe quelle autre cellule ça ne marche.

Voili, voulou ma belle, est-ce bien ce que tu voulais ?

Amicordialement.

Marc






1 2