Filtre et ajout dans un USERFORM

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 !

belerofon

XLDnaute Occasionnel
Bonjour à tous,
Me voila confronté à nouveau aux limites de mes connaissances en VB...
j'ai tout expliqué dans le petit fichier exemple
j'ai avancé autant que possible mais je ne sais comment coder le tri conditionnel
et continue de pêcher quand au transfert des infos saisies dans un userform avec de telles conditions
Merci à tous
J.
 

Pièces jointes

Re : Filtre et ajout dans un USERFORM

Bonsoir
Cette partie avec cette condition semble faire l'affaire :
VB:
' initiailsation de la liste déroulante des demandes
  i = 0
  Me.ComboBox3.Clear
  For Each c In Range(Sheets("Recap").[A4], Sheets("Recap").[A65000].End(xlUp))
   If WorksheetFunction.CountA(Intersect(Sheets("Recap").[J:M], c.EntireRow)) = 0 Then
      Me.ComboBox3.AddItem
      Me.ComboBox3.List(i, 0) = c
      Me.ComboBox3.List(i, 1) = c.Row
      i = i + 1
      End If
   Next c
   Me.ComboBox3.ListIndex = 0
À +
 
Re : Filtre et ajout dans un USERFORM

Bonsoir

Ci dessous le code à modifier
Code:
Private Sub UserForm_Initialize()
....................................................
With Me.ComboBox3
        .Clear
        .ColumnCount = 2
        .ColumnWidths = "60;0"
        .Style = fmStyleDropDownList '
  For Each c In Range(Sheets("Recap").[A4], Sheets("Recap").[A65000].End(xlUp))
        If c.Offset(0, 10) = "" And c.Offset(0, 11) = "" And c.Offset(0, 12) = "" Then
            .AddItem c
            .List(.ListCount - 1, 1) = c.Row
        End If
   Next c
   .ListIndex = 0
End With
   
End Sub

Private Sub CommandButton2_Click()
Dim lig As Long

If Me.ComboBoxGrade.Value = "" Then
    Call MsgBox("Vous devez indiquer le grade du demandeur" _
                & vbCrLf & "" _
                & vbCrLf & "" _
                , vbCritical, Application.Name)
     Me.ComboBoxGrade.SetFocus
    Exit Sub
    
End If
If Me.ComboBoxNom.Value = "" Then
    Call MsgBox("Vous devez indiquer le demandeur" _
                & vbCrLf & "" _
                & vbCrLf & "" _
                , vbCritical, Application.Name)
     Me.ComboBoxNom.SetFocus
    Exit Sub
End If
If Me.TextBox5.Value = "" Then
    Call MsgBox("Vous devez compléter la zone " _
                & vbCrLf & "" _
                & vbCrLf & "" _
                , vbCritical, Application.Name)
     Me.TextBox5.SetFocus
    Exit Sub
End If
With Sheets("Recap")
lig = CLng(ComboBox3.List(ComboBox3.ListIndex, ComboBox3.ColumnCount - 1))
    .Range("K" & lig) = Me.ComboBoxGrade
    .Range("L" & lig) = Me.ComboBoxNom
    .Range("M" & lig) = Me.TextBox5
    .Range("j" & lig) = Date
End With
Set WS = ThisWorkbook.Sheets("MENU")
WS.Select
Unload UserForm2
End Sub

A tester

JP
 
Re : Filtre et ajout dans un USERFORM

Bonjour

Effectivement il peut avoir une erreur si le Combobox3 est vide.
Il faut rajouter le code suivant
Code:
..............................
With Me.ComboBox3
  .........................
   .ListIndex = [COLOR="red"]-1[/COLOR]



Private Sub CommandButton2_Click()
Dim lig As Long
I[COLOR="red"]f ComboBox3.Listindex= -1 then exit sub
[/COLOR]

Mettre au point une procédure consiste à gérer les erreurs des personnes qui utiliseront l'application.

JP
 
Dernière édition:
Re : Filtre et ajout dans un USERFORM

Excellent coup d oeil JP, j avais pas encore mis le doigt dessus...
Surtout que tu as bien raison a propos de procédure vu à qui s adresse mon fichier... Ces gens la sont foutus de planté un fichier verrouillé de partout 🙂
Par contre apres avoir essayé ton code , il me parle d erreur de syntaxe...
je me penche dessus
MErci encore
J.
 
Re : Filtre et ajout dans un USERFORM

J'ai rien dit a nouveau 🙂
J'avais mal interprété le
.ListIndex = -1

Ca marche du tonerre, t es un crack....

Tant que je te tiens, question toute bete:
Est il possible de faire apparaitre un tableau dans un formulaire...
Disons que j aimerais savoir si dans un userform je peux faire apparaitre une plage du style A1:M* sous l aspect d un tableau excel
???
 
- 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
11
Affichages
704
Retour