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 :

Créer un nombre variable de champs dans un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut Créer un nombre variable de champs dans un userform
    Bonjour à tous !

    Je voudrais créer un userform avec des champ "Label". Mais le nombre de ces champ doit être variable (il dépendra du nombre de données "n" qui sera trouvé dans le classeur)
    Par exemple, si n=3, je voudrais créer 3 labels dont les noms vont prendre la valeur de la cellule A1, A2 et A3.

    Bonus de cogitation : si en plus quelqu'un savait comment faire pour éviter les doublons (ex:A1 et A2 ont la même valeur, donc on ne crée qu'un champ "Label" en plus du champ pour A3), ce serait vraiment génial !

    Quelqu'un a t-il une idée ?

    Merci d'avance.

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    Bonjour et bienvenue au forum
    Intéresse-toi à la propriété Caption du Label :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label1.Caption = "toto"
    Un tuto sur les contrôles des UserForm : http://silkyroad.developpez.com/VBA/ControlesUserForm/
    En particulier les Label : http://silkyroad.developpez.com/VBA/...serForm/#LII-A

  3. #3
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Bonjour ,

    Un exemple de SilkyRoad qui devrait t'aider :

    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
    Private Sub UserForm_Initialize()
        Dim Obj As Control
        Dim i As Integer
     
        For i = 1 To 3 'boucle pour la création des Labels
            Set Obj = Me.Controls.Add("forms.Label.1")
            With Obj
                .Name = "monLabel" & i
                .Object.Caption = "le texte" & i
                .Left = 140
                .Top = 30 * i + 10
                .Width = 50
                .Height = 20
            End With
        Next i
     
    End Sub
    Pour ce qui est de vérifier les doublons plein de solutions existes et ont déjà été discuté sur ce forum et d'autres. Pour ne citer que les plus connues :
    - Menu validation directement dans Excel
    - Filtre élaboré
    - Dictionnaire/Collection

    Un tuto concernant les doublons :
    Celui de Silkyroad

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut filtrer des doublons
    Pour ma part je suis un adepte des collections.

    Petite routine maison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Ajoute un item dans une collection
    ' ne fait rien si l'item existe déjà
    Public Sub EasyAddItemInCollection(ByRef Coll As Collection, ByRef Item As Variant, Optional ByVal Key As String = "")
    On Error Resume Next
        If Key = "" Then
            Call Coll.Add(Item)
        Else
            Call Coll.Add(Item, Key)
        End If
    End Sub

    Puis le dédoublonnage fonctionne ainsi :

    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 dédoublonne()
    Dim col As Collection
    Dim v As Variant
     
        Set col = New Collection
        Call EasyAddItemInCollection(col, "titi", "titi")
        Call EasyAddItemInCollection(col, "titi", "titi")
        Call EasyAddItemInCollection(col, "tata", "tata")
        Call EasyAddItemInCollection(col, "titi", "titi")
        Call EasyAddItemInCollection(col, "toto", "toto")
     
        For Each v In col
            Debug.Print v
        Next v
    End Sub
    Résultat :
    titi
    tata
    toto


    En espérant que ça aide...
    Sylvain

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Merci pour vos conseils. Je vais pouvoir avancer maintenant

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

Discussions similaires

  1. Copier un nombre variable d'images dans des sous-répertoires
    Par member159 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 15/05/2012, 18h07
  2. Nombre maximum de champs dans INSERT INTO
    Par titoi256 dans le forum Requêtes
    Réponses: 5
    Dernier message: 20/12/2010, 14h19
  3. [AC-2003] Comment concaténer un nombre variable de champs?
    Par Chris@Xerox dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/10/2010, 10h56
  4. Réponses: 4
    Dernier message: 14/05/2010, 16h29

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