Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 rechercheV dans un userform avec valeur initiale en chiffres + lettres

thibz_99

XLDnaute Nouveau
Bonjour,

Je cherche à faire une recherchV dans mon formulaire de saisie.
La donnée à chercher est susceptible de comporter des chiffres ET des lettres.
Mon code marche avec les chiffres, mais quand la valeur à chercher, comporte une lettre, j'ai l'erreur 13 qui s'affiche. = Erreur d'incompatibilité = ???

Je vous illutsre ci-dessous mon code VBA :

Milles merci à celui qui saura m'aider.

Tibo
 

Pièces jointes

  • Capture.JPG
    55.3 KB · Affichages: 33

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

1 - parce que Clng("abc123") ne fonctionnera pas.
2 - si, comme on peut le supposer, .ReponseNomOccupant est un textbox et que Application.VLookUp renvoie une erreur xlCvErr le type ne sera pas compatible non plus.

Cordialement
 

Phil69970

XLDnaute Barbatruc
Bonjour @thibz_99 , Bruno, Hasco

Je suis débutant là-dedans...
Je recopie tel quel ? a quel emplacement ?
Le problème au départ c'est de fournir une image et non le code cela aurait permis à Bruno de te répondre avec le bon code des sa 1ere réponse..

En clair pas grand monde ici n'a envie de se recopier le code qui est sur ton image alors qu'il est aussi facile voir même plus facile de nous fournir directement le code.(Voir le fichier simplifié en respectant le RGPD)

Et maintenant il va y avoir X messages pour que tu comprennes ou il faut mettre le code que t'a donné Bruno
Que d’énergie perdu pour tout le monde...

@Phil69970
 

Hasco

XLDnaute Barbatruc
Repose en paix
Donc il n'est pas possible de faire une recherchV à partir d'un textbox combinant chiffres et lettres ?...
Cela devrait pouvoir se faire mais sans chercher, comme le disait @youky(BJ) , à convertir la valeur (Clng()) avant la recherche et de tester le retour de Application.VLookUp

Dim Valeur as Variant '
Valeur = Application.VLookUp(........)
'
' Tester la valeur retournée par VLoolUp qui pourrait être xlErrNA
'
If Not IsError(Valeur) then
.ReponseNomOccupant = Valeur
End if

cordialement
 

youky(BJ)

XLDnaute Barbatruc
Ca va mieux avec un fichier.
VB:
Private Sub RéponseLotConcerné_AfterUpdate()
If Application.CountIf(Feuil8.Range("G:G"), RéponseLotConcerné.Value) = 0 Then
MsgBox "Ce lot de travaux n'existe pas. Veuillez resaisir un nouveau numéro, via le menu déroulant.", vbInformation + vbOKOnly, "NOM DU CORPS DE METIER INCORRECT"
Exit Sub
End If

If IsNumeric(RéponseNumLogement) Then
RéponseEntreprise = Application.VLookup(Val(Me.RéponseNumLogement), Feuil8.Range("EtsEtsEts"), 2, 0)
Else
RéponseEntreprise = Application.VLookup(Me.RéponseNumLogement, Feuil8.Range("EtsEtsEts"), 2, 0)
End If

Je mets le fichier au cas ou
Bruno
 

Pièces jointes

  • FichierExcelVBALOOKUP.xlsm
    61.1 KB · Affichages: 1

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Au lieu d'un VlookUp vous trouverez un Application.Match dans le code du fichier ci-dessous.
Application Match vous donnera l'index ordinal de la ligne du tableau, ce qui permet d'accéder à tous les éléments de lignes plutôt que devoir faire de multiple Application.VlookUp


P.S. vous auriez au moins pu faire semblant de vouloir intégrer les soluces données précédemment.
Sur ce, je passe mon chemin
 

Pièces jointes

  • FichierExcelVBALOOKUP.xlsm
    89.1 KB · Affichages: 5

thibz_99

XLDnaute Nouveau
Merci beaucoup ! Ca fonctionne !!

Pourquoi toujours critiquer les gens ?

Je n'ai pas eu le temps, ni la réussite de les intégrer.... Toujours brasser du vent
Quand on sait faire, c'est facile de dire à ceux qui ne savent pas de faire telle ou telle chose.

Voilà, merci à tous pour tous vos messages !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…