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

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
Repose en paix
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

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
4
Affichages
433
Réponses
0
Affichages
328
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…