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 :

Importer des data ascii dans excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Par défaut Importer des data ascii dans excel
    Bonjour,
    je boss depuis trois jours sur une petite séquence visual basic sur excel et j'avoue être bloqué. Voilà, dans le cadre de mon travail, j'éssaie de simplifier une tâche répétitive pour d'autres personnes. Le but final de ma séquence sera d'importer environ 1000 fichiers ascii chacun dans un nouveau doc excel.

    Je vais expliquer rapidement comment je m'y prends: afin que mon outil soit simple d'utilisation, je pars d'une feuille excel sur laquelle je mets des boutons de commandes afin que, une fois finie, les personnes qui utiliseront ma séquence auront en face d'eux une simple page excel avec des boutons à cliquer (je ne passe pas par visual studio car je ne l'ai pas). Ma séquence commence par créer un nouveau document excel dans le lequel je vais importer mes data.

    Voici où je suis coincé: quand je demande à importer mes data ascii, elles sont bien importées mais le souci c'est qu'elles sont importées dans ma feuille excel modèle où sont situés les boutons de commande et non pas dans la nouvelle feuille excel que j'ai créée au début de la séquence. Voici le code que j'utilise:

    ===> Lorsque je clique sur le bouton 1
    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
    Private Sub CommandButton1_Click()
      'creation d'une feuille excel vierge
          Workbooks.Add
      'Ajout une feuille excel
          Sheets.Add
          Sheets("Sheet1").Move After:=Sheets(4)
      'Renomme feuilles excel
          Sheets("Sheet4").Select
          Sheets("Sheet4").Name = "INFOS"
          Sheets("Sheet2").Select
          Sheets("Sheet2").Name = "BRUTES"
          Sheets("Sheet3").Select
          Sheets("Sheet3").Name = "COURBES BRUTES"
          Sheets("Sheet1").Select
          Sheets("Sheet1").Name = "COURBES TRAITESS"
    End Sub
     
    ====> Lorsque je clique sur mon 2e bouton, et c'est là que ça bloque..
     
     Sub CommandButton2_Click()
            Sheets("BRUTES").Select
             With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;E:\ZJUNIN.001", Destination:= _
            Range("A1"))
    .Name = "ZJUNIN"
            .FieldNames = True
            .PreserveFormatting = True
            .RefreshStyle = xlInsertDeleteCells
            .SaveData = True
            .AdjustColumnWidth = True
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = True
            .TextFileSpaceDelimiter = True
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
        End With
    End Sub
    Voilà, et si je mets "Sheets("BRUTES").Select" en commentaire les data sont importées dans ma feuille xls contenant les boutons de commande; si je le laisse actif, ça ne marche pas du tout.

    J'espère ne pas avoir été trop exhaustif, j'espère que certains pourront me donner quelques conseils, car là je suis complètement bloqué et évidemment le temps joue contre moi car je dois finir la séquence avant vendredi.
    Voici aussi un exemple de fichier importé:

    -1.46 -0.0893 0.315 0.946 -1.13 -2.4 1.05 0.743
    63.1 0.442 67.6 75.3 0.698 28.4 60
    -1.07 0.156 0.4 3.48 -1.59 -3.11 1.25 0.821
    79.4 0.363 33.9 76.3 0.757 24.7 67.3
    -1.2 -0.0643 0.0947 2.03 -1.16 -3.17 1.44 1.45
    100 0.433 18.3 46.1 0.773 17.6 39.2
    -0.566 -0.449 1 1.16 -2.35 -1.69 0.934 1.47



    Par avance merci à tous ceux (et celles) qui pourront m'aider,
    bien amicalement,
    Sébastien

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,
    A mon avis deux solutions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("BRUTES").Activate
             With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;E:\ZJUNIN.001", Destination:= _
            Range("A1"))
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("BRUTES").Select
             With Selection.QueryTables.Add(Connection:= _
            "TEXT;E:\ZJUNIN.001", Destination:= _
            Range("A1"))
    je n'ai pas testé donc je ne sais pas si c'est ça mais ...

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Je pense que quand tu cliques sur ton 2ème bouton, tu changes le classeur actif qui redevient celui où est le bouton et non le nouveau classeur créé.

    Je te propose de stocker dans une variable le nom du nouveau fichier juste après sa création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
      'creation d'une feuille excel vierge
          Workbooks.Add
          varFichier2 = ActiveWorkbook.name
      'Ajout une feuille excel
          Sheets.Add
    ...
    Puis d'activer ensuite le nouveau fichier dès le bouton 2 cliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Sub CommandButton2_Click()
            Workbooks(varFichier2).Activate
            Sheets("BRUTES").Select
             With ActiveSheet.QueryTables.Add(Connection:= _
    Et déclarer la variable varFichier2 en public dans un module pour qu'elle soit accessible des deux macros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public varFichier2 as String

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Par défaut
    Bonjour,
    pardon de ne pas avoir répondu avant. La deuxième solution était la bonne merci beaucoup!
    Je reviendrai surement pour une boucle mais je vais tenter de me débrouiller tout seul avant..
    Encore merci!

    Sébastien

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

Discussions similaires

  1. importé des données XML dans excel
    Par function_Help dans le forum Excel
    Réponses: 1
    Dernier message: 29/02/2012, 21h45
  2. importer des donnees txt dans Excel
    Par bakaratoun dans le forum Excel
    Réponses: 0
    Dernier message: 06/02/2011, 14h20
  3. Import des données oracle dans excel
    Par irouni dans le forum Excel
    Réponses: 7
    Dernier message: 10/12/2007, 15h47
  4. Importer des données Access dans Excel
    Par petitloup71 dans le forum Access
    Réponses: 7
    Dernier message: 30/08/2006, 14h48
  5. [VBA Excel] Importer des tables Access dans Excel
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2005, 11h44

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