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

Bonjour Michel m ,,le forum

J'ai tésté ta proposition dans le fichier joint mais ....


Merci
 

Pièces jointes

  • importDonnees_DBase.zip
    17.9 KB · Affichages: 34
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 46
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 33

carlos

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

Bonjour Michel m ,,le forum

J'ai tésté ta proposition dans le fichier joint mais ....


Merci
 

Pièces jointes

  • importDonnees_DBase.zip
    17.9 KB · Affichages: 24
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 18
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 15

carlos

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

Bonjour Michel m ,,le forum

J'ai tésté ta proposition dans le fichier joint mais ....


Merci
 

Pièces jointes

  • importDonnees_DBase.zip
    17.9 KB · Affichages: 25
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 20
  • importDonnees_DBase.zip
    17.9 KB · Affichages: 22

michel_m

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

Re,

tu as écrit:
Code:
Cible = "SELECT DISTINCT RAIS FROM " & laBase & ";" & " WHERE CODEP = '1390';"

le ";" signifie la fin de la requete SQL

donc essaies
Code:
Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = '1390';"

si toutefois 1390 n'est pas du texte (je n'ai pas dbase sur le pc) enlève les apostrophes
 

carlos

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

Re

J'ai encore un petit soucis avec le'1390'

Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = '1390';"

Ta proposition est impeccable,elle fonctionne.

Mais la variable recherchée n'est pas toujours 1390 , elle est modifiable selon un combobox..

Ainsi , j'ai éssayé de déclarer :

dim ValRecherché as string
ValRecherché = combobox1.value (combo alimenté par les valeurs de CODEP)
Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = ValRecherché ;" (Marche pas)

ou

Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = &"'" & ValRecherché &"'" & ;" (Marche pas)


Carlos
 

michel_m

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

Re,

En rentrant du ciné (vu la météo. mais Juno est un film très sympa, je regrette pas le temps pourri!)

ton code:
Code:
dim ValRecherché  as string
ValRecherché = combobox1.value (combo alimenté par les valeurs de CODEP)
Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = ValRecherché ;" (Marche pas)


1/ évite les accents dans SQL donc:
ValRecherché devient ValRecherche

2: essaies:

... WHERE CODEP='" & valrecherche & "';"

(apostrophe,guillemet &...... & gullemet, apostrophe)


3/ tu as sauvegardé tes modifs sur le wiki de MichelXLD et donc, sa démo ne marche plus. mets lui un MP....
 

carlos

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

Re

1 - J'ai écris un MP a MichelXLD , je ne sait pas quoi faire pour réparer mon erreur.Je suis désolé.

2 - J'ai testé :
Cible = "SELECT DISTINCT RAIS FROM " & laBase & " WHERE CODEP = '" & valrecherche & "';" mais Msg "Trop peu de paramètres . 2 attendus."

Ca passe pas .
 

carlos

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

Re Michel_m, Cbea , le forum

J'ai enfin réussi à créer ma requête en utilisant un combobox . Bravo Michel_m

Maintenant, il ne me reste que 2 toutes petites étapes à faire :

1 - J'aimerais avoir un espace entre le champs Nom et le prénom
2 - Ne garder que le premier prénom (différencier des autres prénoms par un espace)

Après cela tout sera fini

Merci.

Carlos
 

Pièces jointes

  • Dbf fermé vers Excel.zip
    23.9 KB · Affichages: 18

michel_m

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

Content pour toi et pour moi que ca marche!

Petit détail pour améliorer en rapidité ta prog en modifiant
Code:
 On Error Resume Next
  Do While Not Rs.EOF
  n = n + 1
  Cells(3 + n, 2) = Rs.Fields(0).Value
  Rs.MoveNext
  Loop

par 1/le test d'un résultat vide (source: @+thierry)
2/ en évitant une boucle
3/ en annulant en mémoire les pointeurs créés par l'instruction "set"
4/ avec le traditionnel screenupdating... tu n'as pas besoin de le réinitialiser à "true" à la fin car tu rends la main à l'utilisateur (source: Laurent Longre)
Code:
  If Rs.EOF Then
          MsgBox "Plage vide..."
          Exit Sub
              Rs.Close
  Rs=nothing
  Cn.Close
  Cn=nothing
      End If
   
    Application.ScreenUpdating = False
    Range("B4").CopyFromRecordset Rs
   
  Rs.Close
  Rs=nothing
  Cn.Close
  Cn=nothing

Bonne semaine
 

carlos

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

Re

impeccable...
J'ai quand même 2 questions.

1 - le 2 ieme code de Michel_m : ou dois je le mettre ? en userform1.initialyse ou combobox1.click ? Es ce qu'il gere le cas ou le fichier f_ele n'existe pas? c'est trop fort pour moi.

2_ Merci Cbea car grâce à ton code j'ai compris les fields() et c'est tres pratique.

Je vais m'atteler à supprimer les deuxièmes et troisièmes prénom en trop.

Carlos
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
681

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 273
Messages
2 107 996
Membres
109 993
dernier inscrit
many_80