liste déroulante modifier la plage d'entrée par VBA
5 réponses
GGAL
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée
j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
Par exemple :
Si T>1 alors plage_1
Si T<1 alors plage_2
Pouvez-vous m'aider, merci d'avance.
GGAL
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
Jacky
Bonjour,
Si mes souvenirs sont corrects et si j'ai bien compris. Ceci attribut à une liste déroulante nommée("Drop Down 1"), la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1 Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes ( .DropDownLines )
'---------- Sub jj() If t > 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage1" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If
If t < 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage2" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If Range("C1").Select End Sub '---------------- PS: pourquoi ne pas utiliser une liste dans une cellule avec Données/validation/liste, beaucoup plus simple. -- Salutations JJ
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
Bonjour,
Si mes souvenirs sont corrects et si j'ai bien compris.
Ceci attribut à une liste déroulante nommée("Drop Down 1"),
la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1
Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes (
.DropDownLines )
'----------
Sub jj()
If t > 1 Then
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "plage1"
.LinkedCell = "$C$1"
.DropDownLines = 10
End With
End If
If t < 1 Then
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "plage2"
.LinkedCell = "$C$1"
.DropDownLines = 10
End With
End If
Range("C1").Select
End Sub
'----------------
PS: pourquoi ne pas utiliser une liste dans une cellule avec
Données/validation/liste, beaucoup plus simple.
--
Salutations
JJ
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
4D365903-77FE-4DE5-AAAA-CE1FFC249AB0@microsoft.com...
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage
d'entrée
j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
Par exemple :
Si T>1 alors plage_1
Si T<1 alors plage_2
Pouvez-vous m'aider, merci d'avance.
GGAL
Si mes souvenirs sont corrects et si j'ai bien compris. Ceci attribut à une liste déroulante nommée("Drop Down 1"), la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1 Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes ( .DropDownLines )
'---------- Sub jj() If t > 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage1" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If
If t < 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage2" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If Range("C1").Select End Sub '---------------- PS: pourquoi ne pas utiliser une liste dans une cellule avec Données/validation/liste, beaucoup plus simple. -- Salutations JJ
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
isabelle
bonjour GGAL,
If T > 1 Then plg = plage_1 Else plg = plage_2 End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
bonjour GGAL,
If T > 1 Then
plg = plage_1
Else
plg = plage_2
End If
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = plg
.LinkedCell = "$A$1"
.DropDownLines = 8
.Display3DShading = False
End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée
j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
Par exemple :
Si T>1 alors plage_1
Si T<1 alors plage_2
Pouvez-vous m'aider, merci d'avance.
GGAL
If T > 1 Then plg = plage_1 Else plg = plage_2 End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
isabelle
correction :
If T > 1 Then plg = Range("plage_1").Address Else plg = Range("plage_2").Address End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
bonjour GGAL,
If T > 1 Then plg = plage_1 Else plg = plage_2 End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
correction :
If T > 1 Then
plg = Range("plage_1").Address
Else
plg = Range("plage_2").Address
End If
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = plg
.LinkedCell = "$A$1"
.DropDownLines = 8
.Display3DShading = False
End With
isabelle
bonjour GGAL,
If T > 1 Then
plg = plage_1
Else
plg = plage_2
End If
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = plg
.LinkedCell = "$A$1"
.DropDownLines = 8
.Display3DShading = False
End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage
d'entrée j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
Par exemple :
Si T>1 alors plage_1
Si T<1 alors plage_2
Pouvez-vous m'aider, merci d'avance.
GGAL
If T > 1 Then plg = Range("plage_1").Address Else plg = Range("plage_2").Address End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
bonjour GGAL,
If T > 1 Then plg = plage_1 Else plg = plage_2 End If ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = plg .LinkedCell = "$A$1" .DropDownLines = 8 .Display3DShading = False End With
isabelle
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
Filochard
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro.
La zone de liste étant nommée "zn" et les plages de références "plage_1" et "plage_2"
Sub Test() T = 100 With ActiveSheet Select Case T Case Is > 1 .DropDowns("zn").List = [plage_1] .DropDowns("zn").ListIndex = 1 Case Is < 1 .DropDowns("zn").List = [plage_2] .DropDowns("zn").ListIndex = 1 End Select End With End Sub
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée
j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
La zone de liste étant nommée "zn" et les plages de références "plage_1" et
"plage_2"
Sub Test()
T = 100
With ActiveSheet
Select Case T
Case Is > 1
.DropDowns("zn").List = [plage_1]
.DropDowns("zn").ListIndex = 1
Case Is < 1
.DropDowns("zn").List = [plage_2]
.DropDowns("zn").ListIndex = 1
End Select
End With
End Sub
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro.
La zone de liste étant nommée "zn" et les plages de références "plage_1" et "plage_2"
Sub Test() T = 100 With ActiveSheet Select Case T Case Is > 1 .DropDowns("zn").List = [plage_1] .DropDowns("zn").ListIndex = 1 Case Is < 1 .DropDowns("zn").List = [plage_2] .DropDowns("zn").ListIndex = 1 End Select End With End Sub
GGAL
C'est ce que je cherchais. En fait j'ai des listes déroulantes en cascade. La première ne doit pas apparaitre à l'impression. C'est pourquoi j'essaie par cette voie tout en conservant une saisie homogène. J'ai également testé la méthode Données/validation/liste avec : Range("A1").Validation.Modify Formula1:="=plage_1" Range("A1").Select Range("A1") = Range("plage_1").Item(1) etc.
Merci beaucoup, GGAL
Bonjour,
Si mes souvenirs sont corrects et si j'ai bien compris. Ceci attribut à une liste déroulante nommée("Drop Down 1"), la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1 Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes ( ..DropDownLines )
'---------- Sub jj() If t > 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage1" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If
If t < 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage2" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If Range("C1").Select End Sub '---------------- PS: pourquoi ne pas utiliser une liste dans une cellule avec Données/validation/liste, beaucoup plus simple. -- Salutations JJ
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL
C'est ce que je cherchais.
En fait j'ai des listes déroulantes en cascade. La première ne doit pas
apparaitre à l'impression. C'est pourquoi j'essaie par cette voie tout en
conservant une saisie homogène.
J'ai également testé la méthode Données/validation/liste avec :
Range("A1").Validation.Modify Formula1:="=plage_1"
Range("A1").Select
Range("A1") = Range("plage_1").Item(1)
etc.
Merci beaucoup,
GGAL
Bonjour,
Si mes souvenirs sont corrects et si j'ai bien compris.
Ceci attribut à une liste déroulante nommée("Drop Down 1"),
la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1
Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes (
..DropDownLines )
'----------
Sub jj()
If t > 1 Then
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "plage1"
.LinkedCell = "$C$1"
.DropDownLines = 10
End With
End If
If t < 1 Then
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "plage2"
.LinkedCell = "$C$1"
.DropDownLines = 10
End With
End If
Range("C1").Select
End Sub
'----------------
PS: pourquoi ne pas utiliser une liste dans une cellule avec
Données/validation/liste, beaucoup plus simple.
--
Salutations
JJ
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
4D365903-77FE-4DE5-AAAA-CE1FFC249AB0@microsoft.com...
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre
d'outils>Formulaires, puis zone de liste déroulante. Dans la plage
d'entrée
j'ai la plage nommée : plage_1
Je souhaiterais renommer la plage d'entrée par macro.
Par exemple :
Si T>1 alors plage_1
Si T<1 alors plage_2
Pouvez-vous m'aider, merci d'avance.
GGAL
C'est ce que je cherchais. En fait j'ai des listes déroulantes en cascade. La première ne doit pas apparaitre à l'impression. C'est pourquoi j'essaie par cette voie tout en conservant une saisie homogène. J'ai également testé la méthode Données/validation/liste avec : Range("A1").Validation.Modify Formula1:="=plage_1" Range("A1").Select Range("A1") = Range("plage_1").Item(1) etc.
Merci beaucoup, GGAL
Bonjour,
Si mes souvenirs sont corrects et si j'ai bien compris. Ceci attribut à une liste déroulante nommée("Drop Down 1"), la liste nommée "plage1" pour t>1 et la liste nommée "plage2" pour t<1 Adapter la cellule liée ( .LinkedCell ) et le nombre de lignes ( ..DropDownLines )
'---------- Sub jj() If t > 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage1" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If
If t < 1 Then ActiveSheet.Shapes("Drop Down 1").Select With Selection .ListFillRange = "plage2" .LinkedCell = "$C$1" .DropDownLines = 10 End With End If Range("C1").Select End Sub '---------------- PS: pourquoi ne pas utiliser une liste dans une cellule avec Données/validation/liste, beaucoup plus simple. -- Salutations JJ
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai créé une liste déroulante par la méthode Affichage>Barre d'outils>Formulaires, puis zone de liste déroulante. Dans la plage d'entrée j'ai la plage nommée : plage_1 Je souhaiterais renommer la plage d'entrée par macro. Par exemple : Si T>1 alors plage_1 Si T<1 alors plage_2 Pouvez-vous m'aider, merci d'avance. GGAL