est ce possible ? (assez complexe)

Y

yorrick

Guest
Bonsoir,

Ce que je veut me parait tres complexe.

exemple :

J'ai une feuille contenant mes clients ....

J'aimerais lorsque je tape : "client" et que je clique sur recherche.

Cela m'affiche toutes les lignes contenant le terme "client" sachant
que ces informations serait dans un autre fichier excel.

Le but etant de me permettre de faire une recherche par plusieur
choix possibles (recherche de client, article, adresse livraison...)
se trouvant chacun dans un fichier different.

Je vous l'accorde cela pourrait vite devenir une usine a gaz mais bon
j'essaye de trouver.

Merci d'avance

Yorrick
 
Y

yorrick

Guest
Je suis sincerement désolé de renvoyé un message mais la
je n'y arrive vraiment pas .....

Actuellement la recherche se fait sur le fichier actif et sur le fichier externe.

Hors j'essaye de ne plus faire de recherche dans le fichier actif et donc uniquement sur le fichier externe.

De ce fait j'ai supprimer toutes les lignes concernant les recherches
sur le fichier actif ...

Moralité je n'ai plus de resultat du tout ....

Alors je me permet de vous solliciter non pas pour avoir un code vba
tout fait mais un peu d'aide sur ce phénomene....

Je me demande si ce n'est pas un soucis avec la ligne :

Record.Open Commande, Connexion, 0, 1, 1

Mais etant donné que je suis une bille en vba je ne sais pas ....

merci d'avance.

P.S. : Avez vous un livre tip top sur le VBA a me conseiller qui me permettrait d'arriver a comprendre le language mais surtout vis a vis
des fichiers externe car j'en aurais souvent besoin.
 
V

Vériland

Guest
Hoùla Yorrick !...tu vas déprimer là !!! Je te sens même en soucis avec ta recherche de données sur un fichier fermé...

Bon ben pas de panique...comme le forum ne laisse jamais personne dans l'embarras, je vais appliquer ce que tu souhaites dans un autre fichier démo...

bon...le temps de boucler la procédure et je reviens...avant ce soir normalement...

Patience...c'est qu'on a un métier en dehors du forum...lool

A+Veriland.gif
 
V

Vériland

Guest
voilà me revoiloù...

J'ai placé dans le fichier une méthode ADO qui permet de lire dans un classeur fermé...

L'avantage de cette fonction est qu'elle permet aussi de lire d'autres fichiers en dehors de .xls...on peut très bien lire des .doc, .txt ... et compagnie

mais pour que cela fonctionne il faut que la bibliothèque Microsoft ActiveX Data Objects 2.x Library soit cochée dans Outils\Références du VBAProject.

Ici la recherche se fait sur l'ensemble d'une plage et non sur une cellule unique...

exemple :

Option Explicit

Sub Lire()

Dim Fichier As String
Dim Zone As String

Zone = "A1:F20" 'plage à lire du fichier fermé
'***********************************
Fichier = "C:\.xls" 'spécifier le chemin
'***********************************
LireDonneeFichierFerme Fichier, Zone

End sub

'***********************************

Function LireDonneeFichierFerme(FileName As String, RangeName As String)
' Pour lire et écrire dans un classeur fermé en utilisant ADO,
' la bibliothèque Microsoft ActiveX Data Objects 2.x Library
' doit être cochée dans Outils\Références du VBAProject.
' Vériland Novembre 2003
Dim Connexion As ADODB.Connection
Dim Record As ADODB.Recordset
Dim LireConnexion As String
LireConnexion = "DRIVER={Microsoft Excel Driver (.xls)};ReadOnly=1;" & "DBQ=" & FileName
Set Connexion = New ADODB.Connection
Connexion.Open LireConnexion
Set Record = Connexion.Execute("[" & RangeName & "]")
Range("A1") = Record.Fields(0).Name ' Nom de la feuille
Range("A2").CopyFromRecordset Record ' contenu de la plage
Record.Close
Connexion.Close
Set Record = Nothing
Set Connexion = Nothing
End Function
'***********************************


Voilà...en espérant que cela pourra te dépanner maintenant

Bonne programmation

A+Veriland.gif


PS : Macro à copier depuis le forum auquel cas tu risques d'avoir les attributs gras du post dedans...
 

Pièces jointes

  • Recherche_VL_Fichier_Ferme_VL_02.zip
    47.3 KB · Affichages: 21
Y

yorrick

Guest
Merci Veriland ......

Je suis désolé mais il est vrai que j'ai un petit imperatif mais
je m'en doute que vous avez autre chose a faire que de repondre
sur le forum.

Je te remercie de ton aide ....

a +++

yorrick