Sélection Change

Bonjour,

J'ai un tableur dans lequel je sélectionne 1 cellule (3 cellules fusionnées (C, D, E)) pour afficher à l'écran un détail des ventes des élèves.

Alors quand je clique sur la cellule C9; j'ai le détail des Ventes des élèves qui apparaissent.

Quand je clique sur la cellule C10; j'ai le détail de Fabrication qui apparaît.

Ainsi de suite.

Mais j'aimerais avoir un autre niveau de détail.

Parce exemple quand je clique sur Ventes des élèves j'ai Vendu à l'école, Vendu porte à porte, retour, Autres ventes qui apparaît à l'écran.

J'aimerais pouvoir cliquer sur Vendu à l'école pour voir apparaître le détail de Vendu à l'école

Si je clique sur Vendu porte à porte j'aimerais voir le détail.

Je fais parvenir un fichier pour une meilleure compréhension.

Merci,

Oiseau bleu

Bonjour

J'aimerais pouvoir cliquer sur Vendu à l'école pour voir apparaître le détail de Vendu à l'école

OK mais où doit-on aller chercher ce détail ?

Bye !

Salut,

Selon moi, tu n'as absolument pas besoin de réactiver la réactualisation de l'écran, tu pourrais donc déjà supprimer l'instruction Application.ScreenUpdating = True et placer l'instruction Application.ScreenUpdating = False en tout début de macro.

Ensuite – par l'instruction If Target.Count = 3 Then Exit Sub - tu sors de ta macro si la sélection ne comporte pas 3 cellules. De manière à pouvoir effectuer d'autres actions, je te propose donc d'inverser cette condition afin de rester dans tous les cas dans ton code.

Tel qu'indiqué directement dans la nouvelle macro proposée, tu peux alors ajouter autant de conditions que tu veux agissant sur d'autres sélections.

Ces modifications ont nécessité une autre modification de ta macro Traiter_Ventes. J'ai dû y ajouter l'instruction Application.EnableEvents = False et début de code et Application.EnableEvents = True en fin de code (dans ce cas, cette réactivation est absolument nécessaire).

Dans l'espoir d'avoir pu t'aider.

Cordialement.

Merci beaucoup pour les réponses.

J'ai pas bien expliqué mon problème.

J'ai rajouté des données dans l'onglet Validation comptes (C'est à cette endroit qu'il faut aller chercher l'information lorsqu'on clique une deuxième fois pour plus de détail.

Je m'explique :

Si tu cliques sur Fabrication: il apparaît à l'écran Achat produit1, Achat produit 2, Remboursement achat.

Si tu cliques sur Achat produit 1 :

Tu vas chercher l'information dans l'onglet Validation comptes et tu fais apparaître à l'écran:

1 Chocolat 130

2 Sucre 120

Exemple 2: Si tu cliques sur Publicité: Il apparaît à l'écran Journaux, Affichage, Internet.

Si tu cliques sur Journaux:

Tu vas chercher l'information dans l'onglet Validation comptes et tu fais apparaître à l'écran:

8 Journal de l'école 20

9 Journal de publicité 50

10 Journal local 19

Par contre l'information n'apparaîtra pas toujours à la cellule C214 cela peux varier. L'information peut être afficher 10 lignes plus bas donc la zone d'affichage varie.

La solution proposée par Yvouille est intéressante; mais doit inclure une zone affichage variable pas nécessairement C214.

J'inclus un nouveau fichier avec les ajouts de Yvouille.

Merci,

Oiseau bleu

Salut,

Dans ton ancien code Worksheet_SelectionChange, tu avais un évènement qui était déclenché lorsque tu cliquais sur les cellules fusionnées C9:D9.

Tu as demandé que d'autres évènement soient déclenchés lorsque tu cliques sur d'autres cellules et je t'ai fait la démonstration d'un évènement déclenchée en cliquant sur la cellule C214 (l'ouverture d'une MsgBox).

J'avais choisi la cellule C214 car – tel que tu le demandais – c'est celle qui contient le texte ''Vendu à l'école''.

Sur la base de cet exemple, tu devrais pouvoir modifier toi-même la macro que j'ai commencée en utilisant d'autres cellules à cliquer et déclenchants d'autres évènements.

Amicalement.

Merci pour votre réponse,

Le fichier expédier est un exemple de ce que je veux faire.

Mais dans mon fichier plus volumineux, je ne sais pas vraiment où les cellules vont apparaître, tout dépend de la quantité d'informations reliées du premier au second niveau.

Les cellules à clique peuvent se retrouver à 20 ou 30 lignes plus bas.

J'avais pensé fusionné c'est nouvelle cellule en VBA; mais cela ne fonctionne pas puisque le change valeur apparaît lorsque que j'essaie ça.

Alors comment faire pour fusionner les nouvelles cellules; capter l'adresse ou définir un nom dans le gestionnaire de nom, je suis un peu perdu et mes connaissances en VBA sont pas les meilleures.

Merci,

Oiseau bleu

Salut,

Ta demande est vraiment compliquée à comprendre. L'idéal serait que tu simules un fichier tout simple – avec seulement 5 ou 10 données exemples – démontrant ton problème.

Ensuite explique clairement ton souci en faisant référence aux objets Excel. Si tu dis par exemple : Je souhaite que lorsque je clique sur la cellule X30 les données de la plage A35:C45 soient reportées sous le tableau des colonnes F:H, on arrive à te suivre plus facilement.

Maintenant si c'est un peu plus compliqué et que tu dois expliquer un truc dans le genre, pourquoi pas : Il peut y avoir plusieurs situations différentes, telles que montrées sur ma Feuil3 et sur ma Feuil4. Etc.

Chaleureusement.

Merci, je vais essayé d'être plus clair dans mes explications.

Exemple: Vous remarquez que les cellules C9:E9, C10:E10, C11:E11 ET C12:E12 sont fusionnées et que j'ai défini dans le gestionnaire de noms Ligne_Début qui est égale à la fusion des cellules C9:E9 et Ligne_Fin qui est égale à la fusion des cellules C12:E12.

Ce qui me permet de connaître le début et la fin de la zone de travail et de faire un choix de sélection dans cette zone et d'aller à la procédure reliée à ce choix.

Lorsque vous cliquez sur Fabrication (Lignes C10:E10) il apparaît à l'écran le détail de cette item soit:

Achat produit 1 250 (lignes C214)

Achat produit 2 602 (lignes C215)

Remboursement achat -7 (lignes C216)

Total 845 (lignes C217)

Par contre je ne peux pas me baser sur ces lignes parce qu'elles peuvent être différentes à chaque fois. (si je rajoute d'autres éléments).

Donc je dois trouver la façon en VBA de fusionner les cellules C214:E214, C215:E215, C216:E216 pour par la suite faire un choix parmi ces trois lignes pour obtenir le détail de ces lignes.

C'est là que c'est compliqué, parce que le résultat n'apparaît pas nécessairement à la ligne 214, si je rajoute d'autres éléments cela pourrait être à la ligne 285 ou autres.

Lorsque je trouve la façon de définir le début et la fin de cette affichage de détail; si je clique sur Achat produit 1 j'aurai l'information suivante que j'irai chercher dans l'onglet Validation comptes entre les lignes A25 et F49.

Donc je clique sur Achat produit 1

Il apparaît à l'écran le détail suivant:

1 Chocolat 130

2 Sucre 120

Total 250

Si je clique à nouveau sur Achat produit 1 les lignes sont effacées et les lignes masquées s'affichent.

Mais ce qui complique tout c'est de touver la façon de rendre dynamique les 2ième détail pour le sélectionner.

Espérant avoir été plus clair,

Merci encore,

Oiseau bleu

Je ne suis pas certain d'avoir bien compris, mais normalement ce code devrait t'aider.

Ce code se déclenche selon la valeur de la cellule sélectionnée, quel que soit son emplacement.

    If Target = "Achat produit 1" Then
        MsgBox "Tu as sélectionné ''Achat produit 1''"
    End If

Si c'est pas ça, je revois ton explication.

Bien à toi.

Bonjour,

J'ai oublié de vous remercier pour votre réponse à ma question.

Cela a bien répondu et a été très apprécié.

Je suis désolé.

Merci encore,

Oiseau Bleu

Rechercher des sujets similaires à "selection change"