Lire les données d'une liste de validation en VBA

Bonjour,

Premier message sur ce forum, mais je tiens déjà à vous remercier tous, les nombreux sujets présents ici m'ont souvent depanné !

Mon problème est le suivant : j'ai dans la colonne B de mon tableau des listes de validation de données, qui sont différentes suivant les lignes : par exemple,

De B5 à B20 la liste va proposer "bon", "à remplacer"

De B21 à B47 une autre liste proposant "à vérifier", "à réparer", "à nettoyer"

etc pendant 400 lignes

Je cherche à réaliser une macro qui me remet le tableau dans un etat "initial" après qu'il ait été utilisé pour diagnostiquer un véhicule.

pour reprendre mon exemple ci-dessus, à l'issu du diagnostic j'aurai par exemple "à remplacer" dans B5, B7, B12, "à réparer" dans B23, B36 et je veux remettre "bon" de B5 à B20 et "à vérifier" de B21 à B47, ainsi de suite pour les 400 autres lignes et donc je cherche quelle fonction VBA me permet de lire le contenu de la liste de validation d'une cellule mais je ne l'ai pas trouvée.

En gros je veux pour chaque case de la colonne B lire le contenu de la liste de validation, et si elle contient "bon", la macro écrit "bon" dans la case, si la liste contient "à vérifier", la macro écrit "à vérifier" dans la case , etc

Est-ce que vous connaissez une fonction vba permettant d'aller lire les valeurs d'une liste de validation de données ?

Merci d'avance !

Bonjour et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Merci pour votre participation


Pour votre demande

Cordialement

bonjour,

une fonction personnalisée pour lire les données d'une liste de validation et un exemple d'utilisation en VBA

Sub m2()
'exemple d'utilisation de la fonction
liste = validationdatalist(Range("B1"))
    For Each el In liste
        MsgBox el
    Next
End Sub

Function validationdatalist(r As Range)
'fonction qui renvoie la  liste de validation de données d'une cellule
    dv = r.Validation.Formula1
    If Left(dv, 1) = "=" Then
        liste = Application.Evaluate(dv)
    Else
        liste = Split(dv, ",")
    End If
   validationdatalist = liste
End Function

Merci pour votre accueil Dan, je ne pourrai pas joindre un fichier exemple tout de suite, mais j'essaierai de le faire ce soir.

Merci beaucoup H2so4, je vais essayer ton code !

Merci h2so4 !

J'ai réussi à utiliser la fonction que tu m'as fourni pour faire exactement ce que je voulais !

J'ai juste rajouté un Dim dv au début de la fonction pour que ça fonctionne.

merci beaucoup, bonne journée

Rechercher des sujets similaires à "lire donnees liste validation vba"