XL 2016 Utilisation de Target.SpecialCells(xlCellTypeAllValidation)

mwasikitoko

XLDnaute Nouveau
Bonjour Tous,
J'ai trouvé ce code VBA (crédit à l'auteur dont j'ai oublié le nom) et que j'ai tenté de documenter à l'aide de mes lectures (en italique)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Procédure si une cellule de la feuille est sélectionnée. Le paramètre Target correspond à la cellule sélectionnée
Dim V1 As Range ‘Déclaration de la variable V1 comme plage de cellule avec l’instruction DIM ... As Range
If Target.Count > 1 Then Exit Sub ‘Si plus d'une cellule est sélectionnée, fin de la Sub...
Set V1 = Target.SpecialCells(xlCellTypeAllValidation)‘Attribution d’une valeur à V1 avec instruction SET
If Not Intersect(V1, Target) Is Nothing Then 'Procédure déclenchée si clic dans n'importe quelle cellule avec critère validation
Target = Left(Target, 3)
End If

End Sub
J'aimerais modifier cette procédure évenementielle pour l'appliquer à 1 colonne spécifique avec critère de validation.
Je ne sais pas comment procéder.
Merci pour votre aide
 

jmfmarques

XLDnaute Accro
Bonjour
Le code que tu as copié est étrange .
1) Target ne peut qu'être une cellule, puisque tu quittes si plusieurs
2) dès lors , l'utilisation de specialcells est étonnante dans
VB:
Set V1 = Target.SpecialCells(xlCellTypeAllValidation)
3) de surcroit, si VI n'est pas nothing, VI est par définition dans Target (ce serait même target tout court, puisque target n'est qu'une cellule... et l'utilisation de Intersect ne peut dès lors que surprendre ). et si target n'est pas une cellule en validation -->> sortie en debug assurée !

Je crois que tu ferais mille fois mieux, au lieu de nous montrer un tel "code", de définir clairement, techniquement et avec précision les tenants et aboutissants de ton problème.
 

mwasikitoko

XLDnaute Nouveau
Bonsoir jmfmarques,
Merci pour ta réponse.
Ce code me permet d'afficher les 3 premières lettres d'une liste déroulante.
Dans la colonne I,
1. je crée la liste déroulante
2. je valide le choix
3. toute la chaîne de caractères s'affiche
4. Je suis obligée de cliquer encore une autre fois dans la cellule pour faire apparaître les 3 premiers caractères de la chaîne de caractère.
Voici mon problème technique...
Je ne sais pas si j'ai été assez claire...
Merci
Mwasikitoko
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 149
dernier inscrit
Deepkneec