Find entre Spreadsheet

julasse Messages postés 6 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 22 avril 2011 - 13 janv. 2011 à 14:18
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 17 janv. 2011 à 11:29
Bonjour tout le monde

Après 3 heures à chercher un tout petit problème .... j'appel à votre culture VBtique

J'ai trois Spreadsheet:
tbl1:base de données
tbl2:tableau dans lequel je rentre le code qui fera appel à une donnée de tbl1
tbl3: tableau dans lequel est inséré la données
j'ai rentré ce code:

Private Sub cb3_Click()
Set a = uf2.tbl1.Column("D").Find(uf2.tbl2.Range("A1").Value, LookIn:=xlValues, lookat:=xlWhole)
uf2.tbl3.Cells(2, 1).Value = a.Offset(0, -1)
End Sub

Merci à tous

jules

Jules

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
13 janv. 2011 à 14:45
Bonjour,

heu.. je ne trouve pas ta question dans ton post ...
Mais bon, au cas où, voici une fonction que j'utilise pour le FIND peut-être que cela répondra à ta question :

Function cherchC(nomF As String, valCherch As String) As Integer 
'fonction de recherche... 
'********************************************************** 
' recherche la valeur 'valCherch' et nous indique le 
' N° de ligne ou  de Colonne où elle se trouve 
' nomF  = Nom de la feuille ou chercher
'********************************************************** 
Dim vc As Variant 
Sheets(nomF).Activate 
Sheets(nomF).Cells(1, 1).Activate 
Set vc = Cells.Find(what:=valCherch, lookAt:=xlWhole, After:=ActiveCell, SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:=False, SearchFormat:=False) 
If Not vc Is Nothing Then 
' cherchC= vc.Column  'Si on veut la colonne
cherchC= vc.Row ' pour avoir le N° de ligne
End If 
End Function 

' Et pour l'utiliser ...
Sub toto()
   Ligne = cherchC("Feuil1", "Mot_Cherché")
   Msgbox Ligne 'Affiche le N° de ligne où se trouve le mot recherché
End Sub



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
julasse Messages postés 6 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 22 avril 2011
17 janv. 2011 à 11:00
bonjour à tous

Additif au précédent post:

Lorsque je lance ma précédure, il y a une erreur au niveau de la recherche de valeur.

La valeur à recherchée est prise en compte

C'est juste le Find qui deconne

Peut on utiliser Find avec des Spreadsheets.

merci

PS: merci à Jordane mais j'aimerais une procédure plus simple, je sais que mon exemple n'est pas loin d'aboutir (non, je ne suis pas tetu, non non non...)...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
17 janv. 2011 à 11:29
Bonjour,
Heu....
mais j'aimerais une procédure plus simple
Plus simple de quoi ?
C'est Quasi la même chose que toi... sauf que je passe par une fonction.
Maintenant rien ne t'empeche de la mettre directement dans ton sub...

Lorsque je lance ma précédure, il y a une erreur au niveau de la recherche de valeur

Es-tu sur que ton souci est au niveau du find ?
Lorsque tu lances ton code en mode pas à pas (tu n'as K mettre un point d'arrêt)... sur quelle ligne bloque t--il ?
Ne serait-ce pas du (tes messages d'erreurs) au fait que parfois il ne trouve rien ? (d'ou mon code : If Not vc is nothing.. )


Malheureusement je n'ai pas trouvé d'autres façons d'utiliser le Find... que celle-ci :

Set vc = Cells.Find(what:=valCherch, lookAt:=xlWhole, After:=ActiveCell, SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:=False, SearchFormat:=False) 
If Not vc Is Nothing Then 
' cherchC= vc.Column  'Si on veut la colonne
cherchC= vc.Row ' pour avoir le N° de ligne
End If 





Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Rejoignez-nous