Microsoft 365 Écrire dans une colonne depuis userform

jcf6464

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

  • tableaux-structures-vJCF.xlsm
    73.8 KB · Affichages: 12

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+
 

jcf6464

XLDnaute Occasionnel
Bonsoir job75 et le forum,

Merci de ta réponse mais cela ne fonctionne pas ou mal Le morceau de code me ferme excel ,

Bizarre

je suis sous 365

bonne soirée jcf
 

Pièces jointes

  • tableaux-structures-vJCF-2.xlsm
    76.4 KB · Affichages: 3
Dernière édition:

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

  • tableaux-structures-vJCF-2.xlsm
    102.6 KB · Affichages: 5

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

  • tableaux-structures-vJCF-3.xlsm
    103.3 KB · Affichages: 5

Discussions similaires