Remplacer textbox par checkbox

Bonjour les amis,

Je travaille en ce moment sur une boite de dialogue et je bloque au niveau des textbox et checkbox, je souhaiterai remplacer les textbox qui figure dans la zone remplacer :

en faite je préfère un simple clic au lieu d'écrire un X dans un textbox.

Et bien entendu qu'il y est une mise à jour dans la base de donnée global avec un X pour dire que cette tâche à été effectué.

Et pour finir, si les trois tâches (signature, pièce identité et justificatif) sont cochés, cochés automatique CLOTURE.

Merci par avance pour cette aide

A très vite

Miloud

Visiblement ça doit être compliqué à mettre en place, je vais essayer de trouver une autre solution plus simple

Bonjour,

Et c'est quoi le problème pour toi de remplacer des TextBox par des CheckBox ?

Oups je ne savais pas qu'il ne fallait pas envoyé de fichier directement

Pour résumer, je travail en ce moment sur un fichier qui permet de gérer les signatures, il y a donc une boite de dialogue dans lequel il est une listebox des textbox et des checkbox. C'est une application que j'ai télécharger sur internet et que j'essaye d'adapter tant bien que mal à mon propre usage. je vais mettre le code ci-dessous en espérant que quelqu'un pourra m'aider à le finaliser.

Pour répondre à ta question, je vais te dire simplement, je ne sais pas faire la connection entre le bouton de la boite de dialogue et la feuille "onglet BD_GLOBAL"

voicie le code :

Option Compare Text
Dim f, BD_GLOBAL(), choix(), Rng, Ncol

Private Sub CommandButton1_Click()

 If MsgBox("Etes vous sûr de suppimer " & f.Cells(Enreg, 1) & "?", vbYesNo) = vbYes Then
   Enreg = Me.Enreg
   f.Cells(Enreg, 1).Resize(, Ncol).Delete Shift:=xlUp
   raz
   Me.Enreg = ""
   UserForm_Initialize
 End If

End Sub
Private Sub UserForm_Initialize()
   Set f = Sheets("BD_GLOBAL")
   Set Rng = f.Range("A2:M" & f.[A65000].End(xlUp).Row)
   BD_GLOBAL = Rng.Value
   Ncol = Rng.Columns.Count
   Set d1 = CreateObject("Scripting.Dictionary")
   Set d2 = CreateObject("Scripting.Dictionary")
   Set d3 = CreateObject("Scripting.Dictionary")
   d1.CompareMode = vbTextCompare
   d2.CompareMode = vbTextCompare
   d3.CompareMode = vbTextCompare
   For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
    If Not d1.exists(BD_GLOBAL(i, 1)) Then d1(BD_GLOBAL(i, 1)) = ""
    If Not d2.exists(BD_GLOBAL(i, 4)) Then d2(BD_GLOBAL(i, 4)) = ""
    If Not d3.exists(BD_GLOBAL(i, 8)) Then d3(BD_GLOBAL(i, 8)) = ""
   Next i
   '--avec tri
   temp = d1.keys
   Call Tri(temp, LBound(temp), UBound(temp))
   Me.ComboBox1.List = temp
   temp = d2.keys
   Call Tri(temp, LBound(temp), UBound(temp))
   Me.ComboBox2.List = temp
   temp = d3.keys
   Call Tri(temp, LBound(temp), UBound(temp))
   Me.ComboBox3.List = temp
   Me.ListBox1.Clear
   Me.ComboBox1.ListIndex = -1
   Me.ComboBox2.ListIndex = -1
   Me.Enreg = f.[A65000].End(xlUp).Row + 1
End Sub
Private Sub ComboBox1_click()
  Me.ListBox1.Clear
  For k = 1 To Ncol: Me("textBox" & k) = "": Next k
  j = 0
  n = Application.CountIf(Application.Index(Rng, , 1), Me.ComboBox1)
  Dim b()
  ReDim b(1 To n, 1 To Ncol + 1)
  For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
    If Me.ComboBox1 = BD_GLOBAL(i, 1) Then
      j = j + 1
      For k = 1 To Ncol
        b(j, k) = BD_GLOBAL(i, k)
        If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
      Next k
      b(j, k) = i
    End If
   Next i
   ListBox1.List = b
   ListBox1.ListIndex = 0
End Sub
Private Sub ComboBox2_click()
  Me.ListBox1.Clear
  For k = 1 To Ncol: Me("textBox" & k) = "": Next k
  j = 0
  n = Application.CountIf(Application.Index(Rng, , 4), Me.ComboBox2)
  Dim b()
  ReDim b(1 To n, 1 To Ncol + 1)
  For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
    If Me.ComboBox2 = BD_GLOBAL(i, 4) Then
      j = j + 1
      For k = 1 To Ncol
        b(j, k) = BD_GLOBAL(i, k)
        If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
      Next k
      b(j, k) = i
    End If
   Next i
   ListBox1.List = b
   ListBox1.ListIndex = 0
End Sub

Private Sub ComboBox3_click()
  Me.ListBox1.Clear
  For k = 1 To Ncol: Me("textBox" & k) = "": Next k
  j = 0
  n = Application.CountIf(Application.Index(Rng, , 8), Me.ComboBox3)
  Dim b()
  ReDim b(1 To n, 1 To Ncol + 1)
  For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
    If Me.ComboBox3 = BD_GLOBAL(i, 8) Then
      j = j + 1
      For k = 1 To Ncol
        b(j, k) = BD_GLOBAL(i, k)
        If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
      Next k
      b(j, k) = i
    End If
   Next i
   ListBox1.List = b
   ListBox1.ListIndex = 0
End Sub
Private Sub ListBox1_Click()
    For k = 1 To Ncol
      Me("textBox" & k) = Me.ListBox1.Column(k - 1)
    Next k
    Me.Enreg = Me.ListBox1.Column(Ncol) + Rng.Row - 1
End Sub
Private Sub b_modif_Click()
    If Me.Enreg <> "" And Me.TextBox1 <> "" Then
      NoEnreg = Me.Enreg
      For k = 1 To Ncol
        x = Replace(Me("textBox" & k), " ", "")
         If IsNumeric(x) Then
           f.Cells(NoEnreg, k) = Val(x)
         Else
           f.Cells(NoEnreg, k) = Me("textBox" & k)
         End If
      Next k
      raz
      Me.Enreg = ""
      UserForm_Initialize
    End If
End Sub
Private Sub b_ajout_Click()
  raz
  Me.Enreg = f.[A65000].End(xlUp).Row + 1
End Sub
Sub raz()
    For k = 1 To Ncol
      Me("textBox" & k) = ""
    Next k
    Me.TextBox1.SetFocus
    Me.CheckBox1.SetFocus
End Sub
Sub Tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
        temp = a(g): a(g) = a(d): a(d) = 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

je te propose une idée de solution sur un exemple

essaye si cela correspond à ce que tu souhaites tu peux l'adapter ou je te le ferai

cordialement

36classeur1.xlsm (26.30 Ko)

Merci infiniment gullaud

C'est exactement ça que je souhaite faire. Je vais essayer de l'adapter à mon fichier et je te tiens informé.

Merci encore

Bonjour gullaud,

Depuis hier je suis dessus, et sincèrement je n'y arrive pas. En faite la complication vient du faite qu'il faut que pour chaque salarié, il doit remplir la croix grace aux checkbox dans les cellules de la ligne du salarié, pour résumer, un salarié et des croix sur le salarié concerné, etc...

En fait, je pense que mon erreur vient du faite que je ne sais pas où placé le code vba que tu as écrit.

Peux tu m'aider stp ?

je regarde la semaine prochaine

peux-tu m'expliquer à quoi correspondent exactement les 2 feuilles BD_GLOBAL et BD_NON_CLOTURE

pour les croix, on ne travaille que sur la feuille "BD_NON_CLOTURE"

merci pour les éclaircissements

J'ai trouvé le programme très excellent. et vraiment complet. moi par compte je travail sur un programme de gestion des archives.

pouvez-vous m'aidez a insérer une formule pour faire des recherches. par description?

39basedd.xlsm (101.69 Ko)

Bonjour,

Je viens de modifier ton fichier, regardes si c'est ce que tu recherche !


Bonjour,

nakida, tu devrais ouvrir une nouvelle discussion car sinon, on va se mélanger les pinceaux et quand tu crée la discussion, essai d'être le plus précis possible sur ce que tu souhaites avoir comme résultat !

pouvez-vous m'aidez a insérer une formule pour faire des recherches. par description?

Tu veux quoi, une formule dans le classeur, une fonction de recherche en VBA ?

j'ai fait le travail "par salarié", vérifie que cela fonctionne

je ferai la suite après, si tu veux essayer pas de problème

j'ai du mal de comprendre ta façon de programmer

si tu es d'accord au mois de juin je pourrais tout réécrire, de façon plus simple

je n'ai pas compris comment fonctionne "Me.Enreg", comment cette variable a été définie et où

merci

Re,

Bonjour gullaud, ce n'est pas une variable mais un TextBox qui sert, à l'ouverture du formulaire, à indiquer le nombre d'enregistrements puis à la sélection dans la ListBox, à indiquer le numéro de ligne dans la feuille de calcul de l'élément sélectionné ! Numéro qui est stocké dans la dernière colonne de la ListBox

Merci infiniment gullaud,

Pour répondre à ta première question :

peux-tu m'expliquer à quoi correspondent exactement les 2 feuilles BD_GLOBAL et BD_NON_CLOTURE

pour les croix, on ne travaille que sur la feuille "BD_NON_CLOTURE"

merci pour les éclaircissements

REPONSE : BD_GLOBAL c'est la base de donnée générale, et BD_NON_CLOTURE c'est la base de donnée des salariés qui n'ont pas leur dossier clôturé, lorsque je souhaite imprimer la liste des salariés qui n'ont pas leur dossier clôturé j'aurai juste à cliquer sur le bouton DOSSIER NON CLOTURE (Cf boite de dialogue). Pour résumer, 2 base de données, la première c'est la base de donnée générale et la deuxième celle qui me permet de savoir qui n'est pas à jour dans son dossier.


Bonjour Theze,

C'est parfait mise à part le BOUTON CLOTURE qui doit se cocher AUTOMATIQUEMENT lorsque les trois boutons (signature, pièce d'identité et justificatif) SONT COCHES. Après je suis ouvert à tout, s'il le faut on supprimer le bouton clôturé et le faire sur la BD_GENERAL.

Qu'en penses tu ?

Pour répondre à ta seconde question gullaud,

j'ai fait le travail "par salarié", vérifie que cela fonctionne

je ferai la suite après, si tu veux essayer pas de problème

j'ai du mal de comprendre ta façon de programmer

si tu es d'accord au mois de juin je pourrais tout réécrire, de façon plus simple

je n'ai pas compris comment fonctionne "Me.Enreg", comment cette variable a été définie et où ?

REPONSE :

Comme je te le disais à l'origine, c'est un classeur que j'ai télécharger sur le net et que j'ai adapté au mieux à ma situation, je ne maitrise pas trop cette façon de programmer.

Et sincèrement je suis d'accord avec toi, si tu as plus de temps au mois de juin, je suis preneur pour un code plus simple et plus lisible.

Je te dis donc à bientôt

Et merci encore pour ta patience et ton aide.

Bonjour,

Voici le code qui permet de cocher "Cloturer" si les 3 autres sont cochées :

Private Sub ChkJustificatif_Click()

    Cocher

End Sub

Private Sub ChkP_Identite_Click()

    Cocher

End Sub

Private Sub ChkSignature_Click()

    Cocher

End Sub

Sub Cocher()

    ChkCloture.Value = ChkJustificatif.Value = True And ChkP_Identite.Value = True And ChkSignature.Value = True

End Sub

Comme je vois que tu es plutôt partis sur le projet de gullaud, je me retire de la discussion !

je vais commencer de tout réécrire

avant de démarrer j'ai quelques questions

1 : est-ce utile de faire des recherches par groupe et par compte BFCC?

2 : Quel rôle donnes-tu au bouton "validation ajouter modifier"

3 : risque-t-il d'avoir 2 salariés avec le même nom (si oui, comment penses-tu les distinguer)

je viens d'effectuer un premier travail

1 : afficher un salarié

2 : saisir un nouveau salarié

j'attends vos remarques et les réponses à mon envoi précedent

cordialement

Bonjour Theze

Il ne faut surtout pas le prendre dans ce sens là, l'union fait la force et j'apprécie énormément votre soutien et votre aide. Je m'efforce de répondre à chaque discussion et à chaque personne.

Le but est d'apprendre de nos erreurs, et si nous avons la chance d'avoir plusieurs avis pour mieux apprendre, je préfère cette situation.

Merci de rester dans la discussion Theze

Miloud


Bonjour gullaud

Pour répondre à tes interrogations :

avant de démarrer j'ai quelques questions

1 : est-ce utile de faire des recherches par groupe et par compte BFCC?

2 : Quel rôle donnes-tu au bouton "validation ajouter modifier"

3 : risque-t-il d'avoir 2 salariés avec le même nom (si oui, comment penses-tu les distinguer)

REPONSES :

1 : Oui parce que si je souhaite imprimer une liste par groupe ou par compte je souhaite que cela puisse se faire, d'autant plus que la suite du programme va permettre je l'espère à la suite de la sélection par groupe me permettre d'imprimer une liste par groupe ou bien encore si je souhaite une liste par n° compte BFCC, le but étant de créer des listes par filtre groupe, compte BFCC etc...

2 : Bouton Ajouter un salarié pour ajouter un salarié

Bouton Validation ajouter modifier pour valider une fiche salarié ou ajouter ou modifier une fiche salarié (c'est simplement pour distinguer le bouton ajouter un salarié nouveau

3 : Il peut y avoir un salarié avec plusieurs signatures donc plusieurs compte BFCC, au même titre il peut y avoir un salarié dans plusieurs groupes donc dans plusieurs compte BFCC. Par contre, je n'ai pas encore eu le cas d'un salarié avec le même nom qu'un autre salarié. Donc je ne sais pas trop comment les distingués.

Voilà j'espère avoir répondu à tes interrogations, n'hésites pas si tu veux plus de précisions


Gullaud,

Je viens de tester ton dernier fichier, il y a effectivement une amélioration dans le sens ou tu renseignes chaque textbox avec son libellé, ça donne une précision, par contre les deux listbox groupe et n° compte BFCC ne sont pas renseigné.

Est-ce normal ?

question :

1 : quand un salarié appartient à plusieurs groupes ou à plusieurs comptes BFCC, y-a-il plusieurs lignes dans les feuilles de calcul

il me semble que pour avancer dans le projet il est indispensable de pouvoir identifier de façon uniquer un salarié

2 : quand un salarié appartient à plusieurs groupes ou à plusieurs compte BFCC, peut-il y avoir une différence dans les cases à cocher (signature, pièces d'identité, justificatif domicile)

envisage toutes les situation possibles

réfléchi bien à tous ces problèmes maintenant, sinon j'ai peur d' être obligé de tout recommencer

REPONSES :

1 : quand un salarié appartient à plusieurs groupes ou à plusieurs comptes BFCC, y-a-il plusieurs lignes dans les feuilles de calcul

il me semble que pour avancer dans le projet il est indispensable de pouvoir identifier de façon uniquer un salarié.

Réponse 1 : je te confirme bien qu'un salarié peut avoir la possibilité d'être sur plusieurs groupes et donc peut avoir la signature dans plusieurs compte BFCC. Ce fichier permet simplement d'avoir un inventaire sous forme de listing par groupe de qui a la signature de tel ou tel groupe, et dans quel numéro de compte BFCC cette signature est attribué et pour quel salarié.

2 : quand un salarié appartient à plusieurs groupes ou à plusieurs compte BFCC, peut-il y avoir une différence dans les cases à cocher (signature, pièces d'identité, justificatif domicile)

envisage toutes les situation possibles

Réponse 2 : Oui il peut y avoir une différence, par exemple, un nouveau salarié arrive dans un groupe X, pour valider sa possibilité de pouvoir établir des chèques de tel groupe ou de tel compte, il a plusieurs obligations à respecter :

la première obligation : signature des documents bancaires

la seconde obligation : copie de la pièce d'identité

la troisième : copie d'un justificatif de domicile

le salarié peut donc faire la première obligation et la troisième, ou encore la seconde et la troisième, le but de ce fichier étant de repérer les dossiers non clôturés et de relancer les personnes afin d'y avoir un fichier complètement clôturé. Et le soucis chez nous, comme il y a beaucoup d'embouche, donc beaucoup de mouvement, le casse tête des signatures est devenu difficile à gérer, avec ce type de fichier, en un seul clic, nous aurons le listing des personnes à relancer pour clôturer son dossier.

Voilà toute l'histoire de ce fichier, un peu stressant voir émouvant

Rechercher des sujets similaires à "remplacer textbox checkbox"