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

VBA Access Discussion :

Données/convertir text to column d'un excel à partir d'access


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut Données/convertir text to column d'un excel à partir d'access
    Bonjour à tous,

    Dans ma base access, l'utilisateur clique sur un bouton dans un formulaire ce qui déclenche l'import d'un fichier csv (il y a un fichier de specifications pour l'import). Tout marche sauf que j'avais pas fait gaffe: pour mes tests, j'avais déjà formaté le csv en mettant des points virgules. Or l'utilisateur aura un fichier avec des virgules et des guillemets encadrant chaque champs. Donc je cherche à faire à partir d'access la manip que je fais sur excel pour mettre le point virgule comme séparateur de champ. J'ai pris le code généré par l'enregistreur de macro sur excel. J'ai mis ce code dans access mais rien ne se passe. Pourquoi ?

    Voici mon code:
    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
    Private Sub ExcelTextToColumn_Click()
     
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("D:\...\Monfichier.csv")
     
        xlApp.Sheets("Onglet1").Columns("A:A").Select
     
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
        (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
        Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
        33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
        Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
        46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), _
        Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array(58, 1), Array( _
        59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), Array(65, 1), _
        Array(66, 1), Array(67, 1), Array(68, 1), Array(69, 1), Array(70, 1), Array(71, 1), Array( _
        72, 1), Array(73, 1), Array(74, 1), Array(75, 1), Array(76, 1), Array(77, 1), Array(78, 1), _
        Array(79, 1), Array(80, 1), Array(81, 1), Array(82, 1), Array(83, 1), Array(84, 1), Array( _
        85, 1), Array(86, 1), Array(87, 1), Array(88, 1), Array(89, 1), Array(90, 1), Array(91, 1), _
        Array(92, 1), Array(93, 1), Array(94, 1), Array(95, 1), Array(96, 1), Array(97, 1)), _
        TrailingMinusNumbers:=True
     
        xlBook.Close (True)
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
    End Sub

    Merci de votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut
    Bonjour,

    J'ai modifié un peu mon code: les guillemets encadrant chaque champ sont bien supprimés, mais les virgules restent des virgules et ne sont pas transformées en points virgules (afin que les colonnes soient bien séparées quand on ouvre le fichier csv). Comment faire ? Mon but est d'avoir au final un fichier csv que je puisse importer dans access sachant que le symbole des décimales est la virgule. Donc il faudrait que les virgules entre les champs deviennent des points virgules, mais les virgules contenues dans un champ restent des virgules.

    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
    Private Sub ExcelTextToColumn_Click()
     
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("D:\...\Monfichier.csv")
     
        xlApp.Sheets("test").Columns("A:A").Select
        xlApp.Sheets("test").Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
        TrailingMinusNumbers:=True
     
        xlBook.Close (True)
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
    End Sub
    Merci pour votre aide.

Discussions similaires

  1. [XL-2003] données Excel à partir d'access: pb de déclenchement mise à jour
    Par debdev dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/11/2011, 11h02
  2. Lancement d'un fichier Excel à partir d'Access
    Par Golork dans le forum Access
    Réponses: 5
    Dernier message: 18/03/2010, 11h45
  3. Lancement macro excel à partir d'access
    Par frevale dans le forum Access
    Réponses: 3
    Dernier message: 11/04/2006, 13h11
  4. Réponses: 1
    Dernier message: 09/12/2005, 19h12
  5. Piloter excel à partir d'access
    Par Celia1303 dans le forum Access
    Réponses: 6
    Dernier message: 14/11/2005, 16h17

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