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

Excel Discussion :

Probleme d'importation txt


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Probleme d'importation txt
    Bonjour à tous, j'ai (encore) un problème avec mon importation, je m'explique:
    on importe un fichier txt dans un classeur excel, une macro automatise la manoeuvre. L'adresse du fichier est décomposer en 4 variables (magasin, journal, année et mois) qui sont choisi par l'utilisateur.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     Dim Chemin As String  'Variable qui va contenir l'adresse du dossier
        Dim Adresse As String 'Variable qui va contenir les éléments pour identifier le documents à importer.
        Dim Magasin1 As String
        Dim Journal1 As String
        Dim Annee1 As String
        Dim Mois1 As String
        Dim Nom As String
     
        Chemin = Sheets("code").Range("g1")
        Magasin1 = Sheets("code").Range("g4")
        Trim (Magasin1)
        Journal1 = Sheets("code").Range("g5")
        Annee1 = Sheets("code").Range("g6")
        Mois1 = Sheets("code").Range("g7")
        Adresse = Chemin & Magasin1 & Journal1 & Annee1 & Mois1 & ".txt"
        ' Affectation de l'adresse du dossier à la variable Adresse
        Nom = Magasin1 & Journal1 & Annee1 & Mois1
     
        With ActiveSheet.QueryTables.Add(Connection = Adresse, Destination:=Range("A1"))
            .Name = Nom
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = Fals
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = xlWindows
            .TextFileStartRow = 1
            .TextFileParseType = xlFixedWidth
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileFixedColumnWidths = Array(1, 8, 1, 11, 1, 9, 1, 9, 1, 11, 1, 11, 1, 11, 1, 11, 1, 8 _
            , 1)
            .Refresh BackgroundQuery:=False
        End With
    La suite c'est la mise en forme.
    Le morceau de code qui pose probleme est cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With ActiveSheet.QueryTables.Add(Connection = Adresse, Destination:=Range("A1"))
    Merci pour votre aide

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour mick77

    Adresse = Chemin & Magasin1 & Journal1 & Annee1 & Mois1 & ".txt"

    A mon avis dans les cellules il y a des valeurs brutes
    Plusieurs questions :
    les differentes variables concernent elles une arborescence

    Adresse = Chemin & "\" & Magasin1 & "\" & Journal1 & "\" & Annee1 & Mois1 & ".txt"

    Chemin est le chemin du repertoire, y a t il un \ entre le chemin et le nom du fichier
    Adresse = Chemin & "\" & Magasin1 & Journal1 & Annee1 & Mois1 & ".txt"

    Dans ton nom de fichier sur disque as tu des separateurs "-" ou " "
    Adresse = Chemin & "\" & Magasin1 & " " & Journal1 & " " & Annee1 & "-"& Mois1 & ".txt"

    la structure de tes noms et des valeurs dans les cellules est tres importante

    @ te lire

    cordialement
    wilfried

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Bonjour wilfried

    Chemin contient "c:\document and setting\mick\mes documents\documents\"

    Le nom du fichier est composer des variables magasin, journal, année et mois, (ex: 004re704.txt où "004" est le numero du magasin, "re" le journal, "7" l'année et "04" le mois.

    Le contenu de adresse est "c:\document and setting\mick\mes documents\documents\004re704.txt", cela correspond bien et je pense que le probleme ne doit pas être là.

    Je continu a chercher

    Merci pour ton aide wilfried

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Oups j'ai oublié pour le message d'erreur, il me met :
    Erreur d'exécution '5':
    Argument ou appel de procédure incorrect

    Ca fait 3 jours que je cherche sans resultat, un peu d'aide ne serait pas de reffut.

  5. #5
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je ne connais pas querrytables desolé, j'ai cherché sur l'aide EXCEL

    en rouge ce que j'ai trouvé

    Cette méthode crée une table de requête. Elle renvoie un objet QueryTable qui représente la nouvelle table de requête.

    expression.Add(Connection, Destination, Sql)

    expression Obligatoire. Expression qui renvoie un objet QueryTables.

    Connection Argument de type Variant obligatoire. Source de données de la table de requête. Il peut s'agir de l'un des éléments suivants :

    Chaîne contenant une chaîne de connexion OLE DB ou ODBC. Chaîne sous la forme « ODBC;<chaîne de connexion> ».
    Objet QueryTable à partir duquel les informations de requête sont initialement copiées, chaîne de connexion et texte SQL inclus mais plage Destination exclue. Si vous spécifiez un objet QueryTable, l'argument Sql est ignoré.
    Objet Recordset ADO ou DAO. Les données sont lues dans le jeu d'enregistrements ADO ou DAO. Microsoft Excel conserve le jeu d'enregistrements jusqu'à ce que la table de requête soit supprimée ou que la connexion soit modifiée. La table de requête résultante ne peut pas être modifiée.
    Requête Web. Chaîne sous la forme « URL;<url> », dans laquelle « URL; » est obligatoire mais n'est pas localisé et le reste de la chaîne est utilisé pour l'URL de la requête Web.
    Data Finder. Chaîne sous la forme « FINDER;<chemin d'un fichier data finder> » dans laquelle « FINDER; » est obligatoire mais n'est pas localisé. Le reste de la chaîne est composé du chemin et du nom de fichier d'un fichier Data Finder (*.dqy or *.iqy). Le fichier est lu quand la méthode Add est exécutée ; les appels suivants à la propriété Connection de la table de requête renvoient les chaînes qui commencent par « ODBC; » ou « URL; » selon les cas.

    Fichier texte. Chaîne sous la forme « TEXT;<nom et chemin d'un fichier texte> », dans laquelle « TEXT » est obligatoire mais n'est pas localisé.
    Destination Argument de type Range obligatoire. Cellule située dans le coin supérieur gauche de la plage de destination de la table de requête (plage où sera placée la table de requête résultante). La plage de destination doit être située sur la feuille de calcul qui contient l'objet QueryTables spécifié par expression.

    Sql Argument de type Variant facultatif. Chaîne de requête SQL à exécuter sur la source de données ODBC. Cet argument est facultatif quand vous utilisez une source de données ODBC (si vous ne le spécifiez pas ici, définissez-le à l'aide de la propriété Sql de la table de requête avant qu'elle ne soit mise à jour). Vous ne pouvez pas utiliser cet argument quand un objet QueryTable, un fichier texte ou un objet Recordset ADO ou DAO est spécifié comme la source de données.
    @ +

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Rebonjour

    En fait à l'origine la macro a été faite avec l'assistant, ce qui donnait pour la ligne en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;C:\Documents and Settings\Mick\Mes documents\Documents\004RE704.TXT", _
            Destination:=Range("A1"))
    Je l'ai modifier pour généraliser l'importation, ca marchais avant que la modification ai été réalisé. C'est surment une erreur de syntaxe.

  7. #7
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    comme je te dis, je n'y connais rien, je suis en apprentissage là lol

    essaye cela :

    Adresse = "TEXT;" & Chemin & Magasin1 & Journal1 & Annee1 & Mois1 & ".txt"

    @ +

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Merci wilfried
    j'ai changer legerement mon code, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Adresse", Destination:=Range("A1"))
    Ca marche, ca importe mon fichier (mal) mais ca l'importe.
    Moi aussi je suis en BTS IG (informatique de gestion ) et actuelleement en stage.
    Bonne continuation et encore merci pour ton aide.

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

Discussions similaires

  1. [Info] Probleme avec import
    Par Marc_3 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/03/2006, 18h59
  2. [FLASH 8][openAMF][remote][java]probleme d'import
    Par Invité dans le forum Flash
    Réponses: 5
    Dernier message: 02/12/2005, 17h51
  3. Réponses: 4
    Dernier message: 19/10/2005, 23h30
  4. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 19h22
  5. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57

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