Checkbox dans fomulaire - comment récupérer "cases cochées"

Bonjour a tous,

Je souhaite préciser avant tout que je débute dans l'utilisation/création de formulaire par VBA... J'espère donc être le plus clair possible pour expliquer ma problématique...

J'ai créé un userform pour le suivi de dossiers clients avec une combobox (pour rechercher le dossier concerné par le nom), des textbox (reprenant des info précises ex: nom, prénom, civilité......) et des checkbox pour des étapes dans le suivi de mon dossier (étape 1 validé, alors on coche la checkbox1, étape 2 validée, on coche la checkbox 2..... et ainsi de suite pour 17 checkbox)

Mon problème est le suivant :

Comment faire pour que, lorsque je visualise un dossier par le formulaire, les checkboxs cochées à la création du dossier ressortent cochées ?

Je ne sais pas comment traduire celà dans mon code VBA et à quel endroit le mettre (c'est vous dire mon niveau de connaissance en VBA.....)

Je joint la copie de mon fichier pour l'exemple, et vous remercie par avance pour votre aide.

A bientôt

148ecker.xlsm (151.51 Ko)

Bonjour,

Il y a plusieurs choix possibles. L'une des solutions est de compléter ton code suivant :

Private Sub Combobox1_Change()
    Dim Ligne As Long
    Dim I As Integer, J As Integer
    Dim TB
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    For I = 1 To 19
        Me.Controls("TB" & I) = Ws.Cells(Ligne, I + 0)
    Next I
J = 25
    For I = 1 To 17
        If Ws.Cells(Ligne, J) = "OUI" Then
            Me.Controls("CheckBox" & I).Value = True
        End If
        J = J + 1
    Next I
End Sub

@Raja: Salut! Tu m'as devancé, et toi tu sembles ne pas avoir de soucis avec le fichier

Bonjour ECKER,

Malheureusement j'ai de grosses difficultés pour ouvrir ton fichier (DTPickers non installés sur mon ordi, ce qui entraîne de nombreux messages d'erreur)

Pour ta demande, l'idée est la suivante:

Logiquement tu dois avoir une procédure ou un événement qui te permet de charger un dossier, c'est donc dans cette procédure que tu dois réaliser la "mise à jour" des checkboxes.

Etape 1: décocher toutes les checkbox (si pour une raison quelconque elles peuvent ne pas l'être)

for i = 1 to 17
Me.controls("Checkbox" & i).Value = False 'en supposans que tes checkbox sont nommées Checkbox1 puis Checkbox2 etc..
next i

Etape 2 et 3: récupérer le statut du dossier et cocher la checkbox associée.

Là ça va dépendre de ton fichier, mais une proposition:

Dim numStatut as Integer
numStatut = Sheets("nomFeuille").cells(numLigneDossier,colonneDuStatut).Value 'par exemple numStatut = 1
Me.controls("Checkbox" & numStatut).Value = True 'alors la checkbox1 va être cochée

Bonjour raja

Avant tout merci d'avoir pris le temps de me répondre.

J'ai essayé le code donné mais cela ne fonctionne malheureusement pas.

Peux être ai je un soucis ailleurs dans mon code ?

Concrètement avec le code donné les cases cochées lorsque je consulte un dossier ne correspondent pas. J'ai l'impression qu'il prend certaines case mais que par la suite ça ne change pas.

Désolé, Je suis vraiment nul....

Bonjour d3d9x

Merci également d'avoir pris le temps de me répondre.

Avant tout, je joint la copie de mon fichier en ayant supprimé les DTPicker. Tu pourras ainsi voir concrètement ce que je cherche à faire, même si tu a déjà compris ma problématique...

L'élément permettant de changer de dossier est ma ComboBox1 : charge le nom des clients.

J'imagine donc que je dois modifier "Private sub combobox_1 change()"

Par défaut, aucune checkbox n'est coché.

Encore merci par avance

Merci d'avoir pensé à moi dans le code de Raja, il suffit de remplacer le = "OUI" par = True

    For I = 1 To 17
        If Ws.Cells(Ligne, J) = True Then
            Me.Controls("CheckBox" & I).Value = True
        End If
        J = J + 1
    Next I

Cher d3d9x,

Merci à toi de prendre le temps de me répondre !!!!

J'ai appliqué la modification, et on s'en approche....

Au premier "dossier" consulté, j'ai bien les bonnes cases de cochées... C'est cool !

En revanche, lorsque je regarde un second dossier, il "cumul" les cases cochées au lieu de me montrer uniquement les cases cochées correspondantes à la bonne ligne uniquement.

Je ne sais pas si je suis clair....

Je joint le fichier (j'ai remplacé les DTpicker par des txtbox) avec 3 "dossiers exemple". Tu pourras essayer en recherchant un premier dossier par la combo tout en haut, puis en cherchant un second dossier...

Merci encore pour ton aide précieuse...

    For I = 1 To 17
        If Ws.Cells(Ligne, J) = True Then
            Me.Controls("CheckBox" & I).Value = True
        Else
            Me.Controls("CheckBox" & I).Value = False
        End If
        J = J + 1
    Next I

réglera le problème

d3d9x,

Tu es mon maître !!!!

Génial ! merci beaucoup !!!! ca marche !!!

Voilà un soucis de réglé !!! Bravo et encore MERCI !

Maintenant, il faut que je trouve comment indiquer mes dates avec des DTPicker (et non des TextBox)... En fait c'est le même problème qu'avec l'histoire des Checkbox...

Merci encore !

Pour les DTpickers je ne pourrai pas t'aider désolé, je te laisse entre les mains de Raja s'il le peut

Bonsoir d3d9x

C'est bien noté.

En tout cas, je te remercie encore pour avoir réglé le soucis des checkbox...

Peut être à bientôt ! Je pense que tu pourras voir encore d'autres demandes de ma part... Je n'ai pas fini avec ce fichier...

Et vu que je n'y connais rien......

Rechercher des sujets similaires à "checkbox fomulaire comment recuperer cases cochees"