Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Clic droit=valeur définie en fonction de critères

Proz

XLDnaute Occasionnel


Bonsoir à tous,

Dans l'exemple joint, je souhaiterais que des valeurs s'affichent par un simple choix dans l'Userform en fonction de critéres saisies dans la colonne "fonction".
Tout est saisi à partir d'un Userform (réalisation en collaboration avec le forum).
ici bout de fichier.​

Merci pour tout.
 

Pièces jointes

  • Ex02.zip
    21.9 KB · Affichages: 40
  • Ex02.zip
    21.9 KB · Affichages: 43
  • Ex02.zip
    21.9 KB · Affichages: 40

skoobi

XLDnaute Barbatruc
Re : Clic droit=valeur définie en fonction de critères

Bonsoir,

je souhaiterais que des valeurs s'affichent par un simple choix dans l'Userform
Quelles valeurs veux-tu récupérer?
Merci de préciser.

Sinon voici le code "initialise" modifié + code de tri pour avoir les listes triées dans les combobox:

Code:
Private Sub UserForm_Initialize()
Dim DerLi As Long
Dim tableau()
With Sheets("Feuil2")
  tableau = .Range("A2:A8").Value
  Call tri(tableau, 1, UBound(tableau))
  ComboBox1.List = tableau
'    DerLi = .[A65000].End(xlUp).Row
'    For Each cell In .Range("A2:A8")
'      ComboBox1.AddItem cell.Value
'Next
  tableau = .Range("B2:B119").Value
  Call tri(tableau, 1, UBound(tableau))
  ComboBox2.List = tableau
'     For Each cell In .Range("B2:B119")
'      ComboBox2.AddItem cell.Value
'Next
  tableau = .Range("C2:C20").Value
  Call tri(tableau, 1, UBound(tableau))
  ComboBox5.List = tableau
'    For Each cell In .Range("C2:C20")
'      ComboBox5.AddItem cell.Value
'Next
  tableau = .Range("D2:D7").Value
  Call tri(tableau, 1, UBound(tableau))
  ComboBox6.List = tableau
'    For Each cell In .Range("D2:D7")
'      ComboBox6.AddItem cell.Value
'Next
End With
End Sub

Sub tri(a(), gauc, droi) ' Quick sort
   ref = a((gauc + droi) \ 2, 1)
   g = gauc: d = droi
   Do
      Do While a(g, 1) < ref: g = g + 1: Loop
      Do While ref < a(d, 1): d = d - 1: Loop
        If g <= d Then
           temp = a(g, 1): a(g, 1) = a(d, 1): a(d, 1) = temp
           g = g + 1: d = d - 1
        End If
    Loop While g <= d
    If g < droi Then Call tri(a, g, droi)
    If gauc < d Then Call tri(a, gauc, d)
End Sub

Edit: Le code de tri est issue de J. Boisgontier, voir avec lui pour des explications
 
Dernière édition:

Proz

XLDnaute Occasionnel
Re : Clic droit=valeur définie en fonction de critères



Désolé pas trop claire.
Je te joins autre fichier.

Merci pour le code... C'est beaucoup mieux ainsi.
 

Pièces jointes

  • Ex02.zip
    23.1 KB · Affichages: 30
  • Ex02.zip
    23.1 KB · Affichages: 31
  • Ex02.zip
    23.1 KB · Affichages: 30

skoobi

XLDnaute Barbatruc
Re : Clic droit=valeur définie en fonction de critères

Reprenons:
1- tu sélectionnes une fonction
2- tu coches des temps

Ca "t'affiches" les valeurs qui sont déjà visible dans le tableau?!?!
 

Proz

XLDnaute Occasionnel
Re : Clic droit=valeur définie en fonction de critères



Oui ceux qui sont en exemple dans le tableau, je m'e^plique:
Pour l'instant l'userform (après avoir sélectionné un temps) m'insère une croix dans le tableau.
Ce que je souhaite cé d'avoir les valeurs identifiées dans le tableau une fois sélectionné le temps dans l'userform.
Ce qui se complique, c'est que certaines "fonctions" ont le même horaire mais la paie est différente alors cela devient une condition à prendre en compte.
C'est pourquoi dans l'exemple j'indique des chifffres et des croix en fonction d'une catégorie de personnel (de couleurs identiques et réciproques) en fonction d'un temps (intitulé des colonnes et choix dans l'userform).
Pour résumer:
Si je sélectionne la fonction ANIMATEUR dans l'userform et que je coche le temps RS est indiqué dans le tableau la valeur 2 (dans colonne "RS") et si cela avait été un REFERENT, serait alors indiqué un "X".

J'espère ne pas avoir été trop confus dans mon monologue.
Je te remercie pour ta patience...
 

Pièces jointes

  • Ex02.zip
    23.1 KB · Affichages: 39
  • Ex02.zip
    23.1 KB · Affichages: 45
  • Ex02.zip
    23.1 KB · Affichages: 33
Dernière édition:

Proz

XLDnaute Occasionnel
Re : Clic droit=valeur définie en fonction de critères



Non je voudrai que "2" soit saisie dans la cellule une fois choisi ANIMATEUR et cocher Restaurant Scolaire dans l'userform et valider
 

skoobi

XLDnaute Barbatruc
Re : Clic droit=valeur définie en fonction de critères

Pourquoi 2 et pas 1 ou 3 ou 4 ou 7 ou X?
Quel est la règle?
Vraiment pas clair tout ça....

Edit: au fait, l'objet "Windows Common Controls" n'est pas installé chez-moi, ça correspond à quoi?
 
Dernière édition:

Proz

XLDnaute Occasionnel
Re : Clic droit=valeur définie en fonction de critères



Alors:
Code:
                             [LIST]
[*]                            Animateur:  Référent:     AE VAC:   AE TIT:   ATSEM..
[*]Accueil matin:              1h              X
[*]Restaurants scolaire:     2h              X                4h          X
[*]Etude surveillée:           1h              X
[*]Accueil soir:                 1h              X
[*]Entretien soir:                                                 3h          X
[*]Permanences:                                                 7h          X
[/LIST]
Ces valeurs représente un volume horaire de travail, pour certains décompté et d'autres non car représenté par une X.
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Clic droit=valeur définie en fonction de critères

Bonjour,

Si j'ai bien compris, voici le code du bouton "valider", j'ai mis ton code initial en commentaire:

Code:
Private Sub CommandButton1_Click()
Dim DerLig As Long
With Sheets("Feuil1")
  DerLig = .[S65000].End(xlUp).Row + 1
  Select Case ComboBox6.Value
  Case "ANIMATEUR"
    If CheckBox1.Value = True Then .Range("K" & DerLig).Value = 1
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = 2
    If CheckBox3.Value = True Then .Range("M" & DerLig).Value = 1
    If CheckBox4.Value = True Then .Range("N" & DerLig).Value = 1
  Case "REFERENT"
    If CheckBox1.Value = True Then .Range("K" & DerLig).Value = "X"
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = "X"
    If CheckBox3.Value = True Then .Range("M" & DerLig).Value = "X"
    If CheckBox4.Value = True Then .Range("N" & DerLig).Value = "X"
  Case "AE VAC"
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = 4
    If CheckBox5.Value = True Then .Range("O" & DerLig).Value = 3
  Case "AE TIT"
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = "X"
    If CheckBox5.Value = True Then .Range("O" & DerLig).Value = "X"
  Case "ATSEM"
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = "X"
    If CheckBox6.Value = True Then .Range("P" & DerLig).Value = "X"
    If CheckBox7.Value = True Then .Range("Q" & DerLig).Value = "X"
    If CheckBox8.Value = True Then .Range("R" & DerLig).Value = "X"
  Case "ATSEM REMPL"
    If CheckBox2.Value = True Then .Range("L" & DerLig).Value = 2
    If CheckBox6.Value = True Then .Range("P" & DerLig).Value = 7
    If CheckBox7.Value = True Then .Range("Q" & DerLig).Value = 4
    If CheckBox8.Value = True Then .Range("R" & DerLig).Value = 3
  Case "PERMANENTE"
    If CheckBox6.Value = True Then .Range("P" & DerLig).Value = 7
    If CheckBox7.Value = True Then .Range("Q" & DerLig).Value = 4
    If CheckBox8.Value = True Then .Range("R" & DerLig).Value = 3
  End Select
  .Range("S" & DerLig).Value = ComboBox6.Value
End With
      
'With Sheets("Feuil1")
'    DerLig = .[A65000].End(xlUp).Row + 1
'    .Cells(DerLig, 1) = Me.ComboBox1
'    .Cells(DerLig, 2) = Me.TextBox1
'    .Cells(DerLig, 4) = IIf(Me.OptionButton2, Me.ComboBox2, "")
'    .Cells(DerLig, 5) = IIf(Me.OptionButton1, Me.ComboBox2, "")
'    .Cells(DerLig, 6) = Date
'    .Cells(DerLig, 8) = Me.DTPicker1
'    .Cells(DerLig, 9) = Me.DTPicker2
'    .Cells(DerLig, 10) = Me.ComboBox5
'    For i = 1 To 8
'        If Me.Controls("Checkbox" & i) Then
'            Cells(DerLig, i + 10) = "X"
'        End If
'    Next i
'    .Cells(DerLig, 19) = Me.ComboBox6
'End With
Unload Me
End Sub

Bon test.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…