Liaison entre fichier et copier coller
Fermé
Tartempionnette65
-
8 janv. 2015 à 10:33
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 - 16 janv. 2015 à 19:11
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 - 16 janv. 2015 à 19:11
A voir également:
- Liaison entre fichier et copier coller
- Fichier rar - Guide
- Fichier host - Guide
- Dessin a copier coller ✓ - Forum Internet / Réseaux sociaux
- Fichier iso - Guide
- Coeur copier coller ✓ - Forum Internet / Réseaux sociaux
11 réponses
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mars 2023
3 291
8 janv. 2015 à 11:28
8 janv. 2015 à 11:28
Bonjour
à adapter à ton contexte (éviter les espaces dans les noms 'onglet, fichier, dossiers)
Pourrquoi importer toute la page ? si 1 million de lignes, utiliser alors Access:Xl non adapté
à adapter à ton contexte (éviter les espaces dans les noms 'onglet, fichier, dossiers)
Pourrquoi importer toute la page ? si 1 million de lignes, utiliser alors Access:Xl non adapté
Sub extraire()
Dim Chemin As String, Fichier As String, Onglet As String, Plage As String
Dim Source As Object, Requete As Object
Chemin = "C:\dossier1"
Fichier = Classeur1.xls
Onglet = "feuil1" & "§" 'dollar obligatoire
Plage = "A2:C100000"
'connexion ADO au fichier
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
'exerce la requete ADO sur la donnée à recopier
Texte_SQL = "SELECT * FROM [" & Onglet & Plage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(Texte_SQL)
'restitue ces données sur ce classeur
Sheets(2).Range("A2").CopyFromRecordset Requete
End Sub
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
Modifié par f894009 le 13/01/2015 à 17:02
Modifié par f894009 le 13/01/2015 à 17:02
Bonjour,
probleme du a ceci:
donc ecrire ceci
probleme du a ceci:
Onglet = "Feuil1" & "§" 'dollar obligatoirec'est pas un signe $
donc ecrire ceci
Onglet = "Feuil1" & "$" 'dollar obligatoire
Tartempionnette65
Messages postés
12
Date d'inscription
mardi 2 décembre 2014
Statut
Membre
Dernière intervention
23 janvier 2015
12 janv. 2015 à 14:55
12 janv. 2015 à 14:55
Bonjour michel_m,
merci
Mais lorsque je lance la macro, ça ne marche pas au niveau de la connection ADO au fichier (2 dernières lignes).
J'ai fais divers essais en change les nom des fichiers (sans espace etc) mais je bloque.
Et je n'ai pas Access non plus.
merci
Mais lorsque je lance la macro, ça ne marche pas au niveau de la connection ADO au fichier (2 dernières lignes).
J'ai fais divers essais en change les nom des fichiers (sans espace etc) mais je bloque.
Et je n'ai pas Access non plus.
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
12 janv. 2015 à 17:01
12 janv. 2015 à 17:01
Bonjour,
quelle ligne exactement pose probleme ????
quelle ligne exactement pose probleme ????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tartempionnette65
Messages postés
12
Date d'inscription
mardi 2 décembre 2014
Statut
Membre
Dernière intervention
23 janvier 2015
Modifié par pijaku le 13/01/2015 à 13:29
Modifié par pijaku le 13/01/2015 à 13:29
Voici la formule finale. (A partir de votre aide)
Mon bug remonte sur la ligne "Set Requete = Source.Execute(texte_SQL)"
Et vu mon niveau de novice, je ne comprends pas d'où vint l'erreur.
J'ai une autre question concernant cette macro. Si le fichier source est .xlsx ou .xlsm, que'elles sont les "extended properties" ?
Encore merci à vous.
Sub extraire()
Dim Chemin As String, Fichier As String, Onglet As String, Plage As String
Dim Source As Object, Requete As Object
Chemin = "C:\Users\100728954\Desktop\Entrée"
Fichier = "Donneesdentree.xls"
Onglet = "Feuil1" & "§" 'dollar obligatoire
Plage = "A2:C100000"
'connexion ADO au fichier
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
'exerce la requete ADO sur la donnée à recopier
texte_SQL = "SELECT * FROM [" & Onglet & Plage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(texte_SQL)
'restitue ces données sur ce classeur
Sheets(2).Range("A2").CopyFromRecordset Requete
End Sub
Mon bug remonte sur la ligne "Set Requete = Source.Execute(texte_SQL)"
Et vu mon niveau de novice, je ne comprends pas d'où vint l'erreur.
J'ai une autre question concernant cette macro. Si le fichier source est .xlsx ou .xlsm, que'elles sont les "extended properties" ?
Encore merci à vous.
Tartempionnette65
Messages postés
12
Date d'inscription
mardi 2 décembre 2014
Statut
Membre
Dernière intervention
23 janvier 2015
14 janv. 2015 à 11:54
14 janv. 2015 à 11:54
Oh ! Merci, merci, à vous 2 !
Ca fonctionne.
Savez vous les paramètres à changer si nous partons d'un fichier .xlsx ou xlsm ? Est ce les mêmes ?
Ca fonctionne.
Savez vous les paramètres à changer si nous partons d'un fichier .xlsx ou xlsm ? Est ce les mêmes ?
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
14 janv. 2015 à 11:58
14 janv. 2015 à 11:58
Bonjour,
de quel fichier parlez-vous ????
de quel fichier parlez-vous ????
Tartempionnette65
Messages postés
12
Date d'inscription
mardi 2 décembre 2014
Statut
Membre
Dernière intervention
23 janvier 2015
14 janv. 2015 à 17:51
14 janv. 2015 à 17:51
Bonjour,
Du fichier d'entrée des données.
En utilisant la formule
Set Source = CreateObject("ADODB.Connection") Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
le fichier d'entrée sélectionné a une extension .xls
J'ai essayé en partant d'un .xlsx mais celà n'a pas fonctionner.
J'ai changé ce parmètres dans la définition du fichier. MAis rien.
A moins d'avoir fait une fausse manip.
Du fichier d'entrée des données.
En utilisant la formule
Set Source = CreateObject("ADODB.Connection") Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
le fichier d'entrée sélectionné a une extension .xls
J'ai essayé en partant d'un .xlsx mais celà n'a pas fonctionner.
J'ai changé ce parmètres dans la définition du fichier. MAis rien.
A moins d'avoir fait une fausse manip.
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
14 janv. 2015 à 17:56
14 janv. 2015 à 17:56
Re
suivant l'excel, ca change, donc choisir en fonction de votre excel
suivant l'excel, ca change, donc choisir en fonction de votre excel
'excel 97-2003
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
'excel 2007
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 12.0 xml;HDR=No;"";"
'excel 2010
Source.Open "Provider=Microsoft.ACE.OLEDB.14.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 14.0 xml;HDR=No;"";"
'excel 2013
Source.Open "Provider=Microsoft.ACE.OLEDB.15.0;" & _
"Data Source=" & Chemin & "\" & Fichier & ";Extended Properties=""Excel 15.0 xml;HDR=No;"";"
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
14 janv. 2015 à 18:19
14 janv. 2015 à 18:19
Re,
Ai fini par trouver pour toutes les versions EXCEL (je l'ai pour toutes versions access, a fallu petite modif)
Source.Open "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & Chemin & "\" & Fichier
Ai fini par trouver pour toutes les versions EXCEL (je l'ai pour toutes versions access, a fallu petite modif)
Source.Open "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & Chemin & "\" & Fichier
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mars 2023
3 291
16 janv. 2015 à 17:37
16 janv. 2015 à 17:37
Bonjour
Merci F89 d'avoir pris le relais car jétais hospitalisé (rien de bien grave):o)
petit bonus
un site très utile pour toutes connexions à des databases
https://www.connectionstrings.com/
Merci F89 d'avoir pris le relais car jétais hospitalisé (rien de bien grave):o)
petit bonus
un site très utile pour toutes connexions à des databases
https://www.connectionstrings.com/
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
Modifié par f894009 le 16/01/2015 à 19:12
Modifié par f894009 le 16/01/2015 à 19:12
Bonjour michel_m,
Bonne annee et prompt retablissement. Heureux que ce ne soit (rien de bien grave)
Ai oublie dans le message, avoir au moins office2007. Merci pour ce lien
Bonne annee et prompt retablissement. Heureux que ce ne soit (rien de bien grave)
Ai oublie dans le message, avoir au moins office2007. Merci pour ce lien
8 janv. 2015 à 13:22
lire
Fichier = "Classeur1.xls"