Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 06/02/2010, 00h41   #1
Membre du Club
 
Inscription : juin 2008
Messages : 280
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 280
Points : 46
Points : 46
Par défaut selection menu deroulant + macro

Bonjour,
j'ai un menu deroulant qui, en fonction du choix fait, va alimenter le resultat d'une macro par un clic (sur le bouton de la macro, biensur)

je voudrais, puisque cette tache est systematique,
declancher automatiquement, apres le choix du menu déroulant, la macro qui est toujours la même.

je ne peux pas affecter sur un menu déroulant de macro...
mais il doit bien y avoir une manip qui existe tout de même

Merci d'avance !
djoumusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 01h08   #2
Membre actif
 
Inscription : avril 2008
Messages : 178
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 178
Points : 167
Points : 167
Hello,

Pas sur d'avoir compris, mais vois le fichier joint.

Si tu veux pas ouvrir le fichier (ce que je peux comprendre), procède comme suit.

Supposons que tu as une liste en A1 avec trois choix "A", "B" ou "C".

Dans le code de la feuille tu mets ceci...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
 
    'A chaque changement sur la cellule A1
    If Not Application.Intersect(Target, [A1]) Is Nothing Then
        If Target = "A" Then
            MsgBox "A"
        ElseIf Target = "B" Then
            MsgBox "B"
        ElseIf Target = "C" Then
            MsgBox "C"
        Else
            Exit Sub
        End If
    End If
 
End Sub
En espérant t'avoir aidé.

Cdt, Antoniom.
Fichiers attachés
Type de fichier : xls Exemple.xls (30,5 Ko, 2 affichages)
Antoniom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 10h28   #3
Membre du Club
 
Inscription : juin 2008
Messages : 280
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 280
Points : 46
Points : 46
Merci, mais je n'y arrive pas... c'est l'idée en tout cas...
voilà mon code
Code :
1
2
3
4
5
6
7
8
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Not Application.Intersect(Target, [C16]) Is Nothing Then
            DISPATCHGXP
 
    End If
 
End Sub
et je veux dire qu'a chaque changement de la cellule c16, je déclenche la macro DISPATCHGXP
et comme ça ca ne passe pas..???
djoumusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 10h47   #4
Membre actif
 
Inscription : avril 2008
Messages : 178
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 178
Points : 167
Points : 167
Hello,

Je ne sais quoi te dire, chez moi ça joue. Je précise que je travaille avec Office 2003.

Bonne fin de journée.

Antoniom.
Fichiers attachés
Type de fichier : xls Test.xls (25,5 Ko, 8 affichages)
Antoniom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 11h07   #5
Membre du Club
 
Inscription : juin 2008
Messages : 280
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 280
Points : 46
Points : 46
ton exemple marche,
c'est quand je veux l'adapter...
j'ai pas besoin des
if... pour declencher la msgbox..
je voudrais que systematiquement a chaque changement, par exemple une message box "bonjour" s'affiche...

Doit ton peut etre sepecifier le nom de l'onglet de TARGET , non..?
djoumusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 11h29   #6
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
Je n'ai pas excel sous la main mais
Citation:
Envoyé par djoumusic Voir le message
Doit ton peut etre sepecifier le nom de l'onglet de TARGET , non..?
Non, Target représente un objet Range (pas seulement une adresse) il est donc "accroché" a une feuille, si tu regarde dans sa structure tu y trouvera le nom de la feuille a laquelle il est associé.

Par contre il n'en est pas de même pour [C16], je n'en mettrais pas ma main au feu, mais essai de préciser le nom de worksheet.

A++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 12h21   #7
Membre du Club
 
Inscription : juin 2008
Messages : 280
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 280
Points : 46
Points : 46
OK SUPER CA MARCHE
en fait j'avais pas remarquer qu'il fallait poser ton code sur la feuille vba
j'etais en train de creer un module alors forcement;;;

MILLE MERCI POUR CET INFO !!

a bientot
djoumusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 12h26   #8
Membre du Club
 
Inscription : juin 2008
Messages : 280
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 280
Points : 46
Points : 46
je pousse un peu plus mon raisonnment,

peut on par macro, simuler le clic sur le menu deroulant d'une liste de choix,
et avoir la petite fenetre du menu déroulant qui s'ouvre...?
djoumusic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 13h59.


 
 
 
 
Partenaires

Hébergement Web