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 :

Import de texte sur plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juillet 2006
    Messages : 233
    Par défaut Import de texte sur plusieurs feuilles
    Bonjour à tous, je suis débutant et j'ai de très gros fichiers séparés par des virgules (format csv).

    Mon premier problème était de mettre automatiquement le texte dans plusieurs feuilles. Mais depuis que j'ai trouvé sur le net(site microsoft) le script suivant, ce problème a été reglé.

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Sub ImportGrosFichier()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 2007.02.08 par Admin
    '
    'Attribute VB_Name = "ImportVeryBigTextFile"
     
    'Importer dans un classeur un fichier texte de grande taille
    '(ajoute des feuilles chaque fois que le fichier importé
    'remplit 65000 lignes)
     
    'Sören Lindqvist, mpep
    '""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    'Dimension Variables
    Dim ResultStr As String
    Dim FileName As String
    Dim FileNum As Integer
    Dim Counter As Double
     
      FileName = "C:\AFR.txt"
      'If you want an inputbox use the below:
      'InputBox("Write name of file and path")
        If FileName = "" Then End
      FileNum = FreeFile()
      Open FileName For Input As #FileNum
      Application.ScreenUpdating = False
     
      Workbooks.Add template:=xlWorksheet
     
      Counter = 1
     
      Do While Seek(FileNum) <= LOF(FileNum)
     
        Application.StatusBar = "Importerar Rad " & _
          Counter & " xxxx TextFil " & FileName
          Line Input #FileNum, ResultStr
          If Left(ResultStr, 1) = "=" Then
            ActiveCell.Value = "'" & ResultStr
          Else
            ActiveCell.Value = ResultStr
          End If
     
        If ActiveCell.Row = 55536 Then
        ' I'll need some space below
        'If file is larger than (65500.st)
          ActiveWorkbook.Sheets.Add
        Else
          ActiveCell.Offset(1, 0).Select
        End If
        Counter = Counter + 1
     
      Loop
      Close
      Application.StatusBar = False
    End Sub
    Mon deuxième problème est que je n'arrive pas à personnaliser cet import car tout est mis dans une seule colonne sans séparateur!!!

    Or je veux dans le code précédent introduire le fait qu'il prenne en compte le format csv et me mettre à la place d'une virgule un saut de colonne . COMMENT SVP?


    Ce code suivant est tiré d'une macro qui, justement travaille dans ce sens (respect du format csv)
    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
     With ActiveSheet.QueryTables.Add(Destination:=Range("A1"))
            .Name = "17032007"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 2, 2, 2, 2, 2)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    Comment peut on par exemple insérer efficacement ce code dans le code précedent! ou trouver une autre parade à mon souci!

    Merci infiniment!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Mets ton code entre balise : sélectionner ton code et clic sur # dans la barre d'outil.

    Sinon tu peux jeter un coup d'oeil . Et de plus en faisant une recherche avec CVS tu trouveras plein de posts sur le sujet, je suis sûr que tu trouveras ton bonheur.

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juillet 2006
    Messages : 233
    Par défaut
    Au fait je sais importer un texte, mais là j'ai un code qui est écrit par une autre personne et qui m'est vraiment utile: il consiste à mettre un fichier texte volumineux entre plusieurs feuilles.

    Seulement quand je viens voir la feuille, je trouve qu'il m'a tout mis dans une seule colonne. Or je veux que dans chaque feuille, les séparateurs (dans le texte) se traduisent par des sauts de colonnes. Voilà mon souci:

    Ce code qui m'est si cher je ne veux pas le perdre et je veux si possible y insérer des directives visant à faire correspondre excatement les sauts de colonnes aux séparateurs(, ou ; ou tab) dans le fichier texte origine à des colonnes dans les feuilles excel et vice versa!

    Merci infiniment de votre aide!!

Discussions similaires

  1. Réponses: 15
    Dernier message: 15/05/2008, 20h53
  2. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23
  3. [JButton] Texte sur plusieurs lignes
    Par leminipouce dans le forum Composants
    Réponses: 5
    Dernier message: 19/10/2005, 10h17
  4. [CR10 ]un texte sur plusieurs lignes?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 28/09/2005, 07h26
  5. Réponses: 2
    Dernier message: 21/09/2005, 12h18

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