Liaison entre fichier et copier coller
Tartempionnette65
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
J'ai 2 fichiers : C:\dossier 1\entrée.xls et C:\dossier 2\sortie.xls
Dans le fichier "entrée.xls", j'ai un tableau comportant 10 colonnes et plusieurs lignes (variable selon la colonne), sur le feuille 1. Ces données commencent en A1
Je souhaite copier les données A2:C1048576
Les copier dans le fichier "sortie.xls" en feuille 2 et à partir de la cellule A2.
Le fichier "entrée.xls" sera fermé mais il faut que les données remontent dans le fichier "sortie.xls" qui sera actif.
J'ai fait plusieurs essais mais bute sur le fait que ce fichier "entrée.xls" soit fermé.
Quelqu'un aurait il une solution à me proposer ?
Merci.
J'ai 2 fichiers : C:\dossier 1\entrée.xls et C:\dossier 2\sortie.xls
Dans le fichier "entrée.xls", j'ai un tableau comportant 10 colonnes et plusieurs lignes (variable selon la colonne), sur le feuille 1. Ces données commencent en A1
Je souhaite copier les données A2:C1048576
Les copier dans le fichier "sortie.xls" en feuille 2 et à partir de la cellule A2.
Le fichier "entrée.xls" sera fermé mais il faut que les données remontent dans le fichier "sortie.xls" qui sera actif.
J'ai fait plusieurs essais mais bute sur le fait que ce fichier "entrée.xls" soit fermé.
Quelqu'un aurait il une solution à me proposer ?
Merci.
A voir également:
- Liaison entre fichier et copier coller
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Historique copier coller - Guide
11 réponses
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
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
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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 ?
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.
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;"";"
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
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/
lire
Fichier = "Classeur1.xls"