Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Liste déroulante dans Useform

  • Initiateur de la discussion Initiateur de la discussion FCMLE44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FCMLE44

XLDnaute Impliqué
Dans mon userform feuille courriers, lorsque je sélectionne le petit crayon en haut colonne H sur la première liste déroulante, j'ai un débogage

Voici le code en question

VB:
Private Sub ComboBox1_Change()
[B12] = ComboBox1
For k = 1 To 13
Controls("Textbox" & k) = ""
Next
End Sub

Le problème semble venir de cette ligne

Code:
Controls("Textbox" & k) = ""


Je ne vois pas pourquoi

Quelqu'un aurait il une idée ?

Les données de ma liste déroulante se trouve dans la feuille paramètre colonne A

Quelqu'un aurait il une idée ?
 

Pièces jointes

Solution
Bonjour,


Dans votre code, vous voulez vider les textboxs 1 à 13.
Votre Userform n'en contient que 9 et non nommés en séquentiel.
L'erreur est toute à fait normale ...

Je vous propose de remplacer la sub :
VB:
Private Sub ComboBox1_Change()
[B12] = ComboBox1

'For k = 1 To 13
'Controls("Textbox" & k) = ""
'Next

For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.TextBox _
    Then Ctrl = ""
Next
End Sub
Bonjour à tous


Que voulez-vous dire ici? le nom de la feuille est manquant

VB:
[B12] = ComboBox1

et vous devez déclarer toutes les variables, sinon votre code peut devenir un cauchemar

et vous avez écrit dans votre code que le "k" va de 1 à 13, mais les textbox (6,7,8,9,10) n'existent pas dans votre userform


exemple de modifications de la façon dont le code doit être écrit, j'ai supprimé ('[B12] = ComboBox1)

VB:
Private Sub ComboBox1_Change()

'[B12] = ComboBox1

Dim k As Integer
Dim ctrl As MSForms.TextBox

For k = 1 To 5
    Set ctrl = Me.Controls("TextBox" & k)
    ctrl = ""
Next k

If Not ctrl Is Nothing Then Set ctrl = Nothing

End Sub

J'espère aider
 
Bonjour,


Dans votre code, vous voulez vider les textboxs 1 à 13.
Votre Userform n'en contient que 9 et non nommés en séquentiel.
L'erreur est toute à fait normale ...

Je vous propose de remplacer la sub :
VB:
Private Sub ComboBox1_Change()
[B12] = ComboBox1

'For k = 1 To 13
'Controls("Textbox" & k) = ""
'Next

For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.TextBox _
    Then Ctrl = ""
Next
End Sub
 

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
771
  • Question Question
Microsoft 365 aide userform
Réponses
11
Affichages
828
Réponses
4
Affichages
2 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…