Bonjour à tous,
J'ai ce bout de code dans un module affecté à une liste déroulante :
Code:
Sub Déroulante()
Dim ligne As String
Dim choix As String
ligne = Sheets("Liste Clients").Range("C1").Value
ligne = ligne + 1
choix = Sheets("Liste Clients").Range("D" & ligne).Value
Call Feuil2.Liste(choix, TarR)
End Sub
Celui là étant sur une de mes feuilles et TarR représentant Target.Row de ma procédure Worksheet_change utilisée au début :
Code:
Sub Liste(ByVal choix As String, ByVal TarR As String)
Sheets("Demandes").Cells(TarR, 3).Value = choix
Sheets("Demandes").Cells(TarR, 4).Value = Sheets("Liste Clients").Range("D" & ligne).Offset(1, 0).Value
End Sub
Le problème est que j'ai "erreur d'execution 13, incompatibilité de type" à la ligne 10.
Auriez vous une idée ??
Merci d'avance, Cordialement
Bonjour Alex92160, tontonexcel,le forum,
Première remarque : éviter les espaces dans les noms de feuilles.
Dans ta sub "déroulante", TarR n'est pas définit
Ta variable Ligne n'est définie que pour cette sub, et inutilisable dans la sub Liste (il faut la déclarer avant la sub).
Un fichier serait surement bienvenu.
Bon courage et à+
Denis
edit : le fichier vient d'arriver !!!
Re,
mets ceci en tête du module1 et supprime les Dim correspondants dans les Sub.
Public ligne As String
Public choix As String
Public TarR As String
Fais ton essais et tiens nous au courant.
Bon courage et à+
Denis
L'erreur viendrait de ta procédure liste
Sheets("Demandes").Cells(TarR, 3).Value = choix
TarR est vide (string) donc erreur peut-être déclarer en Integer ou Long
D'autre part faire un test si TarR = 0 (ligne ou colonne minimum = 1)
Sub Déroulante()
Dim ligne As Integer
Dim choix As String
ligne = Sheets("Liste Clients").Cells(1, 3).Value
ligne = ligne + 1
choix = Sheets("Liste Clients").Cells(ligne, 4).Value
Call Feuil2.Liste(choix, Target)
End Sub
et :
Code:
Sub Liste(ByVal choix As String, ByVal Target As Range)
Sheets("Demandes").Cells(Target.Row, 3).Value = choix
Sheets("Demandes").Cells(Target.Row, 4).Value = Sheets("Liste Clients").Range("D" & ligne).Offset(1, 0).Value
End Sub
Et j'ai maintenant erreur d'exécution Objet requis à la ligne de mon appel de la procédure Liste
C'est bon j'ai réussi en mettant ma variable en global !
Sauriez vous comment faire en sorte que ma liste déroulante s'affiche automatiquement lorsque l'utilisateur utilise une des cellules de la colonne B ?