IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ecrire dans fichier fermé PAS SQL


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 14
    Par défaut Ecrire dans fichier fermé PAS SQL
    bonjour à tous,

    Je bloque sur une méthode.
    J'ai bien lu les différents sites dont l'excellent tutoriel de silkyroad : http://silkyroad.developpez.com/VBA/ClasseursFermes/
    La méthode ADO a l'air très bien mais je n'arrive pas à écrire en direct.
    Mais mes fichiers ne sont pas sous forme de BDD SQL mais des remontées de données à transférer vers plusieurs fichiers.
    J'aimerai donc simplement écrire dans des fichiers pour le moment mais je n'y arrive pas.

    Y a t-il donc un moyen pour écrire dans un fichier fermé (pour des soucis d'optimisation d’exécution) sans passer par une table de données ?

    Je veux juste réinscrire des données dans plusieurs fichiers de formes différentes sans les ouvrir.

    Merci beaucoup !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par macadamx Voir le message
    Y a t-il donc un moyen pour écrire dans un fichier fermé (pour des soucis d'optimisation d’exécution) sans passer par une table de données ?
    Il est tout simplement impossible d'écrire dans un fichier fermé (à moins d'aller directement modifier des secteurs disque, mais je ne connais personne qui se risque à ça).

    La méthode ADO ouvre le fichier de manière différente (sans Excel) mais ça reste une ouverture.

    Cela dit, à mon avis, tu te prends la tête pour un gain minime (au mieux).
    Fais la méthode Workbooks.Open + Close SaveChanges:=True, tu gagneras en temps de développement, en lisibilité et en fiabilité.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 14
    Par défaut
    D'accord, je voulais optimiser le temps d’exécution de la macro car je n'aime pas attendre devant mon ordinateur.
    Merci pour ta réponse, je vais passer par l'ouverture de fichiers.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    j'ai pas tout compris, mais tu veux faire un truc comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Test()
    Dim F As String, Rep As String
    Rep = ThisWorkbook.Path & "\Test\"
    ThisWorkbook.Worksheets("Feuil1").Range("A2:Y" & Cells.Rows.Count).ClearContents
    ThisWorkbook.Save
    With CreateObject("adodb.connection")
                .Provider = "Microsoft.Jet.OLEDB.4.0"
                .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                    & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES;"""
                .Open
                F = Dir(Rep & "*.xls*")
                While F <> ""
                    .Execute "Insert into [Feuil1$] select * from [Feuil1$] in '" & Rep & F & "' 'Excel 12.0;HDR=YES;IMEX=1;'"
                    F = Dir
                Wend
                .Close
    End With
     MsgBox "Fin"
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire dans fichier
    Par Sahara dans le forum C++
    Réponses: 2
    Dernier message: 16/11/2006, 20h01
  2. Ecrire dans fichier
    Par tit_oune dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 10/04/2006, 14h10
  3. [C#] Comment lire/ecrire dans fichier ini ?
    Par meli0207 dans le forum C#
    Réponses: 2
    Dernier message: 20/03/2006, 16h53
  4. ecrire dans fichier côté serveur
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/03/2006, 16h47
  5. [Débutant][JFileChooser] Ecrire dans fichier
    Par Clark dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/05/2005, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo