Excel et checkbox
butters9547
Messages postés
244
Statut
Membre
-
butters9547 Messages postés 244 Statut Membre -
butters9547 Messages postés 244 Statut Membre -
Bonjour,
je voudrais savoir si il serait possible que lorsque je coche mes checkbox, s'affiche "oui" ou "non" nan le tableau excel au lieu de "vrai" ou "faux".
un 2eme petit soucis, c'est lorsque je coche mes fameuses chackbox ^^, il s'affiche effectivement vrai ou faux mais si je les coches pas du tout elles affichent "faux". alors je voudrais savoir si il est possible qu'elles affichent quelque chose seulement si elles sont coché.
j'espère avoir été un peu clair et merci de votre aide
voici mon code au cas ou :
Private Sub cmdcreer_Click()
Dim conf
' Contrôle de saisie du nom.
If Me.Txtnom.Text = "" Then 'si le champ de saisie du nom est vide alors'
Beep 'bip sonore'
MsgBox "Vous devez entrer un nom." 'fenêtre d'information qui prévient qu'il faut saisir un nom'
Me.Txtnom.SetFocus
Exit Sub
End If
' Contrôle de saisie du prénom.
If Me.Txtprenom.Text = "" Then 'si le champ de saisie du prénom est vide alors'
Beep 'un bip sonore'
MsgBox "Vous devez entrer un prénom." 'une fenête apparait et préviens qu'il faut saisir un prénom'
Me.Txtprenom.SetFocus
Exit Sub
End If
'Contrôle de saisie de la date de validité'
If Me.CheckBox5.Value = True And Me.Txtvalidite = "" Then
Beep
MsgBox "Vous devez saisir une date de validité."
Me.Txtvalidite.SetFocus
Exit Sub
End If
' Mise en place des données dans la feuille de calcul Excel'
AppExcel.Worksheets("Feuil1").Hyperlinks.Add Anchor:=Range("B65536").End(x1up).Offset(1, 0).Value = Me.Txtnom.Text, _
SubAddress:="feuil1!B2"
'colonne des arrivées'
Sheets("Feuil1").Range("B65536").End(xlUp).Offset(1, 0).Value = Me.Txtnom.Text
Sheets("Feuil1").Range("C65536").End(xlUp).Offset(1, 0).Value = Me.Txtprenom.Text
Sheets("Feuil1").Range("D65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatearrive.Text
Sheets("Feuil1").Range("E65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox1.Value
Sheets("Feuil1").Range("F65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox3.Value
Sheets("Feuil1").Range("G65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox4.Value
Sheets("Feuil1").Range("H65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox5.Value
Sheets("Feuil1").Range("I65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox6.Value
Sheets("Feuil1").Range("J65536").End(xlUp).Offset(1, 0).Value = Me.Txtvalidite.Text
Sheets("Feuil1").Range("K65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox7.Value
Sheets("Feuil1").Range("L65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox8.Value
Sheets("Feuil1").Range("M65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox9.Value
Sheets("Feuil1").Range("N65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox10.Value
Sheets("Feuil1").Range("O65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox11.Value
Sheets("Feuil1").Range("P65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox12.Value
Sheets("Feuil1").Range("Q65536").End(xlUp).Offset(1, 0).Value = Me.Txtacces.Text
Sheets("Feuil1").Range("R65536").End(xlUp).Offset(1, 0).Value = Me.Txtemp.Text
'colonne des départs'
Sheets("Feuil1").Range("T65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatedepart.Text
Sheets("Feuil1").Range("U65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox23.Value
Sheets("Feuil1").Range("V65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox24.Value
Sheets("Feuil1").Range("W65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox25.Value
Sheets("Feuil1").Range("X65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox26.Value
Sheets("Feuil1").Range("Y65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox27.Value
Sheets("Feuil1").Range("Z65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox28.Value
Sheets("Feuil1").Range("AA65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox29.Value
Sheets("Feuil1").Range("AB65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox30.Value
Sheets("Feuil1").Range("AC65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox31.Value
Sheets("Feuil1").Range("AD65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox32.Value
Unload Me 'De cette façon, à la prochaine saisie, les textbox seront vides à l'ouverture'
'message de confirmation de la saisie'
conf = MsgBox("saisie correctement effectuée", vbInformation + vbYes + 256, "Confirmation")
End Sub
voila ^^
je voudrais savoir si il serait possible que lorsque je coche mes checkbox, s'affiche "oui" ou "non" nan le tableau excel au lieu de "vrai" ou "faux".
un 2eme petit soucis, c'est lorsque je coche mes fameuses chackbox ^^, il s'affiche effectivement vrai ou faux mais si je les coches pas du tout elles affichent "faux". alors je voudrais savoir si il est possible qu'elles affichent quelque chose seulement si elles sont coché.
j'espère avoir été un peu clair et merci de votre aide
voici mon code au cas ou :
Private Sub cmdcreer_Click()
Dim conf
' Contrôle de saisie du nom.
If Me.Txtnom.Text = "" Then 'si le champ de saisie du nom est vide alors'
Beep 'bip sonore'
MsgBox "Vous devez entrer un nom." 'fenêtre d'information qui prévient qu'il faut saisir un nom'
Me.Txtnom.SetFocus
Exit Sub
End If
' Contrôle de saisie du prénom.
If Me.Txtprenom.Text = "" Then 'si le champ de saisie du prénom est vide alors'
Beep 'un bip sonore'
MsgBox "Vous devez entrer un prénom." 'une fenête apparait et préviens qu'il faut saisir un prénom'
Me.Txtprenom.SetFocus
Exit Sub
End If
'Contrôle de saisie de la date de validité'
If Me.CheckBox5.Value = True And Me.Txtvalidite = "" Then
Beep
MsgBox "Vous devez saisir une date de validité."
Me.Txtvalidite.SetFocus
Exit Sub
End If
' Mise en place des données dans la feuille de calcul Excel'
AppExcel.Worksheets("Feuil1").Hyperlinks.Add Anchor:=Range("B65536").End(x1up).Offset(1, 0).Value = Me.Txtnom.Text, _
SubAddress:="feuil1!B2"
'colonne des arrivées'
Sheets("Feuil1").Range("B65536").End(xlUp).Offset(1, 0).Value = Me.Txtnom.Text
Sheets("Feuil1").Range("C65536").End(xlUp).Offset(1, 0).Value = Me.Txtprenom.Text
Sheets("Feuil1").Range("D65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatearrive.Text
Sheets("Feuil1").Range("E65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox1.Value
Sheets("Feuil1").Range("F65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox3.Value
Sheets("Feuil1").Range("G65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox4.Value
Sheets("Feuil1").Range("H65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox5.Value
Sheets("Feuil1").Range("I65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox6.Value
Sheets("Feuil1").Range("J65536").End(xlUp).Offset(1, 0).Value = Me.Txtvalidite.Text
Sheets("Feuil1").Range("K65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox7.Value
Sheets("Feuil1").Range("L65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox8.Value
Sheets("Feuil1").Range("M65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox9.Value
Sheets("Feuil1").Range("N65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox10.Value
Sheets("Feuil1").Range("O65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox11.Value
Sheets("Feuil1").Range("P65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox12.Value
Sheets("Feuil1").Range("Q65536").End(xlUp).Offset(1, 0).Value = Me.Txtacces.Text
Sheets("Feuil1").Range("R65536").End(xlUp).Offset(1, 0).Value = Me.Txtemp.Text
'colonne des départs'
Sheets("Feuil1").Range("T65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatedepart.Text
Sheets("Feuil1").Range("U65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox23.Value
Sheets("Feuil1").Range("V65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox24.Value
Sheets("Feuil1").Range("W65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox25.Value
Sheets("Feuil1").Range("X65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox26.Value
Sheets("Feuil1").Range("Y65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox27.Value
Sheets("Feuil1").Range("Z65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox28.Value
Sheets("Feuil1").Range("AA65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox29.Value
Sheets("Feuil1").Range("AB65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox30.Value
Sheets("Feuil1").Range("AC65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox31.Value
Sheets("Feuil1").Range("AD65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox32.Value
Unload Me 'De cette façon, à la prochaine saisie, les textbox seront vides à l'ouverture'
'message de confirmation de la saisie'
conf = MsgBox("saisie correctement effectuée", vbInformation + vbYes + 256, "Confirmation")
End Sub
voila ^^
A voir également:
- Excel et checkbox
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
15 réponses
Bonjour,
Commence par remplacer ce code..
Simplifie ton code et répond à ta 1ère question
2°) faut choisir, ont écrit Non ou bien ont écrit rien ?? si tu veux que ça n'écrive rien tu remplace les "Non" par ""
Mais il y a moyen d'optimiser ton code encore beaucoup plus
A+
Commence par remplacer ce code..
Dim Lig As Long
'colonne des arrivées'
With Sheets("Feuil1")
Lig = .Range("B65536").End(xlUp) + 1
.Range("B" & Lig) = Txtnom
.Range("C" & Lig) = Txtprenom
.Range("D" & Lig) = Txtdatearrive
.Range("E" & Lig) = IIf(CheckBox1, "Oui", "Non")
.Range("F" & Lig) = IIf(CheckBox3, "Oui", "Non")
.Range("G" & Lig) = IIf(CheckBox4, "Oui", "Non")
.Range("H" & Lig) = IIf(CheckBox5, "Oui", "Non")
.Range("I" & Lig) = IIf(CheckBox6, "Oui", "Non")
.Range("J" & Lig) = Txtvalidite
.Range("K" & Lig) = IIf(CheckBox7, "Oui", "Non")
.Range("L" & Lig) = IIf(CheckBox8, "Oui", "Non")
.Range("M" & Lig) = IIf(CheckBox9, "Oui", "Non")
.Range("N" & Lig) = IIf(CheckBox10, "Oui", "Non")
.Range("O" & Lig) = IIf(CheckBox11, "Oui", "Non")
.Range("P" & Lig) = IIf(CheckBox12, "Oui", "Non")
.Range("Q" & Lig) = Txtacces
.Range("R" & Lig) = Txtemp
End With
Simplifie ton code et répond à ta 1ère question
2°) faut choisir, ont écrit Non ou bien ont écrit rien ?? si tu veux que ça n'écrive rien tu remplace les "Non" par ""
Mais il y a moyen d'optimiser ton code encore beaucoup plus
A+
Pour simplifier..
'Dans les propriétés Tag des contrôles mette le N° de la colonne.
'dans le design.. Propriétés >> dans le bas de la fenêtre tu a Tag
'Exemple:
'pour Txtnom tu met 2 (colonne B = 2)
'Txtprenom tu met 3
'Txtdatearrive tu met 4
'CheckBox1 tu met 5
'CheckBox3 tu met 6
'Etc.. pour arriver à
'Txtemp avec 18
'ensuite le code..
Pour remplir l'UF avec des données déja entrées, ou vider l'UF, tu peu façilement faire l'inverse.
A+
'Dans les propriétés Tag des contrôles mette le N° de la colonne.
'dans le design.. Propriétés >> dans le bas de la fenêtre tu a Tag
'Exemple:
'pour Txtnom tu met 2 (colonne B = 2)
'Txtprenom tu met 3
'Txtdatearrive tu met 4
'CheckBox1 tu met 5
'CheckBox3 tu met 6
'Etc.. pour arriver à
'Txtemp avec 18
'ensuite le code..
'colonne des arrivées'
Dim Lig As Long, Ctl As Control
With Sheets("Feuil1")
Lig = .Range("B65536").End(xlUp) + 1
For Each Ctl In Me.Controls
If Ctl.Tag <> "" Then
If TypeOf Ctl Is TextBox Then
.Cells(Lig, Val(cel.Tag)) = Ctl
ElseIf TypeOf Ctl Is CheckBox Then
If cel.Value Then .Cells(Lig, Val(cel.Tag)) = "Oui"
End If
End If
Next Ctl
End With
Pour remplir l'UF avec des données déja entrées, ou vider l'UF, tu peu façilement faire l'inverse.
A+
le 1er code que tu ma donnée marche pas y'a une erreur à ce niveau :
Lig = .Range("B65536").End(xlUp) + 1
Lig = .Range("B65536").End(xlUp) + 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
y'a une erreur à ce niveau ... Par fort explicit ça, quel est l'erreur affichée ??
Parce que la ligne de code n'en a pas.
Parce que la ligne de code n'en a pas.
sa me dit :
Erreur d'exécution '13' :
incompatibilité de type
et y'a le truc pour faire débogage
et cette ligne la apparait en jaune surligné
Lig = .Range("B65536").End(xlUp) + 1
Erreur d'exécution '13' :
incompatibilité de type
et y'a le truc pour faire débogage
et cette ligne la apparait en jaune surligné
Lig = .Range("B65536").End(xlUp) + 1
C'est que tu emploi la variable Lig ailleur et sous un autre format.
Change toute les variable Lig par LigFin
A+
Change toute les variable Lig par LigFin
Dim LigFin As Long
'colonne des arrivées'
With Sheets("Feuil1")
LigFin = .Range("B65536").End(xlUp) + 1
.Range("B" & LigFin) = Txtnom
.Range("C" & LigFin) = Txtprenom
.Range("D" & LigFin) = Txtdatearrive
.Range("E" & LigFin) = IIf(CheckBox1, "Oui", "Non")
.Range("F" & LigFin) = IIf(CheckBox3, "Oui", "Non")
.Range("G" & LigFin) = IIf(CheckBox4, "Oui", "Non")
.Range("H" & LigFin) = IIf(CheckBox5, "Oui", "Non")
.Range("I" & LigFin) = IIf(CheckBox6, "Oui", "Non")
.Range("J" & LigFin) = Txtvalidite
.Range("K" & LigFin) = IIf(CheckBox7, "Oui", "Non")
.Range("L" & LigFin) = IIf(CheckBox8, "Oui", "Non")
.Range("M" & LigFin) = IIf(CheckBox9, "Oui", "Non")
.Range("N" & LigFin) = IIf(CheckBox10, "Oui", "Non")
.Range("O" & LigFin) = IIf(CheckBox11, "Oui", "Non")
.Range("P" & LigFin) = IIf(CheckBox12, "Oui", "Non")
.Range("Q" & LigFin) = Txtacces
.Range("R" & LigFin) = Txtemp
End With
A+
rofl je désespère la
sa me donne la même erreur
je pense pas que sa vienne de la variable du coup si ??
sa me donne la même erreur
je pense pas que sa vienne de la variable du coup si ??
Tu raconte des carabistouilles.....grosses comme une maison.....
Impossible que ça plante sur la ligne que tu dit parce qu'avec la ligne...
c'est IMPOSSIBLE QUE TU PASSE CETTE LIGNE !!!!!!!!!!!!!!!!!!!!!!!!!!
Enfin, je vais me montrer bon prince malgrés ça..
Supprime cette ligne et tu remet...
Prochaine fois... je te tire les oreilles :D
Impossible que ça plante sur la ligne que tu dit parce qu'avec la ligne...
AppExcel.Worksheets("Feuil1").Hyperlinks.Add Anchor:=Range("B65536").End(x1up).Offset(1, 0).Value = Me.Txtnom.Text, _
SubAddress:="feuil1!B2"
c'est IMPOSSIBLE QUE TU PASSE CETTE LIGNE !!!!!!!!!!!!!!!!!!!!!!!!!!
Enfin, je vais me montrer bon prince malgrés ça..
Supprime cette ligne et tu remet...
'colonne des arrivées'
Dim Lig As Long, Ctl As Control
With Sheets("Feuil1")
Lig = .Range("B65536").End(xlUp) + 1
.Hyperlinks.Add Anchor:=.Range("B" & Lig), Address:="", SubAddress:= _
"Feuil1!B2", TextToDisplay:=Txtnom
For Each Ctl In Me.Controls
'Et la suite...
Prochaine fois... je te tire les oreilles :D
si j'enlève cette ligne : AppExcel.Worksheets("Feuil1").Hyperlinks.Add Anchor:=Range("B65536").End(x1up).Offset(1, 0).Value = Me.Txtnom.Text, _
SubAddress:="feuil1!B2"
le code que tu ma donné plus haut devrait marcher alors ???
sa fait mal les oreilles :D
SubAddress:="feuil1!B2"
le code que tu ma donné plus haut devrait marcher alors ???
sa fait mal les oreilles :D
j'ai enlevé la ligne mais y'a toujours un problème au même niveau. y'a toujours un débogage sur la même ligne
snif
snif
Private Sub cmdcreer_Click()
Dim conf
Dim reponse As Long
' Contrôle de saisie du nom.
If Me.Txtnom.Text = "" Then 'si le champ de saisie du nom est vide alors'
Beep 'bip sonore'
MsgBox "Vous devez entrer un nom." 'fenêtre d'information qui prévient qu'il faut saisir un nom'
Me.Txtnom.SetFocus
Exit Sub
End If
'Contrôle de saisie du prénom.
If Me.Txtprenom.Text = "" Then 'si le champ de saisie du prénom est vide alors'
Beep 'un bip sonore'
MsgBox "Vous devez entrer un prénom." 'une fenête apparait et préviens qu'il faut saisir un prénom'
Me.Txtprenom.SetFocus
Exit Sub
End If
' Mise en place des données dans la feuille de calcul Excel'
With Sheets("Feuil1")
reponse = .Range("B65536").End(xlUp) + 1
.Range("B" & reponse) = Txtnom
.Range("C" & reponse) = Txtprenom
.Range("D" & reponse) = Txtdatearrive
.Range("E" & reponse) = IIf(CheckBox1, "Oui", "Non")
.Range("F" & reponse) = IIf(CheckBox3, "Oui", "Non")
.Range("G" & reponse) = IIf(CheckBox4, "Oui", "Non")
.Range("H" & reponse) = IIf(CheckBox5, "Oui", "Non")
.Range("I" & reponse) = IIf(CheckBox6, "Oui", "Non")
.Range("J" & reponse) = Txtvalidite
.Range("K" & reponse) = IIf(CheckBox7, "Oui", "Non")
.Range("L" & reponse) = IIf(CheckBox8, "Oui", "Non")
.Range("M" & reponse) = IIf(CheckBox9, "Oui", "Non")
.Range("N" & reponse) = IIf(CheckBox10, "Oui", "Non")
.Range("O" & reponse) = IIf(CheckBox11, "Oui", "Non")
.Range("P" & reponse) = IIf(CheckBox12, "Oui", "Non")
.Range("Q" & reponse) = Txtacces
.Range("R" & reponse) = Txtemp
End With
Unload Me 'De cette façon, à la prochaine saisie, les textbox seront vides à l'ouverture'
'message de confirmation de la saisie'
conf = MsgBox("saisie correctement effectuée", vbInformation + vbYes + 256, "Confirmation")
End Sub
je redonne le code au cas ou ^^
Dim conf
Dim reponse As Long
' Contrôle de saisie du nom.
If Me.Txtnom.Text = "" Then 'si le champ de saisie du nom est vide alors'
Beep 'bip sonore'
MsgBox "Vous devez entrer un nom." 'fenêtre d'information qui prévient qu'il faut saisir un nom'
Me.Txtnom.SetFocus
Exit Sub
End If
'Contrôle de saisie du prénom.
If Me.Txtprenom.Text = "" Then 'si le champ de saisie du prénom est vide alors'
Beep 'un bip sonore'
MsgBox "Vous devez entrer un prénom." 'une fenête apparait et préviens qu'il faut saisir un prénom'
Me.Txtprenom.SetFocus
Exit Sub
End If
' Mise en place des données dans la feuille de calcul Excel'
With Sheets("Feuil1")
reponse = .Range("B65536").End(xlUp) + 1
.Range("B" & reponse) = Txtnom
.Range("C" & reponse) = Txtprenom
.Range("D" & reponse) = Txtdatearrive
.Range("E" & reponse) = IIf(CheckBox1, "Oui", "Non")
.Range("F" & reponse) = IIf(CheckBox3, "Oui", "Non")
.Range("G" & reponse) = IIf(CheckBox4, "Oui", "Non")
.Range("H" & reponse) = IIf(CheckBox5, "Oui", "Non")
.Range("I" & reponse) = IIf(CheckBox6, "Oui", "Non")
.Range("J" & reponse) = Txtvalidite
.Range("K" & reponse) = IIf(CheckBox7, "Oui", "Non")
.Range("L" & reponse) = IIf(CheckBox8, "Oui", "Non")
.Range("M" & reponse) = IIf(CheckBox9, "Oui", "Non")
.Range("N" & reponse) = IIf(CheckBox10, "Oui", "Non")
.Range("O" & reponse) = IIf(CheckBox11, "Oui", "Non")
.Range("P" & reponse) = IIf(CheckBox12, "Oui", "Non")
.Range("Q" & reponse) = Txtacces
.Range("R" & reponse) = Txtemp
End With
Unload Me 'De cette façon, à la prochaine saisie, les textbox seront vides à l'ouverture'
'message de confirmation de la saisie'
conf = MsgBox("saisie correctement effectuée", vbInformation + vbYes + 256, "Confirmation")
End Sub
je redonne le code au cas ou ^^
Bon... ça commence à bien faire, met ton classeur su Cjoint.com et tu met le lien sur un poste suivant.
A+
A+
je mets le classeur
svp vraiment besoin d'aide et je sais pourquoi sa marche pas :s
https://www.cjoint.com/?gpq4JEg4ls
svp vraiment besoin d'aide et je sais pourquoi sa marche pas :s
https://www.cjoint.com/?gpq4JEg4ls