Problème création liste déroulante

Bonjour,

J'ai une liste de termes dans la colonne A de mon fichier excel. (heures; m3/h; min; etc...)

J'ai fait une macro qui me permet de chercher, dans cette liste de termes, un termes précis. (m3/h)

Je veux qu'à chaque fois que la macro rencontre ce terme, elle crée dans sa cellule une liste déroulante avec plusieurs choix. (m3/h; l/h; m3/sec...)

J'ai fait cette macro qui est presque fonctionnelle:

Sub liste_deroulante()
Dim TF As Variant 'déclare la variable TF (Tableau des Formats)
Dim PL1 As Range
Dim CEL As Range

TF = Array("m3/h")

Set PL1 = Sheets("Tr").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each CEL In PL1
   For I = 0 To UBound(TF)
       If InStr(1, CEL.Value, TF(I), vbTextCompare) <> 0 Then Range.Validation.Add xlValidateList, , , "=m3/h,l/h"
    Next I
Next CEL

End Sub

je rencontre un problème au niveau de "Range.Validation.Add xlValidateList, , , "=m3/h,l/h"".

il faut que je renseigne un argument après mon "Range" , mais je ne sais pas quoi mettre.

J'ai essayé de mettre Range("A1:A"), mais évidemment ça me crée la liste déroulante sur toutes les cellules de la colonne, et je voudrais que ca le fasse seulement quand il y a "m3/h"

J'ai besoin de votre aide.

Je vous joins le fichier excel, si ça peut aider à la compréhension du problème.

Cdlt,

FGR

914062017.xlsm (17.24 Ko)

Bonsoir FGR, bonsoir le forum,

Peut-être comme ça :

Sub liste_deroulantee()
Dim TF As String
Dim L As String
Dim PL1 As Range
Dim CEL As Range

TF = "m3/h"
L = "m3/h,l/h"
Set PL1 = Sheets("Tr").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each CEL In PL1
    If InStr(1, CEL.Value, TF, vbTextCompare) <> 0 Then
        With CEL.Validation
            .Delete
            .Add Type:=xlValidateList, Formula1:=L
        End With
    End If
Next CEL
End Sub

Salut ThauThème,

Deux fois que tu me viens en aide, deux fois que ça marche à la perfection: MERCI BEAUCOUP.

Rechercher des sujets similaires à "probleme creation liste deroulante"