Rechercher une valeur a partir d'un classeur dans c:\ sans l'ouvrir et la copier

Signaler
Messages postés
3
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
3
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
31 mars 2008
-
Bonjour,
aidez moi svp!!
voilà, mon problème est que je dois saisir une reference dans une box, pour la chercher dans un classeur dans c: et une fois trouvée il la colle dans une plage ke je definirai dans une feuille excel ou il y a le tableau a remplir.

jai trouvé ce  code qui marche mais en interne: (dans le meme classeur)

--------------------------------------------------------------------------------------------------------
 Sub AdNewClient()
     Range("D6") = Application.InputBox(Prompt:="Tapez le PART Number", _
      Title:="Nouveau client "): AdValideClient
End Sub

Sub AdValideClient()
     Application.ScreenUpdating = False
     With Range("D6")
        If Application.IsNumber(.Value) = False Then
            MsgBox "CODE NON VALIDE"
            If Application.MoveAfterReturn = True Then
                ActiveCell.Offset(-1).Select
            End If
            Else: Application.Run Macro:="AdClient"
        End If
     End With
         Range("D6").Select
End Sub
    
Sub AdClient()
    Application.ScreenUpdating = False
    Dim MaRéfClient As Object
        Dim MaRéf As Object
     MonCodeClient = Range("D6").Value
     Set MaRéfClient = Workbooks("essai.xls").Worksheets("Infos").Range("Reference").Find(MonCodeClient)
     MaDescription = Range("C14").Value
     Set MaRéf = Workbooks("essai.xls").Worksheets("Infos").Range("CodePakaging").Find(MaDescription)
    If MaRéfClient Is Nothing Then
        MsgBox "Ce code client n'existe pas !"
    Else
    For Each Item In MaRéfClient
     Item.Value = MaRéfClient
    
     Workbooks("essai.xls").Worksheets("Infos").Activate
     Item.Select
       Set Description = Selection.Offset(0, 1)
     Workbooks("essai.xls").Worksheets("Faurecia").Activate
        Range("Description").Value = Description
    
     Next Item
    End If
End Sub
------------------------------------------------------------------------------------------------------------
et voici un autre ki permet de lire la valeur d'une cellule dans un classeur fermé
------------------------------------------------------------------------------------------------------------

Sub test()
Dim fich$, feuil$, Cell As Range
fich = "D:\TestADO.xls"
feuil = "feuil1"
Set Cell = Range("A1")

MsgBox GetValueWithADO(fich, feuil, Cell)

End Sub

'Note : cette fonction est utilisable dans une feuille de calcul
'Ex :
' =GetValueWithADO("D:\TestADO.xls";"feuil1";A1)

Function GetValueWithADO(Classeur$, Feuille$, Cell As Range)
'renvoie la valeur de la cellule Cell de la feuille Feuille
'du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range

'prépare une "base de données" bidon pour la clause SELECT
'(une entête fictive et une ligne de données)
Set dummyBase = Cell.Resize(2)

'prépare les commandes ADO et SQL
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Classeur & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]"

'crée l'objet Recordset
Set RcdSet = CreateObject("ADODB.Recordset")

'va chercher l'info
RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText

'et la renvoie
GetValueWithADO = Application.Clean(RcdSet(0))
'autre syntaxe possible
' GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1))

'nettoyage
Set RcdSet = Nothing
End Function 'fs

--------------------------------------------------------------------------------------------------------

je voulais compiler entre les 2 mais jai pas su.
Merci d'avance

2 réponses

Messages postés
3
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
31 mars 2008

aidez moi SVP :(
Messages postés
3
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
31 mars 2008

SVP aidez moi
j'ai mis le code si ca peut vous aider
mais sinon s'il y a une autre proposition elle sera la bienvenue
Merci