Erreur Qualificateur incorect lors de l'utilisation de la fonction Contains
Bonjour,
Je rencontre un problème lors de l'utilisation de la fonction Contains en VBA.
Private Sub export_selection()
Dim totclient As Integer
Dim contact As Integer
Dim adrfound As String
Dim adrfound2 As String
totclient = wbdata.Sheets(1).UsedRange.Rows.Count
contact = 2
'For client = 2 To totclient
For client = 2 To 3
wbclient.Sheets(1).Cells(client, 1).Value = wbdata.Sheets(1).Cells(client, 1).Value 'Code client
wbclient.Sheets(1).Cells(client, 3).Value = wbdata.Sheets(1).Cells(client, 2).Value 'Raison sociale
wbclient.Sheets(1).Cells(client, 4).Value = "Particulier" 'Type de client
'adresse
If wbdata.Sheets(1).Cells(client, 4).Value <> "" Then
adrfound = wbdata.Sheets(1).Cells(client, 4).Value
'adresse
wbclient.Sheets(1).Cells(client, 15).Value = Left(adrfound, Len(adrfound) - Application.Evaluate("MATCH(TRUE,ISNUMBER(--MID(""" & adrfound & """,LEN(""" & adrfound & """)-ROW($1:$255),1)),0)") - 5)
'Code postal
wbclient.Sheets(1).Cells(client, 17).Value = Mid(adrfound, Len(adrfound) - Application.Evaluate("MATCH(TRUE,ISNUMBER(--MID(""" & adrfound & """,LEN(""" & adrfound & """)-ROW($1:$255),1)),0)") - 4, 5)
'Ville
wbclient.Sheets(1).Cells(client, 18).Value = Mid(adrfound, Len(adrfound) - Application.Evaluate("MATCH(TRUE,ISNUMBER(--MID(""" & adrfound & """,LEN(""" & adrfound & """)-ROW($1:$255),1)),0)") + 2, 99)
'Vérif si ville contient France
adrfound2 = UCase(wbclient.Sheets(1).Cells(client, 18))
MsgBox (adrfound2)
If adrfound2.Contains(" France") Then
wbclient.Sheets(1).Cells(client, 18).Value = Replace(adrfound2, " FRANCE", "")
wbclient.Sheets(1).Cells(client, 20).Value = "FR"
End If
Else
'Code postal
wbclient.Sheets(1).Cells(client, 17).Value = "NC"
'Ville
wbclient.Sheets(1).Cells(client, 18).Value = "NC"
'Code ISO2
wbclient.Sheets(1).Cells(client, 20).Value = "FR"
End If
'Controle création de contact
If wbdata.Sheets(1).Cells(client, 5).Value <> "" Then
wbcontact.Sheets(1).Cells(contact, 2).Value = wbdata.Sheets(1).Cells(client, 1).Value 'code client
wbcontact.Sheets(1).Cells(contact, 4).Value = wbdata.Sheets(1).Cells(client, 2).Value 'Nom du contact
wbcontact.Sheets(1).Cells(contact, 6).Value = wbdata.Sheets(1).Cells(client, 5).Value 'E-mail
wbcontact.Sheets(1).Cells(contact, 8).Value = "Sans consentement" 'Consentement
contact = contact + 1
End If
Next
End SubMon problème se situe au niveau de la variable adrfound2 que j'utilise dans le if pour vérifier la présence du mot FRANCE.
Dès que je lance ma macro j'obtiens une erreur m'indiquant "Qualificateur incorect" et me surlignant le adrfound2 présent dans la ligne
If adrfound2.Contains(" France") ThenJe ne parviens pas à comprendre pourquoi j'ai une erreur sachant que ma variable a été déclarée en tant que string et lorsque je met mon if en commentaire j'ai bien le msgbox présent juste avant qui se déclenche correctement.
Une idée ?
Bonjour, Pourquoi l'utilisation de Ucase qui met en majuscul le contenu si vous recherchez ensuite France en minuscule ?
adrfound2 = wbclient.Sheets(1).Cells(client, 18)
If adrfound2 Like "*France*" ThenLa donnée est issue d'un formulaire. Je me sers donc du Ucase pour éviter d'avoir à gérer tous les cas possibles lié à la casse.
En tout cas j'ai fait une variante de ton code
If UCase(adrfound2) Like "*FRANCE*" Then Et la ca passe. Merci beaucoup.
Ok donc dans l'autre sens en majuscule.
oui si c'était pas minuscule c'était majuscule fallait choisir le bon.