Macro recherche

Salut,

Je galere depuis plusieurs jour sur la fonction recherche :

J'ai 2 fichier

[1] = c:\source\S1000.xls

avec 2 pages

Le nom est variable, et automatiquement généré sur une page du chier [2]

[2] = S:\CR\1000.xls

avec 10 pages

J'aimerai chercher la valeur de J11 onglet "fiches" du fichier [2]

dans le fichier [1] ( le nom est dans l'onglé "donnée" en A1 du fichier 2) onglet "nomenc" colonne C2-C201

et retourné la valeur de la colonne P (du fichier 2) dans la cellule G11 onglet "fiche" du fichier [2]

et je me suis complet perdu ....

Si quelqu'un peux m'aider . merci

voila ce que j'ai commencer :

Sub recher()

'no switch screen'

Application.ScreenUpdating = False

Dim wbFiches As Worksheet

Dim wbnomenc As Worksheet

Set wbFiches = ThisWorkbook.Sheets("fiches")

'copie du Nom du fichier'

Sheets("donnée").Select

valeur = Range("A1").Value

Workbooks.Open Filename:="S:\CR\" & valeur & ".xls"

Set wbnomenc = Worksheets("nomenc")

Dim Cel As Range

Set Cel = Worksheet("nomenc").Range("c2:c201").Find(What:=Worksheet("fiches").Range("g11"), _

LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)

If Cel Is Nothing Then

Sheets("Fiches").Range("j11") = "0"

Else

Sheets("Fiches").Range("j11") = Cel

End If

End Sub

Bonjour

cari a écrit :

Si quelqu'un peux m'aider . merci

Je pense que tu trouveras de l'aide si tu fournis les fichiers

En y expliquant ce que tu veux faire

J'avais simplifié les nom et chemin pour l'explication .

La macro est sur Taux complexité

Apres ce que je veux faire, c'est en faite un simple copier coller d'une cellule trouver par la fonction recherche

edit : erreur fichier, la c'est ok

bonjour,``

J'ai pas regardé ton fichier mais sur base de ta macro essaie ceci

Sub recher()
'no switch screen'
Application.ScreenUpdating = False

Dim wbFiches As Worksheet
Dim wbnomenc As Worksheet

Set wbFiches = ThisWorkbook.Sheets("fiches")

'copie du Nom du fichier'
'Sheets("donnée").Select
valeur = ThisWorkbook.Sheets("donnée").Range("A1").Value

Workbooks.Open Filename:="S:\CR\" & valeur & ".xls"
'Set wbnomenc = Worksheets("nomenc")

Dim Cel As Range
Set Cel = ActiveWorkbook.Worksheets("nomenc").Range("c2:c201").Find(ThisWorkbook.Worksheets("Fiches").Range("g11"), LookIn:=xlValues)
If Cel.Value <> 0 Then
ThisWorkbook.Sheets("Fiches").Range("j11") = "0"
Else
ThisWorkbook.Sheets("Fiches").Range("j11") = Cel
End If

End Sub

Ok ca fonctionne, par contre ça me renvoie dans la cellule, la valeur rechercher, et non la valeur de la colonne Q

re

Plus haut tu parles de la colonne P

Sinon, la valeur Q de quelle ligne ?

Oui la colone P sorry

et sinon bha c'est la colonne P de la ligne ou on a trouver la recherche

( recherche de G11 dans le tableau C2 a C201,

et si elle existe, revoie de la colonne P correspondante )

Re

essaie ceci :

Sub recher()
Dim wbFiches As Worksheet
Dim wbnomenc As Worksheet

Set wbFiches = ThisWorkbook.Sheets("fiches")

'copie du Nom du fichier'
'Sheets("donnée").Select
valeur = ThisWorkbook.Sheets("donnée").Range("A1").Value

Workbooks.Open Filename:="S:\CR\" & valeur & ".xls"
'Set wbnomenc = Worksheets("nomenc")

Dim lg As Byte
With ActiveWorkbook
lg = .Worksheets("nomenc").Range("c2:c201").Find(ThisWorkbook.Worksheets("Fiches").Range("g11"), LookIn:=xlValues).Row
If .Range("P" & lg).Value <> 0 Then
ThisWorkbook.Sheets("Fiches").Range("j11") = "0"
Else
ThisWorkbook.Sheets("Fiches").Range("j11") = .Range("P" & lg)
End If
End With
End Sub

si ok, clique sur le V vert à coté du bouton EDITER pour cloturer le fil lors de ta réponse

Crdlt

Salut,

Ca marche po, erreur 91

variable objet ou variable de bloc with non definie

re

essaie comme ceci :

Sub recher()

Dim wbnomenc As Worksheet
'copie du Nom du fichier'
'Sheets("donnée").Select
valeur = ThisWorkbook.Sheets("donnée").Range("A1").Value

Workbooks.Open Filename:="S:\CR\" & valeur & ".xls"

Dim lg As Byte
With ThisWorkbook.Sheets("Fiches")
On Error Resume Next
lg = ActiveWorkbook.Sheets("nomenc").Range("c2:c201").Find(.Range("g11"), LookIn:=xlValues).Row
If lg = 0 Then
    .Range("j11") = "0"
Else
    .Range("j11") = Range("P" & lg)
End If
End With
End Sub

A te relire

Salut, j'ai changer mon fusils d'epaule pour ce probleme,

Mais jai voulue adapter a une autre situation, et probleme

Sub testextract()
Dim lg
valeur = ThisWorkbook.Sheets("fiches").Range("H8").Value
valeur2 = ThisWorkbook.Sheets("fiches").Range("K5").Value

Workbooks.Open Filename:="S:\PROD PUJAUT\PRODUCTION U1\Ref lanceur\1COMPLEX_HOR\suivi_complexité.xlsm"

With ActiveWorkbook
On Error Resume Next
Windows("suivi_complexité.xlsm").Activate
lg = Worksheets("Suivi").Range("E7:E378").Find(valeur).Row
    If .Range("E" & lg).Value = valeur Then
        .Range("P" & lg).Value = valeur2
        MsgBox "date ok, fichier modifié"
    Else
        .Range(P50).Value = lg
        MsgBox "Erreur de date"
    End If
End With
End Sub

Je recherche une date ( H8 ), et la colonne E sont des dates ( de 1/1/14 a 31/12/14 => sous forme date precedent +1)

ça me renvoie toujours lg vide, donc pas de modiication de la case Pxxx


le :

.Range(P50).Value = lg

je l'avais mis en test pour voir si ca afficher quelquechose

En changeant la forme de la colonne E, ca passe, lg prend la valeur, pa contre le

.Range("P" & lg).Value = valeur2

ne fonctionne pas

  If Range("E" & lg).Value = valeur Then
        Cells(lg, 16).Activate
        Cells(lg, 16).Value = valeur2

ok

Rechercher des sujets similaires à "macro recherche"