MsgBox sur Listbox

Bonjour le forum,

Je bloque sur un MsgBox avant enregistrement concernant un ListBox Grrrrrr, quand ça ne veux pas .

Si quelqu'un peut m'aider, ça serait sympa, merci.

J'ai tenté, mais rien n'y fait

ListBox1ListIndex= -1 Then

ListBox1.Seleted(i) = False

Mon code Initialize :

Private Sub UserForm_Initialize()
  Set f = Sheets("Theme")
  BD = f.Range("A2:B" & f.[A65000].End(xlUp).Row).Value   ' Array pour rapidité
  Set d = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(BD)                                 ' on explore la colonne de niveau 1
    d(BD(i, 1)) = ""                                      ' on ajoute l'élément de la famille au dictionnaire
  Next i
  Tbl = d.keys
  Tri Tbl, LBound(Tbl), UBound(Tbl)
  Me.Famille.List = Tbl

   'Chargement listbox1 agent
With Sheets("Theme")
    drlig = .Range("D2").End(xlDown).Row
    For lig = 2 To drlig
        Me.ListBox1.AddItem .Range("D" & lig)
        Me.ComboBox1.AddItem .Range("D" & lig)
        Me.ComboBox2.AddItem .Range("D" & lig)
    Next lig
End With
End Sub

Mon code bouton enregistrement :

Private Sub CommandButton4_Click()
'// Bouton Valider l'entraînement vers tableau de l'onglet "Fiche"
    Dim réponse As Integer, cell As Range, i2 As Integer
'// Renseignement obligatoire avant enregistrement
If TextBox1 = "" Or Famille = "" Or ListBox1.ListIndex = -1 Then
  MsgBox "Renseignement obligatoire manquant !!"
  Exit Sub
End If

    réponse = MsgBox("Confirmez-vous la validation des données ?", vbYesNo)
    If réponse = vbNo Then Exit Sub
'// ajout contenu des objets dans le tableau de l'onglet "Fiche"
    For i = 0 To ListBox1.ListCount - 1
     If ListBox1.Selected(i) = True Then
    With Feuil4
       i2 = .Cells(Rows.Count, 4).End(xlUp).Row + 1
        .Range("D" & i2).Value = CDate(Format(TextBox1, "dd/mm/yyyy")) 'Format(TextBox1, "dd/mm/yyyy")
        .Range("E" & i2).Value = ListBox1.List(i)
        .Range("F" & i2).Value = Famille
        .Range("G" & i2).Value = SousFamille
        .Range("H" & i2).Value = Format(Duree, "hh:mm")
        .Range("I" & i2).Value = ComboBox1
        .Range("J" & i2).Value = ComboBox2
    End With
       i2 = i2 + 1
     End If
    Next i
'// réinitialisation des objets
    MsgBox "Entraînement enregistré"
  Unload Me
  UserForm2.Show 0
End Sub

Cdlt

pompaero

Bonjour,

En te lisant je ne comprends pas où est le problème

Où est-ce que ça coince? Toujours pas de fichier non plus?

Bonjour Ausecour

Désolé pour le fichier, je l'ai loupé

Le soucis, malgré la macro, est qu'avec le Listbox1, si il n'y a pas d'item de sélectionné la procédure d'enregistrement est proposé alors qu'il faut obligatoirement un item sélectionné.

Cette fois ci, je joins le fichier.

Cdlt

pompaero

Bonjour à tous,

J'ai placé la variable "Selectionne" en haut de façon que le bouton Valider puisse l'utiliser.

Puis, dans l’initialisation du formulaire, j'ai mis "Selectionne" à false.

Ainsi, tant que l'on ne sélectionne pas un item dans le Listbox ...

Il restera les mois du calendrier à corriger.

Ric

Bonjour,

   Dim n
   n = 0
   For i = 0 To Me.ListBox1.ListCount - 1
      If Me.ListBox1.Selected(i) = True Then n = n + 1
   Next i
   If n = 0 Then MsgBox "Sélectionner 1 item!": Exit Sub

Boisgontier

Bonjour,

   Dim n
   n = 0
   For i = 0 To Me.ListBox1.ListCount - 1
      If Me.ListBox1.Selected(i) = True Then n = n + 1
   Next i
   If n = 0 Then MsgBox "Sélectionner 1 item!": Exit Sub

Boisgontier

Bonjour à tous les membres ayant répondu,

Petite optimisation comme on cherche juste à savoir si on a au moins une valeur sélectionnée, on sort de la boucle quand on en a trouvé une pour éviter de continuer la boucle sans raison :

   selectionne = false
   For i = 0 To Me.ListBox1.ListCount - 1
      If Me.ListBox1.Selected(i) = True Then 
          selectionne = true
          exit for
      end if
    Next i
   If selectionne = false Then 
       MsgBox("Sélectionnez 1 item!")
       Exit Sub
   end if

Bonjour le forum, le fil

bienvenue ric, Boisgontierjacques

Je regarde vos propositions et reviens vous dire, merci

c'est cool d'avoir du soutien.

pompaero

Bonjour le fil,

Merci pour toute votre aide, c'est cool.

Vos propositions correspondent à mes attentes, mais pour être franc je suis aller au plus simple, j'ai donc choisi le principe de ric, mais je garde tout de même les autres solutions sous le coude.

Pour moi c'est parfais, mes attentes sont atteinte, je peux clôturer le fil grâce à vous.

Merci à vous tous

Cordialement

pompaero

ric

Rechercher des sujets similaires à "msgbox listbox"