Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
Bonjour,
Voir la rubrique ADO du site de Frédéric Sigonneau pour lire te écrire dans un fichier fermé. Des exemples existent mais je ne sais pas si ils peuvent s'appliquer à ta demande, celle-ci étant trop imprécise (en effet, que veut-dire exactement Exporter dans ton cas de figure ?) . Dans tous les cas , cependant, la technique de lecture écriture sur fichier fermé , dans des conditions précises, passe par l'utilisation d'ADO.
A+
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.
Bonjour,
Voir la rubrique ADO du site de Frédéric Sigonneau pour lire te écrire
dans un fichier fermé. Des exemples existent mais je ne sais pas si ils
peuvent s'appliquer à ta demande, celle-ci étant trop imprécise (en
effet, que veut-dire exactement Exporter dans ton cas de figure ?) .
Dans tous les cas , cependant, la technique de lecture écriture sur
fichier fermé , dans des conditions précises, passe par l'utilisation
d'ADO.
A+
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier
excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.
Voir la rubrique ADO du site de Frédéric Sigonneau pour lire te écrire dans un fichier fermé. Des exemples existent mais je ne sais pas si ils peuvent s'appliquer à ta demande, celle-ci étant trop imprécise (en effet, que veut-dire exactement Exporter dans ton cas de figure ?) . Dans tous les cas , cependant, la technique de lecture écriture sur fichier fermé , dans des conditions précises, passe par l'utilisation d'ADO.
A+
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.
michdenis
Bonjour Philippe,
voici un petit exemple :
Le principe de base : Tu génère un recordset de la plage de cellule d'où tu veux écrire tes données, tu insères tes données dans le recordset généré et tu updates le recordset !
'------------------------------ Pour exporter la plage de cellules A1:C10 de la feuille 2 du classeur actuel dans lequel se trouve cette procédure dans le classeur suivant qui est fermé : "C:Excel.Ado.xls"
Voici une façon de faire et quelques commentaires :
A ) Ça prend au moins une ligne de données dans la feuille de destination du classeur. Cette première ligne va délimiter le nombre de champs contenu dans la requête.
B ) voici la requête : " Select * from [Feuil1$] " comme j'ai utilisé la feuille au complet ("*" dans la requête signifiant tous les champs), toutes les colonnes ne recevant pas de données doivent être libre de formatage ....sinon elles vont faire parti de la requête, puisque c'est le concept de Usedrange qui s'applique quant au nombre de colonnes dans la requête.
C ) la première ligne de données que tu insères doit avoir un TYPE de données qui correspond aux données de la colonnes que tu veux exporter. Si tu veux avoir des étiquettes de colonnes qui soit du texte dans la première ligne, formate expressément la deuxième ligne avec le type de données que doit contenir cette colonne ( chacune des cellules doit avoir un format) , et ces formats seront respectés lors de l'exportation des données. Cependant, les données débuteront en ligne 3 et non en ligne 2.
D ) Tu dois ajouter à ton projet la bibliothèque suivante : "Microsoft activex objects 2.0 librairy"
E ) Cette façon de procéder, te permet d'ajouter des données dans le classeur de destination, sur la feuille de ton choix, sans connaître quelle était la dernière ligne contenant des données, et sans avoir besoin de spécifier une adresse de destination particulière.
'------------------------------------- Sub Miseàjour()
Dim Conn As Connection, Rst As New ADODB.Recordset Dim B As Integer, A As Integer, Rg As Range, Fichier As String
Fichier = "C:excelADO.xls"
Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Fichier & ";" & _ "Extended Properties=""Excel 8.0;HDR=No;"""
Rst.Open "Select * from [Feuil1$] ", Conn, _ adOpenKeyset, adLockOptimistic
If Rst.RecordCount > 0 Then Rst.MoveFirst End If
With Worksheets("Feuil2") Set Rg = .Range("A1:C10") End With B = Rg.Rows.Count For A = 1 To B Rst.AddNew Rst.Fields(0) = Rg.Item(A, 1) Rst.Fields(1) = Rg.Item(A, 2) Rst.Fields(2) = Rg.Item(A, 3) Rst.Update Rst.MoveNext Next Rst.Close: Conn.Close Set Rst = Nothing Set Conn = Nothing
End Sub '-------------------------------------
Salutations!
"Philippe B." a écrit dans le message de news:
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.
-- Cordialement, Philippe B.
Bonjour Philippe,
voici un petit exemple :
Le principe de base : Tu génère un recordset de la plage de cellule
d'où tu veux écrire tes données, tu insères tes données dans le
recordset généré et tu updates le recordset !
'------------------------------
Pour exporter la plage de cellules A1:C10 de la feuille 2 du classeur actuel
dans lequel se trouve cette procédure dans le classeur suivant qui est fermé : "C:Excel.Ado.xls"
Voici une façon de faire et quelques commentaires :
A ) Ça prend au moins une ligne de données dans la feuille de destination du classeur.
Cette première ligne va délimiter le nombre de champs contenu dans la requête.
B ) voici la requête : " Select * from [Feuil1$] "
comme j'ai utilisé la feuille au complet ("*" dans la requête signifiant tous les champs),
toutes les colonnes ne recevant pas de données doivent être libre de formatage ....sinon
elles vont faire parti de la requête, puisque c'est le concept de Usedrange qui s'applique
quant au nombre de colonnes dans la requête.
C ) la première ligne de données que tu insères doit avoir un TYPE de
données qui correspond aux données de la colonnes que tu veux exporter.
Si tu veux avoir des étiquettes de colonnes qui soit du texte dans la
première ligne, formate expressément la deuxième ligne avec le type de
données que doit contenir cette colonne ( chacune des cellules doit
avoir un format) , et ces formats seront respectés lors de l'exportation
des données. Cependant, les données débuteront en ligne 3 et non en ligne 2.
D ) Tu dois ajouter à ton projet la bibliothèque suivante :
"Microsoft activex objects 2.0 librairy"
E ) Cette façon de procéder, te permet d'ajouter des données dans le classeur
de destination, sur la feuille de ton choix, sans connaître quelle était la
dernière ligne contenant des données, et sans avoir besoin de spécifier une
adresse de destination particulière.
'-------------------------------------
Sub Miseàjour()
Dim Conn As Connection, Rst As New ADODB.Recordset
Dim B As Integer, A As Integer, Rg As Range, Fichier As String
Fichier = "C:excelADO.xls"
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"""
Rst.Open "Select * from [Feuil1$] ", Conn, _
adOpenKeyset, adLockOptimistic
If Rst.RecordCount > 0 Then
Rst.MoveFirst
End If
With Worksheets("Feuil2")
Set Rg = .Range("A1:C10")
End With
B = Rg.Rows.Count
For A = 1 To B
Rst.AddNew
Rst.Fields(0) = Rg.Item(A, 1)
Rst.Fields(1) = Rg.Item(A, 2)
Rst.Fields(2) = Rg.Item(A, 3)
Rst.Update
Rst.MoveNext
Next
Rst.Close: Conn.Close
Set Rst = Nothing
Set Conn = Nothing
End Sub
'-------------------------------------
Salutations!
"Philippe B." <PhilippeB@discussions.microsoft.com> a écrit dans le message de news:
A6B831E7-9DA4-454C-BCC8-CD0C0ED84747@microsoft.com...
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier
excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.
Le principe de base : Tu génère un recordset de la plage de cellule d'où tu veux écrire tes données, tu insères tes données dans le recordset généré et tu updates le recordset !
'------------------------------ Pour exporter la plage de cellules A1:C10 de la feuille 2 du classeur actuel dans lequel se trouve cette procédure dans le classeur suivant qui est fermé : "C:Excel.Ado.xls"
Voici une façon de faire et quelques commentaires :
A ) Ça prend au moins une ligne de données dans la feuille de destination du classeur. Cette première ligne va délimiter le nombre de champs contenu dans la requête.
B ) voici la requête : " Select * from [Feuil1$] " comme j'ai utilisé la feuille au complet ("*" dans la requête signifiant tous les champs), toutes les colonnes ne recevant pas de données doivent être libre de formatage ....sinon elles vont faire parti de la requête, puisque c'est le concept de Usedrange qui s'applique quant au nombre de colonnes dans la requête.
C ) la première ligne de données que tu insères doit avoir un TYPE de données qui correspond aux données de la colonnes que tu veux exporter. Si tu veux avoir des étiquettes de colonnes qui soit du texte dans la première ligne, formate expressément la deuxième ligne avec le type de données que doit contenir cette colonne ( chacune des cellules doit avoir un format) , et ces formats seront respectés lors de l'exportation des données. Cependant, les données débuteront en ligne 3 et non en ligne 2.
D ) Tu dois ajouter à ton projet la bibliothèque suivante : "Microsoft activex objects 2.0 librairy"
E ) Cette façon de procéder, te permet d'ajouter des données dans le classeur de destination, sur la feuille de ton choix, sans connaître quelle était la dernière ligne contenant des données, et sans avoir besoin de spécifier une adresse de destination particulière.
'------------------------------------- Sub Miseàjour()
Dim Conn As Connection, Rst As New ADODB.Recordset Dim B As Integer, A As Integer, Rg As Range, Fichier As String
Fichier = "C:excelADO.xls"
Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Fichier & ";" & _ "Extended Properties=""Excel 8.0;HDR=No;"""
Rst.Open "Select * from [Feuil1$] ", Conn, _ adOpenKeyset, adLockOptimistic
If Rst.RecordCount > 0 Then Rst.MoveFirst End If
With Worksheets("Feuil2") Set Rg = .Range("A1:C10") End With B = Rg.Rows.Count For A = 1 To B Rst.AddNew Rst.Fields(0) = Rg.Item(A, 1) Rst.Fields(1) = Rg.Item(A, 2) Rst.Fields(2) = Rg.Item(A, 3) Rst.Update Rst.MoveNext Next Rst.Close: Conn.Close Set Rst = Nothing Set Conn = Nothing
End Sub '-------------------------------------
Salutations!
"Philippe B." a écrit dans le message de news:
Bonjour à tous,
J'aimerai savoir s'il est possible d'exporter des informations d'un fichier excel ouvert vers un autre fichier excel qui est lui fermé.
Si quelqu'un connait la reponse, je lui serait éternellement reconnaissant.