Liste déroulante pour exécuter macro

Le
Tatane
Bonjour,

Après avoir longuement cherché sur le forum, je n'ai pas réussi à trouver.
Bref

Je voudrais lancer une macro à partir d'une liste déroulante
existante(Données/Validations)

J'ai fai ceci mais rien ne se passe pour le lancement de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Lancer une macro à partir de la liste déroulante
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If UCase(Target.Value) = "Disquette" Then
Call macro1
End If
End If
Application.EnableEvents = True
End Sub

Si vous pouviez m'aider Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4355981
Bonjour.
Je n'ai pas examiné à fond ton code, mais il me semble que tu dois mettre :
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Offset(0, 4).value)
d'autre part :
If UCase(Target.Value) = "DISQUETTE" then
Cordialement.
Daniel
"Tatane"
Bonjour,

Après avoir longuement cherché sur le forum, je n'ai pas réussi à trouver.
Bref ...

Je voudrais lancer une macro à partir d'une liste déroulante
existante(Données/Validations...)

J'ai fai ceci mais rien ne se passe pour le lancement de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr =
Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Lancer une macro à partir de la liste déroulante
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If UCase(Target.Value) = "Disquette" Then
Call macro1
End If
End If
Application.EnableEvents = True
End Sub

Si vous pouviez m'aider... Merci d'avance.


Tatane
Le #4355901
Merci de m'avoir mis sur la voie car:
- La première partie fonctionne parfaitement (signatures)
- Pour la ligne > If UCase(Target.Value) = "DISQUETTE" then
j'ai mis > If Target.Value = "Disquette" then
et là, tout fonctionne parfaitement.

Puisque je te tiens, dois-je répéter x fois ce code pour chacunes des
valeurs de la liste (ce que j'ai fait et ça marche bien) ou y a t'il une
astuce ?



Bonjour.
Je n'ai pas examiné à fond ton code, mais il me semble que tu dois mettre :
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Offset(0, 4).value)
d'autre part :
If UCase(Target.Value) = "DISQUETTE" then
Cordialement.
Daniel
"Tatane"
Bonjour,

Après avoir longuement cherché sur le forum, je n'ai pas réussi à trouver.
Bref ...

Je voudrais lancer une macro à partir d'une liste déroulante
existante(Données/Validations...)

J'ai fai ceci mais rien ne se passe pour le lancement de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr =
Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Lancer une macro à partir de la liste déroulante
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If UCase(Target.Value) = "Disquette" Then
Call macro1
End If
End If
Application.EnableEvents = True
End Sub

Si vous pouviez m'aider... Merci d'avance.







Daniel
Le #4355861
Je ne vois pas comment faire une boucle de manière simple. Utilise seulement
ElseIf pour éviter de passer systématiquement sur tous les tests.
If Target.Value = "Disquette" then
....
ElseIf If Target.Value = "toto" then
....
End If

Daniel
"Tatane"
Merci de m'avoir mis sur la voie car:
- La première partie fonctionne parfaitement (signatures)
- Pour la ligne > If UCase(Target.Value) = "DISQUETTE" then
j'ai mis > If Target.Value = "Disquette" then
et là, tout fonctionne parfaitement.

Puisque je te tiens, dois-je répéter x fois ce code pour chacunes des
valeurs de la liste (ce que j'ai fait et ça marche bien) ou y a t'il une
astuce ?



Bonjour.
Je n'ai pas examiné à fond ton code, mais il me semble que tu dois mettre
:
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Offset(0,
4).value)
d'autre part :
If UCase(Target.Value) = "DISQUETTE" then
Cordialement.
Daniel
"Tatane" news:

Bonjour,

Après avoir longuement cherché sur le forum, je n'ai pas réussi à
trouver.
Bref ...

Je voudrais lancer une macro à partir d'une liste déroulante
existante(Données/Validations...)

J'ai fai ceci mais rien ne se passe pour le lancement de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr >> > Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Lancer une macro à partir de la liste déroulante
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If UCase(Target.Value) = "Disquette" Then
Call macro1
End If
End If
Application.EnableEvents = True
End Sub

Si vous pouviez m'aider... Merci d'avance.









Tatane
Le #4355801
Super !
Voici l'extrait de mon code qui fonctionne parfaitement:

Private Sub Worksheet_Change(ByVal Target As Range) 'AV
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Imprimer "Enveloppe 22 x 11 cm"
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If Target.Value = "Enveloppe 22 x 11 cm" Then
Call Imp_ENV_22
' Imprimer "Enveloppe 26 x 30 cm"
ElseIf Target.Value = "Enveloppe 26 x 30 cm" Then
Call Imp_ENV_26
' Imprimer "Envoi A6"
ElseIf Target.Value = "A6 (10,5 x 14,9 cm)" Then
Call Imp_A6
' Imprimer "Envoi A5"
ElseIf Target.Value = "A5 (21 x 14,9 cm)" Then
Call Imp_A5
' Imprimer "Envoi A4"
ElseIf Target.Value = "A4 (21 x 29,7 cm)" Then
Call Imp_A4
' Imprimer "Envoi DISQUETTE"
ElseIf Target.Value = "Disquette" Then
Call Imp_DISQUETTE
' Imprimer "Envoi CD-DVD"
ElseIf Target.Value = "CD / DVD" Then
Call Imp_CD_DVD
End If
End If
Application.EnableEvents = True
End Sub

Encore merci et bonne journée.


Je ne vois pas comment faire une boucle de manière simple. Utilise seulement
ElseIf pour éviter de passer systématiquement sur tous les tests.
If Target.Value = "Disquette" then
.....
ElseIf If Target.Value = "toto" then
.....
End If

Daniel
"Tatane"
Merci de m'avoir mis sur la voie car:
- La première partie fonctionne parfaitement (signatures)
- Pour la ligne > If UCase(Target.Value) = "DISQUETTE" then
j'ai mis > If Target.Value = "Disquette" then
et là, tout fonctionne parfaitement.

Puisque je te tiens, dois-je répéter x fois ce code pour chacunes des
valeurs de la liste (ce que j'ai fait et ça marche bien) ou y a t'il une
astuce ?



Bonjour.
Je n'ai pas examiné à fond ton code, mais il me semble que tu dois mettre
:
Set Adr = Sheets("Expéditeurs").[B:B].Find(What:=Target.Offset(0,
4).value)
d'autre part :
If UCase(Target.Value) = "DISQUETTE" then
Cordialement.
Daniel
"Tatane" news:

Bonjour,

Après avoir longuement cherché sur le forum, je n'ai pas réussi à
trouver.
Bref ...

Je voudrais lancer une macro à partir d'une liste déroulante
existante(Données/Validations...)

J'ai fai ceci mais rien ne se passe pour le lancement de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Sélectionner la signature en fonction du nom
If Target.Address = "$F$6" Then
Dim Adr1 As Range
Set Adr > >> > Sheets("Expéditeurs").[B:B].Find(What:=Target.Value).Offset(0,
4)
x = "Expéditeurs!" & Adr.Address(0, 0)
With Sheets("BE")
.Shapes("Sign_1").Select
Selection.Formula = x
.Shapes("Sign_2").Select
Selection.Formula = x
.Shapes("Sign_3").Select
Selection.Formula = x
End With
[F6].Select
End If
' Lancer une macro à partir de la liste déroulante
Application.EnableEvents = False
If Target.Address = "$AE$13" And Target.Count = 1 Then
If UCase(Target.Value) = "Disquette" Then
Call macro1
End If
End If
Application.EnableEvents = True
End Sub

Si vous pouviez m'aider... Merci d'avance.














Publicité
Poster une réponse
Anonyme