XL 2019 CHECKBOX

cedric6705

XLDnaute Nouveau
Bonjour à tous chers Excelliens !

Je suis en train de monter un formulaire plutôt long, et je rencontre un petit problème.
En effet, j'aimerai pouvoir créer une inscription d'un étudiant, et pour cela, pour les TextBox je n'ai aucun problème ni pour les listes déroulantes, par contre pour les Checkbox c'est un peu problématique.
Quelqu'un pourrais me dire comment je peux ajouter sur mon code le fait que quand je coche ma case, un OK apparaisse dans ma BDD ? J'ai 15 cases à cocher à faire, un exemple me suffirait.
Je vous serai très reconnaissant.
Voici mon code:

'INSCRIPTION D'UN NOUVEL ETUDIANT - BOUTON INSCRIPTION

Private Sub cmdbINSCRIPTION_Click()
Dim derligne As Integer
If MsgBox("Attention, cette action va créer un nouvel étudiant. Si vous souhaitez modifier l'étudiant, utilisez l'action Valider les modifications. Confirmez-vous la création ?", vbYesNo, "CONFIRMER") = vbYes Then
derligne = Sheets("BDD ETUDIANTS").Range("A456541").End(xlUp).Row + 1

Cells(derligne, 1) = TBNomEtudiant.Value
Cells(derligne, 2) = TBPrenomEtudiant.Value
Cells(derligne, 3) = TBSection.Value
Cells(derligne, 4) = TBAdresseEtudiant.Value
Cells(derligne, 5) = TBCPEtudiant.Value
Cells(derligne, 6) = TBVilleEtudiant.Value
Cells(derligne, 7) = TBTelFixeEtudiant.Value
Cells(derligne, 8) = TBPortableEtudiant.Value
Cells(derligne, 9) = TBMailEtudiant.Value
Cells(derligne, 10) = cbbSexe.Value
Cells(derligne, 11) = TBDateNaissanceEtudiant.Value
Cells(derligne, 12) = TBVilleNaissanceEtudiant.Value
Cells(derligne, 13) = TBNationalite.Value
Cells(derligne, 14) = cbbPermis.Value
Cells(derligne, 15) = cbbVehicule.Value
Cells(derligne, 16) = cbbSituationActuelleEtudiant.Value
Cells(derligne, 17) = TBSACOMPLEMENTEtudiant.Value
Cells(derligne, 18) = TBActextra.Value
Cells(derligne, 19) = cbbSHN.Value
Cells(derligne, 20) = TBDiscipline.Value
Cells(derligne, 21) = cbbRQTH.Value
Cells(derligne, 22) = TBAnneeCursus1.Value
Cells(derligne, 23) = TBETS1.Value
Cells(derligne, 24) = TBClasse1.Value
Cells(derligne, 25) = TBDiplomePrepare1.Value
Cells(derligne, 26) = cbbObtenu1.Value
Cells(derligne, 27) = TBAnneeCursus2.Value
Cells(derligne, 28) = TBETS2.Value
Cells(derligne, 29) = TBClasse2.Value
Cells(derligne, 30) = TBDiplomePrepare2.Value
Cells(derligne, 31) = cbbObtenu2.Value
Cells(derligne, 32) = TBLV1.Value
Cells(derligne, 33) = cbbLV1.Value
Cells(derligne, 34) = TBLV2.Value
Cells(derligne, 35) = cbbLV2.Value
Cells(derligne, 36) = TBLV3.Value
Cells(derligne, 37) = cbbLV3.Value
Cells(derligne, 38) = cbbWORD.Value
Cells(derligne, 39) = cbbEXCEL.Value
Cells(derligne, 40) = cbbPPT.Value
Cells(derligne, 41) = TBDiplomeEleve.Value
Cells(derligne, 42) = cbbEntrepriseTrouvee.Value
Cells(derligne, 43) = TBBNomEntreprise.Value
Cells(derligne, 44) = TBNomMaitre.Value
Cells(derligne, 45) = TBPrenomMaitre.Value
Cells(derligne, 46) = TBFonctionMaitre.Value
Cells(derligne, 47) = TBTelFixeMaitre.Value
Cells(derligne, 48) = TBPortableMaitre.Value
Cells(derligne, 49) = TBMailMaitre.Value
Cells(derligne, 50) = TBSecteursEtudiant.Value
Cells(derligne, 51) = TBSecteurGeoEtudiant.Value
Cells(derligne, 52) = TBMoyenLocomotion.Value
Cells(derligne, 53) = TBTempsTransport.Value
Cells(derligne, 54) = TBDistanceMax.Value
Cells(derligne, 55) = TBConnu.Value
' ici, j'ai besoin d'ajouter le code pour ma case à cocher (j'en ai 15, 1 exemple me suffit :) ) Merci !


End If
End Sub
 
Solution
Bonjour à tous,
Voici un petit complément
Perso en principe je renomme pas mes controls cela permet de faire des boucles
Si tout les textbox et combobox sont nommés exemple avec "ctrbox" et 1 chiffre
ctrbox1 ctrbox2 ctrbox3 et ainsi de suite dans le même ordre que les colonnes
si les 15 Checkbox sont nommés aussi ctrbox56 et >57>58
on peut facilement coder comme ceci
VB:
For col =1 to 70 '55+15
Cells(derligne,col)=controls("ctrbox" & col)
Next
'et pour recharger l'user sur la ligne
For col =1 to 70 '55+15
controls("ctrbox" & col)=Cells(ligne,col)
Next

Bruno

Hasco

XLDnaute Barbatruc
Bonjour,

Ce pourrait-être quelque chose comme ça:
Cells(derligne,???) = iif(CheckBox1.Value,"Ok",Empty)

Petit conseil utilisez un bloc with...End with:
VB:
With Sheets("BDD ETUDIANTS")
    derligne = .Range("A456541").End(xlUp).Row + 1
' avec un point devant chaque Cells
    .Cells(derligne, 1) = TBNomEtudiant.Value
    .Cells(derligne, 2) = TBPrenomEtudiant.Val
'......suite
End With

Au cas où votre userform serait malencontreusement appelé à partir d'une autre feuille que "BDD ETUDIANTS" les informations s'y retrouvent tout de même.

Cordialement
 

cedric6705

XLDnaute Nouveau
Bonjour,

Ce pourrait-être quelque chose comme ça:
Cells(derligne,???) = iif(CheckBox1.Value,"Ok",Empty)

Petit conseil utilisez un bloc with...End with:
VB:
With Sheets("BDD ETUDIANTS")
    derligne = .Range("A456541").End(xlUp).Row + 1
' avec un point devant chaque Cells
    .Cells(derligne, 1) = TBNomEtudiant.Value
    .Cells(derligne, 2) = TBPrenomEtudiant.Val
'......suite
End With

Au cas où votre userform serait malencontreusement appelé à partir d'une autre feuille que "BDD ETUDIANTS" les informations s'y retrouvent tout de même.

Cordialement

Merci d'avoir répondu !
Merci pour le conseil pour With, end with. Mais comment je peux intégrer un message de validation alors ?
Concernant la formule pour ma checkbox, ça ne fonctionne pas ...
Merci de prendre le temps pour mon problème :)
 

youky(BJ)

XLDnaute Barbatruc
Bonjour à tous,
Voici un petit complément
Perso en principe je renomme pas mes controls cela permet de faire des boucles
Si tout les textbox et combobox sont nommés exemple avec "ctrbox" et 1 chiffre
ctrbox1 ctrbox2 ctrbox3 et ainsi de suite dans le même ordre que les colonnes
si les 15 Checkbox sont nommés aussi ctrbox56 et >57>58
on peut facilement coder comme ceci
VB:
For col =1 to 70 '55+15
Cells(derligne,col)=controls("ctrbox" & col)
Next
'et pour recharger l'user sur la ligne
For col =1 to 70 '55+15
controls("ctrbox" & col)=Cells(ligne,col)
Next

Bruno
 

Discussions similaires

Réponses
1
Affichages
426

Statistiques des forums

Discussions
293 047
Messages
1 928 124
Membres
183 853
dernier inscrit
ali1987