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+

Rechercher des sujets similaires à "probleme checkbox"