Problème COMBOBOX

Bonsoir,

Le code ci-dessous me permet, en appuyant sur le bouton "INFORMATIONS" de m'ouvrir un USERFORM et d'ajouter les item à la combobox.

Or si j'appuie une autre fois sur le bouton, les item de la combobox sont de nouveau ajouter, c'est a dire si j'appuie N fois sur le bouton, les item vont être rajoutés N fois.

Comment faire pour éviter cela?

Sub Informations()

UserForm1.ComboBox1.AddItem "STANDARD"
UserForm1.ComboBox1.AddItem "HORS STANDARD"
UserForm1.ComboBox1.AddItem "FORME LIBRE"

UserForm1.ComboBox2.AddItem "FOND PLAT"
UserForm1.ComboBox2.AddItem "FOSSE A PLONGEE"
UserForm1.ComboBox2.AddItem "PENTE COMPOSEE"

UserForm1.Show

End Sub

Je vous joint également le fichier.

PS: Désolé si c'est le bordel dans les macros... Je sais pas trop les faire

21test-userform.xlsm (88.56 Ko)

Bonsoir,

Avec ce code, a priori plus de problème

Sub Informations()

    UserForm1.ComboBox1.List = Array("STANDARD", "HORS STANDARD", "HORS STANDARD")
    UserForm1.ComboBox2.List = Array("FOND PLAT", "FOSSE A PLONGEE", "PENTE COMPOSEE")

    UserForm1.Show

End Sub

Parfait cela fonctionne exactement comme je voulais

Encore moi !

J'ai un petit soucis, lorsque je ferme ma feuille et que je la réouvre, les valeurs dans l'USERFORM restent sauf celle des ComboBox,

Comment faire pour qu'elles restent?

Merci

Difficile pour les utilisateurs de Windows de te répondre car le fonctionnement de l'Userform sur Mac n'est pas identique., en particulier pour ce qui concerne les 2 combobox présentes dans ton contrôle Frame 2.

Ces dernières n'apparaissent pas chez moi à l'affichage de ton UserForm.

Comment cela se fait?

Pourtant il s'agit d'un fichier Microsoft exporté sur Excel Mac.

C'est a dire que le fichier venant de Microsoft est lisible sous Mac mais pas l'inverse....

Globalement ma requêtes est :

Lorsque je ferme ma feuille de calcul, les valeurs dans ma combobox sont effacés mais pas les autres. Comment faire pour que les valeurs dans la combobox ne s'effacent pas?

Pour l'instant je suis au travail et tout les ordinateurs tournent sous Mac..

J'essaierai de vous faire parvenir un fichier venant de Microsoft


Voici une version faite rapidement sous Windows mais qui fonctionne de la même manière.

Quand vous remplissez l'USERFORM et cliquer sur FERME et que vous le rouvrez pas de soucis.

Mais si vous enregistrez la feuille et la fermée, puis que vous la rouvrez, l'USERFORM est complètement vide.

Je voudrais empêcher cela.

Comment puis-je faire

10test-userform.xlsm (44.27 Ko)

Quand vous cliquez sur "Enregistrer sous", vous fermez votre classeur et déchargez donc votre UserForm.

Un UserForm rattaché à un classeur perd donc toujours ses valeurs à la fermeture du classeur. Pour qu'un UserForm conserve ses valeurs, il faut qu'il soit rattaché à la feuille mais je doute qu'un tel UserForm fonctionne sous Mac.

Une solution est de stocker avant fermeture les valeurs de votre formulaire dans votre feuille Données et de les reprendre à l'affichage du formulaire.

Juste pour l'exemple, j'ai créé un UserForm2 rattaché à votre feuille Devis. Vous pourrez constater que les valeurs de Userform2 sont conservées.

Je ne pense pas malheureusement que cela fonctionne sous Mac. Si jamais cela fonctionnait sous Mac, je vous joins à tout hasard la documentation que j'ai rédigée

Malheureusement je ne voit pas tes modifications, que ce soit sur mon PC ou sur mon Mac, les Label ainsi que les ComboBox sont effacées, il n'y a rien...

Merci

Je ne t'ai pas communiqué la bonne version mais celle que tu as fournie au début de ton post..

12test-userform2.xlsm (57.98 Ko)

J'ai réussi en demandant les informations contraire.

Au départ j'avais par exemple TextBox4.Value = Range("C6")

jr l'ai transformé en Range("C6").Value=TextBox4 sur la partie de la macro du bouton INFORMATIONS.

J'ai juste un soucis sur cette partie la

If Sheets("DEVIS").Range("J21") = "PDC+DLE" Then
    UserForm1.CheckBox4.Value = True And UserForm1.CheckBox5.Value = True
        Else: UserForm1.CheckBox4.Value = False And UserForm1.CheckBox5.Value = False
If Sheets("DEVIS").Range("J21") = "PDC" Then
    UserForm1.CheckBox4.Value = True
        Else: UserForm1.CheckBox4.Value = False
If Sheets("DEVIS").Range("J21") = "DLE" Then
    UserForm1.CheckBox5.Value = True
        Else: UserForm1.CheckBox5.Value = False
            End If
                End If
                    End If
                    

Meme si en J21 il y a PDC+DLE mes 2 checkboxs restent vide...

C'est bon j'ai réussi !

C'était le "And" qui posait soucis !

Sujet clos (jusqu'a la prochaine fois )

Rechercher des sujets similaires à "probleme combobox"