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 :

ComboBox liste provenant d'un fichier .txt [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2018
    Messages : 51
    Points : 36
    Points
    36
    Par défaut ComboBox liste provenant d'un fichier .txt
    Bonjour à tous,

    J'ai un formulaire avec un combobox ecrit comme ci-dessous.
    Au lieu d'avoir les différentes valeurs dans le code VBA, j'aimerai que les valeurs soient dans un fichier .txt
    Cela permettrait plus facilement de remplacer les valeurs par un utilisateur novice en VBA.
    Les valeurs seront écrites dans le fichier .txt l'une en dessous de l'autre (en colonne)
    Y a t'il un moyen d'aller lire dans le fichier .txt et de remplir mon comobox?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ComboBoxTraitementSurface.Clear
    ComboBoxTraitementSurface.Value = TraitementSurfaceLu
    ComboBoxTraitementSurface.AddItem "Peinture Ral"
    ComboBoxTraitementSurface.AddItem "Peinture Fixe"
    ComboBoxTraitementSurface.AddItem "Peinture Mobile"
    ComboBoxTraitementSurface.AddItem "Brunissage"
    ComboBoxTraitementSurface.AddItem "Anodisation"

  2. #2
    Membre expérimenté Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 822
    Points : 1 322
    Points
    1 322
    Par défaut
    Hello,

    comme ça ?

    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
    Private Sub UserForm_Initialize()
     
        Dim Chemin As String
        Dim Ligne_Texte As String
        Dim Num_Fichier As Integer
     
        Chemin = "C:\temp\liste.txt"
     
        Num_Fichier = FreeFile
        Open Chemin For Input As #Num_Fichier
     
        Do While Not EOF(Num_Fichier)
            Line Input #Num_Fichier, Ligne_Texte
            ComboBox1.AddItem Ligne_Texte
        Loop
     
        Close #Num_Fichier
     
    End Sub
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2002
    Messages
    937
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 937
    Points : 1 465
    Points
    1 465
    Par défaut
    Salut, pourquoi un fichier texte plutôt qu'une liste dynamique sur une feuille ?
    Voici un exemple, j'ai créé un tableau sur ma "Feuil2" et je l'ai appelé "Traitement".

    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
    Private Sub UserForm_Initialize()
        Dim ws As Worksheet
        Dim lo As ListObject
        Dim i As Long
     
        Set ws = ThisWorkbook.Sheets("Feuil2")
        Set lo = ws.ListObjects("Traitement")
     
            With ComboBoxTraitement
                .Clear
                For i = 1 To lo.ListRows.Count
                    .AddItem lo.DataBodyRange.Cells(i, 1).Value
                Next i
            End With
    End Sub

  4. #4
    Membre émérite Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 533
    Points : 2 405
    Points
    2 405
    Par défaut
    bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    ComboBoxTraitementSurface.List = LireFichierListe
    End Sub
    Function LireFichierListe() As String()
        Dim Num_Fichier As Integer: Num_Fichier = FreeFile ' Obtenir un numéro de fichier libre
        Open Environ("temp") & "\liste.txt" For Input As #Num_Fichier ' Ouvrir le fichier en mode lecture
        LireFichierListe = Split(Input(LOF(Num_Fichier), Num_Fichier), vbCrLf) ' Lire tout le fichier d'un coup, et retourne tableau
        Close #Num_Fichier ' Fermer le fichier
    End Function

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2018
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    Hello,

    comme ça ?

    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
    Private Sub UserForm_Initialize()
     
        Dim Chemin As String
        Dim Ligne_Texte As String
        Dim Num_Fichier As Integer
     
        Chemin = "C:\temp\liste.txt"
     
        Num_Fichier = FreeFile
        Open Chemin For Input As #Num_Fichier
     
        Do While Not EOF(Num_Fichier)
            Line Input #Num_Fichier, Ligne_Texte
            ComboBox1.AddItem Ligne_Texte
        Loop
     
        Close #Num_Fichier
     
    End Sub
    Merci, c'est exactement ce don j'avais besoin! super!

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2018
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Franc Voir le message
    Salut, pourquoi un fichier texte plutôt qu'une liste dynamique sur une feuille ?
    Voici un exemple, j'ai créé un tableau sur ma "Feuil2" et je l'ai appelé "Traitement".

    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
    Private Sub UserForm_Initialize()
        Dim ws As Worksheet
        Dim lo As ListObject
        Dim i As Long
     
        Set ws = ThisWorkbook.Sheets("Feuil2")
        Set lo = ws.ListObjects("Traitement")
     
            With ComboBoxTraitement
                .Clear
                For i = 1 To lo.ListRows.Count
                    .AddItem lo.DataBodyRange.Cells(i, 1).Value
                Next i
            End With
    End Sub
    Merci mais je souhaite vraiment aller lire le fichier .txt qui est utilisé pour d'autre choses. Ainsi tout sera centralisé sur ce fichier, ça évitera des doublons pas forcément mis à jour...
    Merci quand même

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2018
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    ComboBoxTraitementSurface.List = LireFichierListe
    End Sub
    Function LireFichierListe() As String()
        Dim Num_Fichier As Integer: Num_Fichier = FreeFile ' Obtenir un numéro de fichier libre
        Open Environ("temp") & "\liste.txt" For Input As #Num_Fichier ' Ouvrir le fichier en mode lecture
        LireFichierListe = Split(Input(LOF(Num_Fichier), Num_Fichier), vbCrLf) ' Lire tout le fichier d'un coup, et retourne tableau
        Close #Num_Fichier ' Fermer le fichier
    End Function
    Bonjour,
    Cette solution à l'air bien, mais mon niveau en VBA ne me permet pas de comprendre comment l'appliquer.
    A quel endroit doit-on indiquer le répertoire et le nom du fichier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F:\07- Listes propriétes personalisées 2023\Liste dessinateur
    Merci

  8. #8
    Membre émérite Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 533
    Points : 2 405
    Points
    2 405
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Initialize()
    ComboBoxTraitementSurface.List = LireFichierListe("F:\07- Listes propriétes personalisées 2023\Liste dessinateur.txt")
    End Sub
    Function LireFichierListe(Txt as string) As String()
        Dim Num_Fichier As Integer: Num_Fichier = FreeFile ' Obtenir un numéro de fichier libre
        Open TxtFor Input As #Num_Fichier ' Ouvrir le fichier en mode lecture
        LireFichierListe = Split(Input(LOF(Num_Fichier), Num_Fichier), vbCrLf) ' Lire tout le fichier d'un coup, et retourne tableau
        Close #Num_Fichier ' Fermer le fichier
    End Function

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2018
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Initialize()
    ComboBoxTraitementSurface.List = LireFichierListe("F:\07- Listes propriétes personalisées 2023\Liste dessinateur.txt")
    End Sub
    Function LireFichierListe(Txt as string) As String()
        Dim Num_Fichier As Integer: Num_Fichier = FreeFile ' Obtenir un numéro de fichier libre
        Open TxtFor Input As #Num_Fichier ' Ouvrir le fichier en mode lecture
        LireFichierListe = Split(Input(LOF(Num_Fichier), Num_Fichier), vbCrLf) ' Lire tout le fichier d'un coup, et retourne tableau
        Close #Num_Fichier ' Fermer le fichier
    End Function

    Parfait, merci beaucoup!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/11/2019, 13h52
  2. [OL-2010] VBA - Dans un comboBox Trier une liste provenant d'un fichier TXT
    Par marycaLou dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 06/02/2015, 16h50
  3. conversion d'heure provenant d'un fichier txt
    Par sdecorme dans le forum MATLAB
    Réponses: 6
    Dernier message: 06/08/2014, 22h02
  4. [Batch] Supprimer des fichiers à partir d'une liste contenu dans un fichier txt
    Par damsmut dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 15/11/2012, 11h23
  5. [Débutant] Importation et exploitation de valeurs provenant d'un fichier txt
    Par jenfree dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/04/2007, 20h51

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