Probleme avec Range.find
Résolu
mod77
Messages postés
1284
Date d'inscription
Statut
Membre
Dernière intervention
-
mod77 Messages postés 1284 Date d'inscription Statut Membre Dernière intervention -
mod77 Messages postés 1284 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je viens ici parce que je n'arrive pas à trouver le problème d'incompatibilité de type sur cette ligne de mon code:
Quelqu'un sera-t-il m'éclairer svp?
Je viens ici parce que je n'arrive pas à trouver le problème d'incompatibilité de type sur cette ligne de mon code:
Sub LitCSV() 'Lit les votes dans le fichier CSV
Dim i As Integer, pos As Integer, finlg As Integer
Dim vote As String, numcarte As String
Dim adr As Range
Dim wsh As Worksheet
Set wsh = ThisWorkbook.Sheets("Votes")
finlg = wsh.Range("A4").Value
Application.ScreenUpdating = False
'Workbooks.Open ("D:\monCSV.txt")
Open "D:\monCSV.txt" For Input As #1 'ouvre en lecture seule
i = 0
Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier
i = i + 1
Line Input #1, vote ' Met la ligne lue dans la variable "vote"
MsgBox vote
'sépare le numero de carte du vote
pos = InStr(1, vote, ",", 1)
numcarte = Left(vote, pos - 1) 'supprime le point virgule et prend ce qui est à gauche
MsgBox numcarte
vote = Mid(vote, pos + 1) 'renvoie les derniers caractères à "vote"
MsgBox vote
'cherche le NumeroCarte dans feuille "Votes"
Set adr = wsh.Range("B5:B" & finlg + 5).Find(numcarte, "B5", xlValues, xlWhole, xlByRows, xlNext)
If Not adr Is Nothing Then
MsgBox adr.Column
wsh.Range("Q" & adr.Rows) = vote
Set adr = Nothing
End If
Loop
i = i - 1
Close #1
Workbooks("monCSV.txt").Close
Application.ScreenUpdating = True
End Sub
Quelqu'un sera-t-il m'éclairer svp?
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peut-être ainsi:
Set adr = wsh.Range("B5:B" & CStr(finlg + 5)).Find(numcarte, "B5", xlValues, xlWhole, xlByRows, xlNext)
J'ai encore un problème bizarre :
Range.find me renvoie "adr" égale la valeur de "numcarte".
Mais lorsque j'écris :
Ce qui m'intéresse, c'est d'avoir uniquement son numéro de ligne.
mais en écrivant
Que faire alors? ...
Set adr = wsh.Range("B5:B" & CStr(finlg + 5)).Find(numcarte, wsh.Range("B6"), xlValues, xlWhole, xlByColumns, xlNext)
Range.find me renvoie "adr" égale la valeur de "numcarte".
Mais lorsque j'écris :
MsgBox adr.Addresslà, j'ai l'adresse où "numcarte" est trouvée.
Ce qui m'intéresse, c'est d'avoir uniquement son numéro de ligne.
mais en écrivant
adr.Rowsj'ai de nouveau la valeur de "numcarte".
Que faire alors? ...
malheureusement ça ne change rien :-(
j'ai même essayé ça: