Code de recherche d'un string ds une ligne
S_D
Messages postés
24
Statut
Membre
-
S_D Messages postés 24 Statut Membre -
S_D Messages postés 24 Statut Membre -
Bonjour,
Voici le code :
Sub Lookup()
'Definition et initialisation du num de la piece
Dim numpart As String
numpart = InputBox("Part number")
'MsgBox (numpart) 'test
'variable auxiliare de negation
Dim ct As Integer
ct = 0
'Loop Variables
Dim i As Integer
'Length
Dim L As Integer
L = 256
'Loop
For i = 1 To i = L
If Sheets("Table BM-FG_1").Cells(1, i).Text = numpart Then
MsgBox ("Trouve")
ct = 1
End If
Next i
'si on trouve pas
If ct = 0 Then
MsgBox ("Pas Trouve")
End If
End Sub
Utilisation :
L'utilisateur rentre un string et on test la presence de ce string ds la premiere ligne (celle juste en dessous des headers). si on trouve on a un message "Trouve"
Sinon on a un message pas trouve.
Probleme :
- J'ai l'impression que le programme saute la boucle et passe directement a la fin. En effet meme si je rentre un string effectivement present ds la premiere colonne, le pgramme renvoie "Pas trouve". La partie en gras doit comporter un probleme, mais je ne sais pas quoi. J'ai deja ecumer les forums, et j'en suis arrive a ce code, qui ne marche toujours pas. (au debut j'utilisait .value au lieu de .text)
Merci a tous!
Voici le code :
Sub Lookup()
'Definition et initialisation du num de la piece
Dim numpart As String
numpart = InputBox("Part number")
'MsgBox (numpart) 'test
'variable auxiliare de negation
Dim ct As Integer
ct = 0
'Loop Variables
Dim i As Integer
'Length
Dim L As Integer
L = 256
'Loop
For i = 1 To i = L
If Sheets("Table BM-FG_1").Cells(1, i).Text = numpart Then
MsgBox ("Trouve")
ct = 1
End If
Next i
'si on trouve pas
If ct = 0 Then
MsgBox ("Pas Trouve")
End If
End Sub
Utilisation :
L'utilisateur rentre un string et on test la presence de ce string ds la premiere ligne (celle juste en dessous des headers). si on trouve on a un message "Trouve"
Sinon on a un message pas trouve.
Probleme :
- J'ai l'impression que le programme saute la boucle et passe directement a la fin. En effet meme si je rentre un string effectivement present ds la premiere colonne, le pgramme renvoie "Pas trouve". La partie en gras doit comporter un probleme, mais je ne sais pas quoi. J'ai deja ecumer les forums, et j'en suis arrive a ce code, qui ne marche toujours pas. (au debut j'utilisait .value au lieu de .text)
Merci a tous!
A voir également:
- Code de recherche d'un string ds une ligne
- Code ascii - Guide
- Partage de photos en ligne - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Code puk bloqué - Guide
2 réponses
Bonjour,
J'ai essayé ton code et effectivement il ne passe pas dans la boucle for.
Je te propose de la remplacer par un while / wend dans laquelle tu pourras stopper l'itération dés que tu auras trouvé la valeur recherchée :
Sub Lookup()
Dim numpart As String
Dim ct As Integer
Dim i As Integer
Dim L As Integer
numpart = InputBox("Part number")
ct = 0
L = 256
i = 1
While (ct = 0 And i <= L)
Set curCell = Table BM-FG_1.Cells(i, 1)
If (curCell.Value = numpart) Then
MsgBox ("Trouve")
ct = 1
Else
i = i + 1
End If
Wend
'si on trouve pas
If ct = 0 Then
MsgBox ("Pas Trouve")
End If
End Sub
J'ai essayé ton code et effectivement il ne passe pas dans la boucle for.
Je te propose de la remplacer par un while / wend dans laquelle tu pourras stopper l'itération dés que tu auras trouvé la valeur recherchée :
Sub Lookup()
Dim numpart As String
Dim ct As Integer
Dim i As Integer
Dim L As Integer
numpart = InputBox("Part number")
ct = 0
L = 256
i = 1
While (ct = 0 And i <= L)
Set curCell = Table BM-FG_1.Cells(i, 1)
If (curCell.Value = numpart) Then
MsgBox ("Trouve")
ct = 1
Else
i = i + 1
End If
Wend
'si on trouve pas
If ct = 0 Then
MsgBox ("Pas Trouve")
End If
End Sub