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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
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" a écrit dans le message de 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.
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" <Tatane@discussions.microsoft.com> a écrit dans le message de news:
D17E1F67-34A4-4D02-BA45-91E1996B3883@microsoft.com...
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
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" a écrit dans le message de 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
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" a écrit dans le message de 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.
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" <Tatane@discussions.microsoft.com> a écrit dans le message de news:
D17E1F67-34A4-4D02-BA45-91E1996B3883@microsoft.com...
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
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" a écrit dans le message de 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.
Daniel
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" a écrit dans le message de news:
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" a écrit dans le message de 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.
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" <Tatane@discussions.microsoft.com> a écrit dans le message de news:
74CC5109-A065-42C2-BEFF-C4F472D983E8@microsoft.com...
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" <Tatane@discussions.microsoft.com> a écrit dans le message de
news:
D17E1F67-34A4-4D02-BA45-91E1996B3883@microsoft.com...
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
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" a écrit dans le message de news:
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" a écrit dans le message de 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
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" a écrit dans le message de news:
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" a écrit dans le message de 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.
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" <Tatane@discussions.microsoft.com> a écrit dans le message de news:
74CC5109-A065-42C2-BEFF-C4F472D983E8@microsoft.com...
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" <Tatane@discussions.microsoft.com> a écrit dans le message de
news:
D17E1F67-34A4-4D02-BA45-91E1996B3883@microsoft.com...
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
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" a écrit dans le message de news:
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" a écrit dans le message de 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