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

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

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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

job75

XLDnaute Barbatruc
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

Discussions similaires

Statistiques des forums

Discussions
315 297
Messages
2 118 164
Membres
113 441
dernier inscrit
elddr40