Problème de checkbox vers cellule
Bonjour à tous,
Je suis actuellement face à un problème en VBA, je vous explique :
J'ai créé un USF, ce dernier contient beaucoup de CheckBox, je voudrais que ces CheckBox renvois une croix dans un tableau excel apres avoir cliqué sur le bouton "nouveau defaut" puis passe a une nouvelle ligne.
Voici quand meme le fonctionnement du fichier :
Il y a un tableau nommé "BDD", ainsi qu'un USF nommé "généralité", tous les controles de ce USF correspondent à 1 ligne du tableau,
Pourriez-vous me dire comment codé ça... car j'ai essayé, mais je n'ai pas obtenu le résultat attendu.
Merci à tous
Bonne journée
Re-bonjour (enfin bonsoir)
Donc après quelques heures de recherche... je ne parvient pas a trouver le code qu'il me faut... je vous poste celui que j'ai fais :
Private Sub CB_est_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_est.Value Then
Sheets("BDD").Range("J" & i).Value = "X"
Else
Sheets("BDD").Range("J" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_extnonprotege_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_extnonprotege.Value Then
Sheets("BDD").Range("Q" & i).Value = "X"
Else
Sheets("BDD").Range("Q" & i).Value = ""
End If
Next
End Sub
Private Sub CB_extprotege_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_extprotege.Value Then
Sheets("BDD").Range("R" & i).Value = "X"
Else
Sheets("BDD").Range("R" & i).Value = ""
End If
Next
End Sub
Private Sub CB_interieur_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_interieur.Value Then
Sheets("BDD").Range("P" & i).Value = "X"
Else
Sheets("BDD").Range("P" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_nord_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_nord.Value Then
Sheets("BDD").Range("G" & i).Value = "X"
Else
Sheets("BDD").Range("G" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_ouest_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_ouest.Value Then
Sheets("BDD").Range("I" & i).Value = "X"
Else
Sheets("BDD").Range("I" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_plafond_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_plafond.Value Then
Sheets("BDD").Range("M" & i).Value = "X"
Else
Sheets("BDD").Range("M" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_plancher_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_plancher.Value Then
Sheets("BDD").Range("K" & i).Value = "X"
Else
Sheets("BDD").Range("K" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_poteau_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_poteau.Value Then
Sheets("BDD").Range("O" & i).Value = "X"
Else
Sheets("BDD").Range("O" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_poutre_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_poutre.Value Then
Sheets("BDD").Range("N" & i).Value = "X"
Else
Sheets("BDD").Range("N" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_radier_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_radier.Value Then
Sheets("BDD").Range("L" & i).Value = "X"
Else
Sheets("BDD").Range("L" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_salleoui_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_salleoui.Value Then
Sheets("BDD").Range("W" & i).Value = "X"
Else
Sheets("BDD").Range("W" & i).Value = ""
End If
Next i
End Sub
Private Sub CB_sud_Click()
Dim i As Byte
ligne_fin = 6 + i
For i = 6 To ligne_fin
If CB_sud.Value Then
Sheets("BDD").Range("H" & i).Value = "X"
Else
Sheets("BDD").Range("H" & i).Value = ""
End If
Next i
End Sub
Private Sub CommandButton1_Click()
info_gen.Show
End Sub
Private Sub CommandButton3_Click()
Dim i As Byte
Dim INB, BAT, NIV, SALLE1, SALLE2, ANFM As String
Dim L As Integer
INB = TB_inb.Value
BAT = TB_bat.Value
NIV = TB_niv.Value
SALLE1 = TB_salle1.Value
SALLE2 = TB_salle2.Value
ANFM = TB_anfm.Value
'nb = Sheets("BDD").Range("A3").Value
'ligne_fin = 6 + i
For i = 6 To ligne_fin
If Sheets("BDD").Range("G" & i).Value = "X" Then
CB_nord.Value = True
Else
CB_nord.Value = False
End If
If Sheets("BDD").Range("H" & i).Value = "X" Then
CB_sud.Value = True
Else
CB_sud.Value = False
End If
If Sheets("BDD").Range("I" & i).Value = "X" Then
CB_ouest.Value = True
Else
CB_ouest.Value = False
End If
If Sheets("BDD").Range("J" & i).Value = "X" Then
CB_est.Value = True
Else
CB_est.Value = False
End If
If Sheets("BDD").Range("K" & i).Value = "X" Then
CB_plancher.Value = True
Else
CB_plancher.Value = False
End If
If Sheets("BDD").Range("L" & i).Value = "X" Then
CB_radier.Value = True
Else
CB_radier.Value = False
End If
If Sheets("BDD").Range("M" & i).Value = "X" Then
CB_plafond.Value = True
Else
CB_plafond.Value = False
End If
If Sheets("BDD").Range("N" & i).Value = "X" Then
CB_poutre.Value = True
Else
CB_poutre.Value = False
End If
If Sheets("BDD").Range("O" & i).Value = "X" Then
CB_poteau.Value = True
Else
CB_poteau.Value = False
End If
If Sheets("BDD").Range("P" & i).Value = "X" Then
CB_interieur.Value = True
Else
CB_interieur.Value = False
End If
If Sheets("BDD").Range("Q" & i).Value = "X" Then
CB_extnonprotege.Value = True
Else
CB_extnonprotege.Value = False
End If
If Sheets("BDD").Range("R" & i).Value = "X" Then
CB_extprotege.Value = True
Else
CB_extprotege.Value = False
End If
If Sheets("BDD").Range("W" & i).Value = "X" Then
CB_salleoui.Value = True
Else
CB_salleoui.Value = False
End If
Next i
With Sheets("BDD")
.Range("A" & i) = INB
.Range("B" & i) = BAT
.Range("C" & i) = NIV
.Range("D" & i) = SALLE1
.Range("E" & i) = SALLE2
.Range("F" & i) = ANFM
End With
ligne_fin = ligne_fin + 1
ActiveCell.Offset(1, 0).Activate
End Sub
Je pense qu'il y a des erreurs... je voudrais que lorsque j'ai renseigné toutes les information nécéssaires puis, que je clique sur mon bouton "Nouveau défaut", il mette les donnée au bon endroit et passe à la ligne suivante...
Chaque checkbox, lorsque qu'elle sont cochée m'affiche une X dans le tableau
Je vous remercie pour votre aide
Bonjour a tous,
Donc apres plusieurs recherche, j'ai fini par voir que mon code était tres tres tres mauvais, je l'ai donc réécrit, mais je n'arrive toujours pas a faire comprendre a VBA qu'une fois que je clique sur mon bouton "Nouveau défaut" il me mette les future valeur en dessous...
Voici mon code réécrit :
Private Sub CommandButton3_Click()
'Variable info site
Dim INB, BAT, NIV, SALLE1, SALLE2, ANFM As String
'Variable Orientation mur
Dim NORD, SUD, OUEST, EST
'Variable localisation du defaut
Dim PLANCHER, RADIER, PLAFOND, POUTRE, POTEAU
'Variable accessibilité de la salle
Dim SALLEOUI, SALLENON, RISQUERADIO, COURS, PERTURBEXPLOIT, TRXAUTRES As String
'Variable environnement (col 16,17,18)
Dim INTERIEUR, EXTPROTEGE, EXTNONPROTEGE As String
Dim l As Integer
Dim ligne_fin As Long
ligne_fin = Cells.Find("*", Range("A6"), , , xlByRows, xlPrevious).Row
INB = TB_inb.Value
BAT = TB_bat.Value
NIV = TB_niv.Value
SALLE1 = TB_salle1.Value
SALLE2 = TB_salle2.Value
ANFM = TB_anfm.Value
NORD = CB_nord.Value
SUD = CB_sud.Value
OUEST = CB_ouest.Value
EST = CB_est.Value
PLANCHER = CB_plancher.Value
RADIER = CB_radier.Value
PLAFOND = CB_plafond.Value
POUTRE = CB_poutre.Value
POTEAU = CB_poteau.Value
INTERIEUR = CB_interieur.Value
EXTPROTEGE = CB_extprotege.Value
EXTNONPROTEGE = CB_extnonprotege.Value
SALLEOUI = CB_salleoui.Value
SALLENON = CB_sallenon.Value
RISQUERADIO = CB_risqueradio.Value
TRXCOURS = CB_trxcours.Value
PERTURBEXPLOIT = CB_perturbexploit.Value
AUTRES = CB_autres.Value
'Code information du site
Sheets("BDD").Cells(6, 1).Value = INB
Sheets("BDD").Cells(6, 2).Value = BAT
Sheets("BDD").Cells(6, 3).Value = NIV
Sheets("BDD").Cells(6, 4).Value = SALLE1
Sheets("BDD").Cells(6, 5).Value = SALLE2
Sheets("BDD").Cells(6, 6).Value = ANFM
'Code orientation du mur
If NORD = True Then 'Si coché ...
Sheets("BDD").Cells(6, 7).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 7).Value = ""
End If
If SUD = True Then 'Si coché ...
Sheets("BDD").Cells(6, 8).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 8).Value = ""
End If
If OUEST = True Then 'Si coché ...
Sheets("BDD").Cells(6, 9).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 9).Value = ""
End If
'Code localisation du defaut
If EST = True Then 'Si coché ...
Sheets("BDD").Cells(6, 10).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 10).Value = ""
End If
If PLANCHER = True Then 'Si coché ...
Sheets("BDD").Cells(6, 11).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 11).Value = ""
End If
If RADIER = True Then 'Si coché ...
Sheets("BDD").Cells(6, 12).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 12).Value = ""
End If
If PLAFOND = True Then 'Si coché ...
Sheets("BDD").Cells(6, 13).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 13).Value = ""
End If
If POUTRE = True Then 'Si coché ...
Sheets("BDD").Cells(6, 14).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 14).Value = ""
End If
If POTEAU = True Then 'Si coché ...
Sheets("BDD").Cells(6, 15).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 15).Value = ""
End If
'Code environnement
If INTERIEUR = True Then 'Si coché ...
Sheets("BDD").Cells(6, 16).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 16).Value = ""
End If
If EXTPROTEGE = True Then 'Si coché ...
Sheets("BDD").Cells(6, 17).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 17).Value = ""
End If
If EXTNONPROTEGE = True Then 'Si coché ...
Sheets("BDD").Cells(6, 18).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 18).Value = ""
End If
'Code accessibilité de la salle
If SALLEOUI = True Then 'Si coché ...
Sheets("BDD").Cells(6, 23).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 23).Value = ""
End If
If RISQUERADIO = True Then 'Si coché ...
Sheets("BDD").Cells(6, 24).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 24).Value = ""
End If
If TRXCOURS = True Then 'Si coché ...
Sheets("BDD").Cells(6, 25).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 25).Value = ""
End If
If PERTURBEXPLOIT = True Then 'Si coché ...
Sheets("BDD").Cells(6, 26).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 26).Value = ""
End If
If AUTRES = True Then 'Si coché ...
Sheets("BDD").Cells(6, 27).Value = "X"
Else 'Si non coché ...
Sheets("BDD").Cells(6, 27).Value = ""
End If
l = ligne_fin + 1 'passage a la ligne mais ça ne fonctionne pas
'Code accessibilité de la fissure
End Sub
Biensur le code n'est pas fini mais si vous pouviez au moins me dire comment passer a la ligne pour un nouveau défaut
Je vous remercie
Bonjour,
Fournir le fichier SVP
A+