Affichage changeant selon la valeur d'une liste déroulante

camille2442

XLDnaute Nouveau
Bonjour!

Je me permets d'interroger les experts pour résoudre mon problème..=D

Alors voila, mon objectif est de réaliser une sorte de questionnaire dans lequel certaines cases contiennent des listes déroulantes. Selon le choix au sein de cette déroulante, les questions qui sont posées en dessous change.

Pour arriver à mes fins, voici la méthode que j'ai utilisé:

J'ai d'abord crée un private sub Worksheet_Change(ByVal Target As Range) de la forme suivante:

If Not Application.Intersect(Target, Range("I9")) Is Nothing Then
Application.Run "" & titre & "!Feuil2.Macro_Restit1_" & Target.Value
End If

puis plusieurs public sub correspondantes

Macro_Restit1_Valeur1()
Macro_Restit1_Valeur2()
.... où Valeur1, Valeur2 sont les textes contenus dans la case I9
puis une macro Macro_Restit1_() dans le cas où on taperait Suppr dans la case I9

Bon alors jusqu'à lors, tout se passait bien, seulement j'essaye maintenant d'appliquer le même principe sur le groupe de cellules fusionnées "H107:I107". En tapant,

If Not Application.Intersect(Target, Range("H107")) Is Nothing Then
Application.Run "" & titre & "!Feuil2.Macro_Restit1_" & Target.Value
End If

tous les cas marchent sauf lorsque je tape Suppr dans la case fusionnée (erreur de compilation incompatibilité de type...et le résultat est le même quand je remplace Range("H107") par Range("H107:I107")

Qu'est ce que vous en pensez? Que puis-je faire?

Merci beacoup d'avance!!

Camille
 

skoobi

XLDnaute Barbatruc
Re : Affichage changeant selon la valeur d'une liste déroulante

Bonjour camille, bienvenue sur XLD,

Je suppose que l'erreur se produit sur la ligne Application.Run.
Je dirais que comme la cellule est vide, et bien ça ne colle pas avec le nom de la macro que tu veux exécuter:
Application.Run "" & titre & "!Feuil2.Macro_Restit1_" & Target.Value (qui est "vide").
Dans ce cas, ajoute dans la condition:
Code:
If Not Application.Intersect(Target, Range("H107")) Is Nothing [SIZE=3][B]And Target.Value <> ""[/B][/SIZE] Then
D'une manière générale, lorsqu'un bug survient avec une macro, pense à préciser la ligne sur laquelle l'erreur se produit.
 

Discussions similaires

Statistiques des forums

Discussions
312 210
Messages
2 086 281
Membres
103 170
dernier inscrit
HASSEN@45