Importer données sans ouvrir fichier source

carlos

XLDnaute Impliqué
Supporter XLD
Bonsoir le forum

Comment faire pour ne pas avoir à ouvrir le fichier source ?

Sub importerdbf()

Dim nomdest As String
Dim CheminFichier As String
nomdest = ActiveWorkbook.Name
CheminFichier = Left(ThisWorkbook.path, 1) & ":\eps1\f_ele.dbf"
'Workbooks.Open filename:=CheminFichier
'Workbooks("f_ele.dbf").Activate
Workbooks(nomdest).Worksheets("feuil1").Range("b6") = Workbooks("f_ele.dbf").Worksheets("f_ele").Range("b6")
End Sub


merci
 

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

Bonsoir Papou, le forum

Ta proposition est tres intéressante mais elle me pose toujours le probleme des querys.

Pour le moment je pense d'une part que j'ai déjà atteint un premier niveau .J'arrive à importer et à filtrer des données dans mon fichier Dbf.Mais ma formule m'oblige à gerer une ouverture de fichier et ensuite une fermeture.

Pour une simplification et une utilisation plus rapide et generant moins d'erreur ( car fichiers utilisés par des personnes ne connaissant rien d'excel), j'aimerai ne pas avoir à ouvrir ce fichu fichier puis à le refermer.

Ce que je ne comprends pas , c'est que ces codes que j'ai glané au fil des archives étaient censés fonctionner sans ouverture de fichier source ?

Donc ma nouvelle question : Es ce possible ?

Merci

Carlos
 

jeanpierre

Nous a quitté
Repose en paix

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

Bonsoir Papou , jeanpierre, kiki29

Voici mon code personnalisé qui créer un message d'erreur en b6 : #REF!

A ce niveau je suis incapable de comprendre pourquoi !

Private Function ExtraireValeur(ByVal Dossier As String, ByVal Fichier As String, ByVal Feuille As String, ByVal Cellule As String)
Dim Argument As String
Argument = "'" & Dossier & "[" & Fichier & "]" & Feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
ExtraireValeur = ExecuteExcel4Macro(Argument)
End Function

Sub test()
Dim sDossier As String
Dim sFichier As String
Dim sNomFeuille As String
Dim sCell As String
Dim nomdest As String
sDossier = ThisWorkbook.path & "\eps1\"
sFichier = "f_ele.dbf"
sNomFeuille = "f_ele"
sCell = "B6"
nomdest = ActiveWorkbook.Name

Workbooks(nomdest).Worksheets("feuil1").Range("b6") = ExtraireValeur(sDossier, sFichier, sNomFeuille, sCell)

End Sub

carlos
 

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

re

Es ce normal que lorsque j'execute la macro,je tombe sur le navigateur window avec le titre ( "Mettre à jour les valeurs : EPS1[f_ele.dbf]f_ele" ) pour retouver le fichier"f_ele" et qu' aucune extension dbf n'est permise.?


rq : la Feuille "f_ele" semble exister en dbf.

Merci

Carlos
 

kiki29

XLDnaute Barbatruc
Re : Importer données sans ouvrir fichier source

Je vais me coucher,trop fatigué ... je raconte des c...s

ce que je t'ai donné s'applique à des fichiers Excel ,pour DBF pas de solution pour la lecture de fichiers fermés ,désolé.Donc la réponse à ta 1ere question de 19h54 est Non.
 
Dernière édition:

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

Bonjour MichelXLD, Papou , jeanpierre, kiki29

C'est un grand pas.

J'ai réussi à adapter en partie la proposition de MichelXLD à mon projet .Fichier fermé.
Cad que les données sont bien importées dans le combobox mais à la queue leuleu, tout en doublon.
Existe t'il un moyen d'éviter les doublons et comment requêter ?

Par exemple avec l'exemple de MichelXLD :

RAIS CODEP

SYCOMOR SPRL 4500
TE.DE.ROUTE SA 1390
JARDIPARC 1390
MARY BOUTIQUE 1190
CANTILLON ROSBACH LOGISTICS SNC 4520
ROSBACH CANTILLON & CIE SNC 1300
VAN DE VORST MN & CIE SCS 5300
TRANS ET HORSE SCRI 5380
CANTILLON ET FILS SPRL 1490
GODFROID ENT 1300

1 _ la combobox contiendrait :
4500
1390
1190
4520
1300
5300
5380
2 - je voudrais importer vers excel les "CODEP" = 1390 et les"RAIS" correspondants :

Merci
Carlos
 

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

Bonsoir

j'ai des soucis pour construire ma requete.

Ca me met le texte en rouge !!!!!!

c'est un probleme de construction de syntaxe , je pense.

Cible = "SELECT DISTINCT ELENOM FROM " & laBase & ";" WHERE DIVCOD = range("b2")"

Merci .

Carlos
 

carlos

XLDnaute Impliqué
Supporter XLD
Re : Importer données sans ouvrir fichier source

Bonjour le forum

Plusieurs codes qui refusent d'ouvrir la porte magique :

laBase = "societes.dbf"
Cible = "SELECT DISTINCT RAIS FROM laBase WHERE CODEP = 1390" (Ne fonctionne pas)

msg : microsoft Jet ne trouve pas l'objet "labase"

et pourtant elle est, puisque
Cible = "SELECT DISTINCT CODEP FROM " & laBase & ";" ( fonctionne)

Cible = "SELECT DISTINCT RAIS FROM " & laBase & ";" & " WHERE CODEP = 1390"(Ne fonctionne pas, presque bon)
Msg : Caracteres trouvés apres la fiin de l'instruction SQL.

Ou est l'erreur .

Merci

Carlos
 

michel_m

XLDnaute Accro
Re : Importer données sans ouvrir fichier source

Bonjour

1390 a l'air d'être du texte...
si oui il faut le mettre entre apostrophes.

pour le nom de ta table dans la labase.dbf

"SELECT DISTINCT RAIS FROM tatable WHERE CODEP = '1390';"

nota le ";" n'est peut être pas compris par dbf
 

Discussions similaires

Statistiques des forums

Discussions
312 112
Messages
2 085 415
Membres
102 885
dernier inscrit
AISSOU