Reconnaitre la valeur d'une cellule [Résolu]

Messages postés
5
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
- - Dernière réponse : 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 ?
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jimy neutron
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
3
Merci
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²

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
5
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
3
Merci
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 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LoloCoast
Messages postés
5
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
3
Merci
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 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LoloCoast
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
"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!
Commenter la réponse de jimy neutron