Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste déroulante... Visual basic et macros...

1 réponse
Avatar
Didou.a
Bonjour à tous,

J'utilise [/contents/tableur/tablintro.php3 excel] depuis de nombreuses
années mais n'ai jamais eu le temps de vraiment me pencher sur les
fonctionnalités visual basic et macro...
Aujourd'hui, je dois créer un fichier dans lequel les feuilles seront liées
soit par des listes déroulante soit par des formules.
C'est pour obtenir quelque chose de simple à utiliser que je vous demande
votre aide...

Premier problème (j'imagine que vous allez vous dire que je suis nulle...) :
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies
Dans A6 une étoile *
Dans A7 un total
Quel code utiliser pour qu'une ligne s'insère Entre A6 et A7 (et deviendrait
donc A7) avec un * dans A si j'écrit quelque chose dans A6 à la place de * ??
L'insertion avant A7 va-t'elle automatiquement renommer "AAA" pour la plage
A2:A8 ?

Deuxième problème :
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies (par exemple des types de produits)
Feuille 1 - Colonne B - Nommée "BBB" pour la plage A2:A7
De A2 à A5 des données saisies (par exemple des sous types de produits)
A2 et A3 sont identiques
Mais B2 et B3 sont différents
Dans feuille 2 - A1 est une liste déroulante de AAA
Dans feuille 2 - B1 est une liste déroulante de BBB mais n'incluant que ceux
correspondant au AAA choisi en A1
Est-ce possible ??? Comment faire ?

Heu voilà... j'ai pas mal a apprendre encore...
Merci pour votre aide précieuse.
Bonne soirée.
Didou

1 réponse

Avatar
Philippe.R
Bonsoir,
Pour le 1/, à coller dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
'MPFE le 07/04/2010
If Not Intersect(Target, Range("AAA")) Is Nothing Then
If Target.Offset(1, 0).HasFormula Then
Application.EnableEvents = False
Range("A" & Target.Row).Insert Shift:=xlDown
Range("a" & Target.Row - 1).Value = Target.Value
Target.Value = "*"
Application.EnableEvents = True
End If
End If
End Sub

la plage nommée se trouve automatiquement étendue, indépendamment du code,
puisque l'insertion a lieu à l'intérieur d'icelle
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Didou.a" a écrit dans le message de
news:
Bonjour à tous,

J'utilise [/contents/tableur/tablintro.php3 excel] depuis de nombreuses
années mais n'ai jamais eu le temps de vraiment me pencher sur les
fonctionnalités visual basic et macro...
Aujourd'hui, je dois créer un fichier dans lequel les feuilles seront
liées
soit par des listes déroulante soit par des formules.
C'est pour obtenir quelque chose de simple à utiliser que je vous demande
votre aide...

Premier problème (j'imagine que vous allez vous dire que je suis nulle...)
:
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies
Dans A6 une étoile *
Dans A7 un total
Quel code utiliser pour qu'une ligne s'insère Entre A6 et A7 (et
deviendrait
donc A7) avec un * dans A si j'écrit quelque chose dans A6 à la place de *
??
L'insertion avant A7 va-t'elle automatiquement renommer "AAA" pour la
plage
A2:A8 ?

Deuxième problème :
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies (par exemple des types de produits)
Feuille 1 - Colonne B - Nommée "BBB" pour la plage A2:A7
De A2 à A5 des données saisies (par exemple des sous types de produits)
A2 et A3 sont identiques
Mais B2 et B3 sont différents
Dans feuille 2 - A1 est une liste déroulante de AAA
Dans feuille 2 - B1 est une liste déroulante de BBB mais n'incluant que
ceux
correspondant au AAA choisi en A1
Est-ce possible ??? Comment faire ?

Heu voilà... j'ai pas mal a apprendre encore...
Merci pour votre aide précieuse.
Bonne soirée.
Didou