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 :

Redirection fichier texte VBA excel [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Par défaut Redirection fichier texte VBA excel
    Bonjour, dans mon programme j'importe mon fichier texte et je le passe en excel mais, je suis obliger de l'ouvrir dans un nouvel excel pour avoir la bonne tabulation.
    J'aimerai qu'il puisse s'ouvrir depuis l'excel déjà en fonction avec la bonne tabulation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Importer_Click()
    Dim fichier_choisi As String
     
    fichier_choisi = Application.GetOpenFilename("text files(*.txt),*.txt", , "Sélectionner un ficher CSV")
     
    If (LCase(fichier_choisi) <> "faux" And fichier_choisi <> "0") Then
    liste_fichier.AddItem (fichier_choisi)
    If Right(fichier_choisi, 3) = "xls" Then
    Workbooks.Open fichier_choisi
    Else
    Workbooks.OpenText fichier_choisi, Tab:=True, Semicolon:=True, local:=True
    Voilà e que j'ai tapé,

    Pourriez vous m'aidez ?
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    ton fichier text s'ouvre tres bien
    juste le format des nombres qui a pour séparateur décimal le point et ca n'ira pas pour les éventuels calculs

    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
     
    Sub test()
        Dim fichier_choisi As Variant
        fichier_choisi = Application.GetOpenFilename("text files(*.txt),*.txt", , "Sélectionner un ficher CSV")
        If fichier_choisi = False Then Exit Sub
        If Right(fichier_choisi, 3) = "xls" Then    ' in ne peut pas y avoir de "xls" car tu filtre que les ".txt" dans getopenfilname
            Workbooks.Open fichier_choisi
        Else
            Workbooks.OpenText fichier_choisi, local:=True
            With ActiveSheet
                 tablo = .UsedRange.Value
                .UsedRange.Clear
                .Range("B:B").NumberFormat = "h:mm;@"
                .Range("A:A").NumberFormat = "DD/MM/YYYY"
                .Cells(1, 1).Resize(UBound(tablo), UBound(tablo, 2)).Value = tablo
            End With
        End If
    End Sub
    edit:
    format de tes cellules et de tes valeurs corrigées et exploitables en tant que date pour la colonne "A", heure pour la colonne" et nombre et standard pour les autres
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Par défaut
    Merci pour le coup de main pour la tabulation, mais ce que je n'arrive pas à faire c'est d'ouvrir le fichier texte dans mon excel import-export, je ne veux pas qu'il s'ouvre avec un nouvel excel.

    Je te remercie.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    la chose que tu demande est impossible avec open(/text) directement il faut rapatrier les données du 2 au 1 puis fermer le 2
    sinon tu a querytable, adobconnection ou open for output en mémoire

    c'est pas le choix de méthode qui manque
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    tiens voila
    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
    Sub test()
        Dim fichier_choisi As Variant,Wb,tablo
        fichier_choisi = Application.GetOpenFilename("text files(*.txt),*.txt", , "Sélectionner un ficher CSV")
        If fichier_choisi = False Then Exit Sub
     
        Application.ScreenUpdating = False
        If Right(fichier_choisi, 3) = "xls" Then    ' in ne peut pas y avoir de "xls" car tu filtre que les ".txt" dans getopenfilname
            Workbooks.Open fichier_choisi
        Else
            Workbooks.OpenText fichier_choisi, local:=True
            Set wb = ActiveWorkbook
            With ActiveSheet
                tablo = .UsedRange.Value
                .UsedRange.Clear
                .Range("B:B").NumberFormat = "h:mm;@"
                .Range("A:A").NumberFormat = "DD/MM/YYYY"
                .Cells(1, 1).Resize(UBound(tablo), UBound(tablo, 2)).Value = tablo
                .UsedRange.Copy Destination:=ThisWorkbook.Sheets(1).Cells(1)    'on rapatrie sur le classeur 1
                Application.DisplayAlerts = False
                ActiveWorkbook.Close
            End With
        End If
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    pour info a ca que je t'ai dis au debut en ce qui concerne ton getopenfilename avec ta condition qui ne peut fonctionner

    voici 3 exemple de syntaxe pour ouvrir différentes extensions de fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test2()
    '
    'tout les fichier ".txt" et ".xls**"(tout fichier excel de 2000 a 2019 EXPLICITEMENT
    fichier_choisi = Application.GetOpenFilename(FileFilter:=" txt file or  Excel Files ( *.txt;*.xlsx;*.xls;*.xlsm), ( *.txt;*.xlsx;*.xls;*.xlsm), All Files, *.*", FilterIndex:=1)
    '
    '
    'rien que les ".txt" et ".xls"EXPLICITEMENT
    'fichier_choisi = Application.GetOpenFilename(FileFilter:=" txt file or  Excel Files Under 2007 ( *.txt;*.xls), ( *.txt*.xls), All Files, *.*", FilterIndex:=1)
    '
    '
    'tout les fichier ".txt" et ".xls**"(tout fichier excel de 2000 a 2019 les format différents Excel sont IMPLICITES PAR cette syntaxe ("*.XLS*")
    fichier_choisi = Application.GetOpenFilename(FileFilter:=" txt file or  Excel Files ( *.txt;*.xls*), ( *.txt*.xls*), All Files, *.*", FilterIndex:=1)
    'etc... etc ....
    End Sub
    bonne route
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/08/2008, 13h36
  2. Réponses: 1
    Dernier message: 25/08/2008, 11h57
  3. Réponses: 2
    Dernier message: 04/06/2007, 15h39
  4. [VBA] Ouvrir plusieurs fichiers textes depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/12/2006, 17h45
  5. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47

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