Microsoft 365 Écrire dans une colonne depuis userform

  • Initiateur de la discussion Initiateur de la discussion jcf6464
  • 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 !

jcf6464

XLDnaute Impliqué
Bonjour à vous tous le forum,

Je suis en train de modifier mon classeur de suivie de compétition planeur, j'ai besoin de vos lumières 😉
Je me lance le défit de passer en tableau structuré sur la base d'un classeur de galopin1 merci à lui,
J'ai rajouté un ComboBox Pays ,
je souhaiterai si un pays me manque dans la liste de la feuille Parametres le saisir dans le combobox et en sortant (return) du combobox cela soit saisi dans la table T_Pays de la feuille Parametres à la suite des autres pays ,

J’espère avoir était clair dans mes explications

bonne journée jcf
 

Pièces jointes

Bonjour jcf6464,
je souhaiterai si un pays me manque dans la liste de la feuille Parametres le saisir dans le combobox et en sortant (return) du combobox cela soit saisi dans la table T_Pays de la feuille Parametres à la suite des autres pays ,
Ajoutez ce code dans l'UserForm usfSaisie :
VB:
Private Sub CmbPays_AfterUpdate()
Dim x$
x = CmbPays
If CmbPays.ListIndex <> -1 Or x = "" Then Exit Sub
If MsgBox("Voulez-vous créer le pays '" & x & "' ?", vbQuestion + vbYesNo) = 7 Then CmbPays = "": Exit Sub
With [T_Pays].ListObject.Range
    .Cells(.Rows.Count + 1, 1) = x
End With
End Sub
A+
 
J'ai revu le code de la ComboBox, le problème venait de sa propriété RowSource :
VB:
Private Sub CmbPays_AfterUpdate()
Dim x$
x = CmbPays
If CmbPays.ListIndex <> -1 Or x = "" Then Exit Sub
If MsgBox("Voulez-vous créer le pays '" & x & "' ?", vbQuestion + vbYesNo) = 7 Then CmbPays = "": Exit Sub
CmbPays.RowSource = "" 'RAZ
With [T_Pays].ListObject.Range
    IIf(.Cells(2, 1) = "", .Cells(2, 1), .Cells(.Rows.Count + 1, 1)) = x
End With
CmbPays.RowSource = "T_Pays"
End Sub
Bonne nuit.
 

Pièces jointes

Bonjour jcf6464,

Il y a souvent des problèmes avec la propriété RowSource, il vaut mieux l'éviter.

Pour remplir la ComboBox utilisez plutôt la propriété List :
VB:
CmbPays.List = [T_Pays].Resize(, 2).Value 'au moins 2 éléments
à placer dans UserForm_Initialize et dans CmbPays_AfterUpdate.

A+
 

Pièces jointes

- 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

Retour