VBA/Excel : mauvaise interpretation de la valeur textbox

Sir Psymon Messages postés 13 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 13 janvier 2008 - 10 janv. 2008 à 17:02
Sir Psymon Messages postés 13 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 13 janvier 2008 - 12 janv. 2008 à 19:27
Bonjour à tous.

Je suis actuellement en train de travailler sur un projet Excel/VBA pour un projet d'étude.
J'ai besoin de procéder à la manipulation suivante pour plusieurs de mes opérations, à savoir :

taper des données dans les text box d'un userform afin de les comparer à celles de mes bases de données Excel.

A supposer que j'ai une colonne A intitullée "Numéros" et que les cellules A2, A3, A4... contiennent les valeurs 1, 2, 3...
La cellule A1  contient la valeur "Numéros"
Je souhaiterais tout simplement pouvoir sélectionner la valeur de la colonne qui correspond à celle inscrite dans ma textbox.

J'utilise le code suivant dans le bouton de mon userform :

Private Sub CommandButton1_Click()

Sheets("Utilisateur").Select
Range("A1").Select

Do While ActiveCell.Value <> Me.TextBox5.Value
ActiveCell.Offset(1, 0).Select
Loop

End Sub

Il se passe quelque chose d'assez étrange. Lorsque j'inscrit un nombre dans la textbox (par exemple : 2), il ne semble pas reconnaître cette valeur et il la cherche indéfiniment dans la colonne excel. Par contre, lorsque j'inscrit "Numéros" pour faire un test, il me trouve cette valeur dans la colonne excel, comme prévu.

Je suppose qu'il y a quelque chose à configurer pour qu'il reconnaisse les nombres. J'ai biensur tenté de modifier le format des cellules en numériques, mais cela ne changeait rien.

Je sollicite donc votre aide. Merci d'avance à tous ceux qui prendront la peine de me répondre !
Bonne fin d'aprem

8 réponses

zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
10 janv. 2008 à 17:06
Serait-ce a cause tu typage des données ?

Lorsqu'on tappe un nomber dans un texte box ce nombre est stocker en text et non en entier.

CINT(valeur) pourrait p-e regler le probleme.

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
Sir Psymon Messages postés 13 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 13 janvier 2008
10 janv. 2008 à 17:29
merci d'avoir répondu aussi vite.
Je viens de jeter un à coup d'oeil à l'aide VBA sur la manière d'utiliser Cint et je suis plutôt égaré.

J'ai une textbox, un bouton valider et un bouton annuler

Faut-il que je tape ce code dans ma textbox ou dans mon bouton de validation.
Comment faut-il que je l'adapte à mon cas ? Vous l'aurez compris, je suis débutant.

Merci de votre aide.
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
10 janv. 2008 à 18:15
montre ton code je te dirai ou le mettre

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
Sir Psymon Messages postés 13 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 13 janvier 2008
10 janv. 2008 à 18:38
Le code est celui inscrit plus haut. Je cherche à ce qu'il sélectionne la cellule de ma colonne excel qui a la même valeur que ma textbox.
Pour le moment je n'ai besoin que de bosser sur :

Private Sub CommandButton1_Click()                               bouton validation

Sheets("Utilisateur").Select
Range("A1").Select

Do While ActiveCell.Value <> Me.TextBox5.Value
ActiveCell.Offset(1, 0).Select
Loop

End Sub
--------------------------------------------------------------
Private Sub TextBox5_Change()

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
10 janv. 2008 à 19:05
Do While ActiveCell.Value <> CINT(Me.TextBox5.Value)
ActiveCell.Offset(1, 0).Select
Loop

est-ce que ca fonctionne ?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
11 janv. 2008 à 11:35
bonjour  !

Do While CSTR(ActiveCell.Value )<> Me.TextBox5.Value

 a mon avis il est plus judicieux de mettre au format STRING la valeur de la cellule qui peut avoir divers formats  alors que la textbox ne peut en avoir qu'un  pour pouvoir tester aussi bien les cellules contenant du texte que celles contenant des nombres
car dans ton exemple zen69 il ne peut plus comparer les textes !
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
12 janv. 2008 à 14:55
Ou encore
Dim Recherche As Range
Set Recherche = Columns("A").Find(CLng(Me.Textbox5), LookIn:=xlValues, LookAt:=xlWhole)
If Not Recherche Is Nothing Then
    Msgbox "Trouvé à la ligne " & Recherche.Row 'ou adresse: Recherche.Address
Else
    Msgbox "Valeur non trouvée"
End If

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Sir Psymon Messages postés 13 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 13 janvier 2008
12 janv. 2008 à 19:27
Merci à vous !
J'utilise la fonction CTsr et ça marche niquel !
:)

Mpi je garde ton code au chaud si je rencontre des difficultés à l'avenir.
0
Rejoignez-nous