Reconnaitre la valeur d'une cellule

Résolu
LoloCoast Messages postés 5 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 26 novembre 2007 - 23 nov. 2007 à 09:23
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 23 nov. 2007 à 18:26
Je reprend ici une question que j'ai posée dans un post précédent (Encore merci à ceux qui ont pris la peine de répondre à ma signature, merci Us pour ton argumentaire :) ). Comme mon message ne s'était pas affiché, je repost :

Je souhaiterais pouvoir reconnaître une valeur issue d'une TextBox parmis les cellules d'une colonne afin d'activer la cellule correspondant à cette valeur.

Pour cela j'ai codé :

      Dim i
      i = 3       'ligne initiale

      While Not Sheets("Sheet1").Cells(i, 1).Value = Form1.TextBox1.Value
   
         i = i + 1

      Wend

      Sheets("Sheet1").Cells(i, 1).Activate

Et pourtant rien à faire : messages d'erreur autant divers qu'incompréhensible portant sur la commande Sheets

J'ai également essayé

une commande range pour selctionner ma cellule mais là encore : choux blanc

A votre bon coeur M'sieurDames

Merci

Lolo Coast
La connerie est elle une forme d'intelligence ?

5 réponses

jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
23 nov. 2007 à 10:14
Salut,

Quelque chose me gêne dans ton code, si aucune celule ne contient la valeur  de Form1.TextBox1.Value, le code va boucler jusqu'au depassement de capacité de 'i'. D'où une erreur. Tu devrais, je pense, d'abord connaitre le nombre de ligne max puis:

for i=3 to NbLignemax
    if  Sheets("Sheet1").Cells(i, 1).Value = Form1.TextBox1.Value then goto Suite
         i=i+1
   End if
next i
exit sub

Suite: Sheets("Sheet1").Cells(i, 1).Select
 
Essaye ça?

Jimy
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 nov. 2007 à 11:14
Jimy, tu n'as pas à mettre de i = i + 1 dans la boucle For, qui le fait déjà...

for i = 3 to NbLignemax
    if  Sheets("Sheet1").Cells(i, 1) = Form1.TextBox1 then
         Sheets("Sheet1").Cells(i, 1).Select
         Exit For  ' on peut sortir de la boucle
   End if
next i
exit sub

MPi²
3
LoloCoast Messages postés 5 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 26 novembre 2007
23 nov. 2007 à 11:35
Bonjour Jimy

Merci pour ton bout de code

J'ai toujours le même problèmes (ne trouve pas la cellule) mais ton code m'a permis de le cibler :
En fait (j'ai l'impression que)  la commande Sheets("Sheet1").Cells(i, 1).Value ne renvoie pas le même format que
Form1.TextBox1.Value du coup il ne peut y avoir d'égalité entre les deux.

Par exemple si la valeur cherchée est désignée dans le code comme "" il va à la première cellule vide de même si je laisse la TextBox vide
Par contre dès que je veux travailler avec des nombre là aïe aïe aïe aïe

Bon je suis toujours bloqué mais au moins on évite les erreurs... On progresse on progresse

Merci pour ton aide

Lolo Coast
La connerie est elle une forme d'intelligence ?
3
LoloCoast Messages postés 5 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 26 novembre 2007
23 nov. 2007 à 12:26
Je pense effectivement qu'il y incompatibilité de format entre Sheets("Sheet1").Cells(i, 1).Value  et Form1.TextBox1.Value

J'ai donc réglé mon problème en injectant la valeur de Form1.TextBox1.Value dans une cellule d'une page dont je ne me sert pas (sheet2)et je fais :

Sheets("Sheet2").Cells(1, 1).Value = UserForm1.TextBox1.Value


For i = 3 To 100
    If Sheets("Sheet1").Cells(i, 1).Value = Sheets("Sheet2").Cells(1, 1).Value Then
         Sheets("Sheet1").Cells(i, 1).Select
         Exit For  ' on peut sortir de la boucle 
    End If
Next i

Et là c'est OK

Magique

Encore merci pour votre aide Jimy et MPi²




Lolo Coast


La connerie est elle une forme d'intelligence ?
3

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

Posez votre question
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
23 nov. 2007 à 18:26
"Jimy, tu n'as pas à mettre de i = i + 1 dans la boucle For, qui le fait déjà..."

C'est vrai, c'est une etourderie....Sorry!
0
Rejoignez-nous