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 :

[VBA-E] Pb passage Excel97 => Excel2003


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut [VBA-E] Pb passage Excel97 => Excel2003
    BOnjour à tous !!

    J'ai un souci incompréhensible.
    J'ai un code (macro Excel) qui s'exécute parfaitement sur Excel97.

    Par contre sur Excel2003, la macro ne semble PAS prendre en charge une partie du code. Il s'agit de l'ouverture d'un fichier csv. En effet, il ne reconnait pas les ";" => Je retrouve alors chaq ligne de mon fichier d'origine confiné ds la 1ère colonne au lieu de les retrouver ds un tableau (sur plusieurs colonnes).

    Merci d'avance pr votre aide.

  2. #2
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Bonjour,
    peut-on voir une partie de ton code ?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    oui, evidemment :-P

    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
     
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    F = Dir("C:\" & Command & "M\*.csv")
    ChDir "C:\" & Command & "M"
     
    Do Until F = ""
     
    '1ère version qui n'a pas marché...
       ' Workbooks.OpenText Filename:="C:\" & Command & "M\" & F, Origin:=xlMSDOS, _
        '    StartRow:=4, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
         '   ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
          '  , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 2), _
           ' Array(3, 2), Array(4, 2), Array(5, 1))
     
     
    '2ème version qui n'a pas marché...
         'Workbooks.OpenText Filename:="C:\" & Command & "M\" & F, Origin:=xlMSDOS, _
          '  StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
           ' ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            ', Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 2), _
            'Array(3, 2), Array(4, 2), Array(5, 1)), TrailingMinusNumbers:=True
     
     
    '3ème version ... qui n'a pas marché...
     Workbooks.Open Filename:="C:\" & Command & "M\" & F, Origin:=xlWindows
     
     
        Rows("1:3").Select
        Selection.Delete Shift:=xlUp
     
        Cells.Select
        'Cells.EntireColumn.AutoFit
        Columns("A:A").ColumnWidth = 8
        'Columns("B:D").Select
        Columns("B:D").EntireColumn.AutoFit
     
        ActiveWindow.WindowState = xlNormal
        ActiveSheet.Select
        ActiveSheet.Copy After:=Workbooks(NomFich).Sheets(1)
        Windows(F).Activate
        Windows(F).Close
     
        Windows(NomFich).Activate
     
        Rows("4:4").RowHeight = 30
     
        Rows("4:4").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = True

    ...et les 3 versions marchent sur Excel 97...

  4. #4
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Que veux tu dire par la ?
    Citation Envoyé par Mourne
    En effet, il ne reconnait pas les ";" => Je retrouve alors chaq ligne de mon fichier d'origine confiné ds la 1ère colonne au lieu de les retrouver ds un tableau (sur plusieurs colonnes).

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Je peux te definir un fichier csv comme un fichier texte qui permet d'exporter un tableau de données depuis un logiciel vers un autre. Il sépare les colonnes du tableau par un ;

    Ainsi, un tableau peut s'ecrire sous cette forme :

    A ; Bonjour ; Hello ;
    B ; Ca va ; How are.. ;
    C ; Au revoir ; Bye ;

    Et donc excel (normalement), en tt cas ac la version 97, reconnait les ";" et reclasse les données ds son tableau.

    Moi, cellule A1 = A ; Bonjour ; Hello ;
    A2 = B ; Ca va ; How are.. ;

    ...
    J'espère qu j'aurai été clair.

  6. #6
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Personne n'a une solution pr moi ? snif ..

    Mais merci qd meme de votre aide !!

    PS. : Si vous avez besoin de précisions, n'hésitez pas à m'en faire part.

  7. #7
    Membre éclairé
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    Salut,

    pourquoi ne pas t'enregistrer avec l'enregistreur de macro afin de voir le code ?

    Moi j'obtiens ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Workbooks.OpenText Filename:= _
            "C:\Chemin\Nouveau Feuille de calcul Microsoft Excel.csv" _
            , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
    Tu verras, tu auras plusieurs options qui te seront proposées (types de séparateurs, etc..)

    @++

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oui excel est un peu capricieux avec les fichiers .csv avec un ; comme séparateur... essai de renommer ton fichier avec une autre extension .. .txt par exemple puis ta méthode 1...ou 2...

  9. #9
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Citation Envoyé par mortalino
    Salut,

    pourquoi ne pas t'enregistrer avec l'enregistreur de macro afin de voir le code ?

    Moi j'obtiens ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Workbooks.OpenText Filename:= _
            "C:\Chemin\Nouveau Feuille de calcul Microsoft Excel.csv" _
            , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
    Tu verras, tu auras plusieurs options qui te seront proposées (types de séparateurs, etc..)

    @++
    oui, j'ai fait la même chose. La seule différence c que mon chemin d'accès, je l'entre par une inputbox. Le résultat reste dc le même, Excel 2003 ne remet pas en ordre les colonnes du tableau...

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2015, 14h50
  2. [access] vba pb de passage de paramètres
    Par binouzzz19 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/05/2007, 11h02
  3. [VBA]Problème de passage dans une boucle
    Par Halima91 dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2007, 04h09
  4. [VBA-A]Aide passage enregistrement suivant
    Par amaurysipa dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/03/2006, 16h38
  5. [VBA][EXCEL] GetExternalData sous Excel97
    Par Scuriolus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/12/2005, 08h33

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