VBA : aide sur données / validation

riegel

XLDnaute Nouveau
Bonjour à toutes et tous,

J'utilise une macro qui me permet quand je saisis un code postal en A1 d'obtenir la ou les villes ayant ce code postal en B2. La liste de mes communes est dans un autre classeur qui reste fermé.

Je souhaite reproduire la même chose mais je saisis en A1 un mot ou une lettre (par exemple : C) pour obtenir en B2 une liste déroulante de toutes les catégories qui commence par C .
Le souci est que dans la macro, le séparateur est une virgule ; or ma liste d'arguments contient des catégories avec une virgule : chasseur, pêcheur ; chat, chiens ; ...

Ci-joint ma macro développée par Olivier F.:

Set db = New ADODB.Connection
Str = "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" & ActiveWorkbook.Path & "\Communes.xls"
db.Open Str
Sql = "SELECT * FROM [Communes$] WHERE Dept='" & Cells(Target.Row, Target.Column) & "'"
Set rs = New ADODB.Recordset
rs.Open Sql, db

Do While Not rs.EOF
Communes = Communes & "," & rs(2)
NbCommune = NbCommune + 1
rs.MoveNext
Loop

Communes = Mid(Communes, 2)

If Communes = "" Then
Cells(Target.Row, Target.Column + 5).Validation.Delete
Cells(Target.Row, Target.Column + 5).Value = ""
Exit Sub
End If

' Création de la liste
With Cells(Target.Row, Target.Column + 5).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Communes
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Existe-t-il un moyen de changer le séparateur d'arguments ou dois-je partir sur une macro construite complètement différemment ?

Actuellement, j'utilise sans VBA la fonction données / validation qui fonctionne parfaitement, mais ma liste des catégories est dans le même classeur. Je souhaiterais externaliser cette liste dans un autre classeur qui pourrait rester fermé.

Question subsidiaire : dans ma gestion des codes postaux, seuls les 255 premiers caractères paraissent sous Excel 2003. Y-a-t-il un remède pour afficher plus de 255 caractères ?

D'avance, je vous remercie pour vos réponses et espère avoir été clair.

Riegel.
 

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p