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 :

createtextfile et incompatibilité de type


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut createtextfile et incompatibilité de type
    Bonjour à tous et à toutes,

    Alors j'essaye de créer et écrire dans un fichier texte en vba. Le code est implémenté et semble fonctionner. A l'ouverture du fichier je tombe sur l'erreur 13 incompatibilité de type sur la commande createfile. Quelqu'un a t il une idée ? la librairie Microsoft Scripting Runtime a bien été ajoutée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oFSO As Scripting.FileSystemObject
    Dim oFl As Scripting.File
    Dim oTxt As Scripting.TextStream
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set oFl = oFSO.CreateTextFile(Trim(cheminsortie) & "\" & Trim(ficsortie) & ".txt", True)
        Set oTxt = oFl.OpenAsTextStream(ForWriting)
    Cheminsortie et ficsortie contiennent bien deux string et ne sont pas vide le trim est peut-être inutile ou le faire à leur implémentation.
    Si quelqu'un a une idée merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonjour !

    Déjà FSO est inutile car le VBA dispose en interne de tout le nécessaire pour créer un fichier texte ‼

    Sinon le B-A-BA est de vérifier la concaténation des variables de la ligne déclenchant l'erreur via MsgBox ou Debug.Print


    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    pourquoi t'ennuie tu avec le FSO (scriptingfilesystemobject)??? la méthode open de vba fonctionne très bien
    ecriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test_ecriture()
    fichier = cheminsortie & "\" & Trim(ficsortie) & ".txt"
    x = FreeFile
    texte = "toto" & vbCrLf & "titi"
    Open fichier For Output As #x
    Print #x, texte
    Close #x
    End sub
    lecture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub testlecture2()
    Dim laChaine As String, x, fichier As String
    fichier = cheminsortie & "\" & Trim(ficsortie) & ".txt"
    x = FreeFile
     Open fichier For Input As #x
          laChaine = Input(LOF(x), #x)
      Close #x
      MsgBox laChaine
     
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Alors J'ai pris l'option FSO car j'ai un grand nombre de données à traiter et j'ai l'impression peut-être (sûrement) fausse que quand on ajoute des bibliothèques qui proposent des choses que le langage propose déjà elles sont plus optimisés.

    Sinon ma chaine a été vérifié et semble correcte (pas de blanc, un chemin disque valide) que peut-on vérifier d'autre ?

    Après je n'ai rien contre la bonne vieille méthode cela est juste une question de temps de traitement...

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par 07121984 Voir le message
    Alors J'ai pris l'option FSO car j'ai un grand nombre de données à traiter et j'ai l'impression peut-être (sûrement) fausse que quand on ajoute des bibliothèques qui proposent des choses que le langage propose déjà elles sont plus optimisés.

    Sinon ma chaine a été vérifié et semble correcte (pas de blanc, un chemin disque valide) que peut-on vérifier d'autre ?

    Après je n'ai rien contre la bonne vieille méthode cela est juste une question de temps de traitement...
    c'est une fausse idée dans ce cas
    c'est la lecture en binaire qui est lente pas en texte

    ici dans cet exemple c'est bonnet blanc: blanc bonnet
    puis la méthode open se décharge en mémoire toute seule ce qui rend forcement moins lourd cette méthode puisque l'object FSO doit être détruit (=nothing)pour vider la mémoire

    perso je ne me sert que du Scripting.filesystemobject que dans mes vbs ,la méthode open étant inexistante dans ce langage
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Ok en effet en passant par freefile -> open -> write ça marche très bien (très lentement mais très bien) merci.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    avec write ou read le FSO n'est pas plus rapide c'est impossible

    si c'est lent c'est que les fichiers sont relativement lourd

    bonne continuation
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Incompatibilité de type ListBox
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 16/11/2005, 11h19
  2. Message incompatibilité de type
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 10/10/2005, 20h57
  3. incompatibilité de type
    Par zooffy dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2005, 15h12
  4. Incompatibilité de types dans un formulaire
    Par ahage4x4 dans le forum ASP
    Réponses: 3
    Dernier message: 03/05/2005, 15h39
  5. [XSD] Incompatibilité des types xs:ID et xs:IDREF ?
    Par Cpt.FLAM dans le forum Valider
    Réponses: 6
    Dernier message: 08/04/2005, 14h54

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