Raccourcicement d'un code

Salut !

Je poste ici pour demander une méthode afin de raccourcir mon code ci-dessous.

Private Sub CommandButton1_Click()
Dim note As Date
note = DatePart("m", Date)

Choix = TextBox_Choix.Value

If Choix = "Croix Changée" And note = 1 Then
Sheets("Feuil1").Range("C4").Value = Sheets("Feuil1").Range("C4").Value + 1
Sheets("Feuil2").Range("B3").Value = Sheets("Feuil2").Range("B3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 2 Then
    Sheets("Feuil1").Range("D4").Value = Sheets("Feuil1").Range("D4").Value + 1
    Sheets("Feuil2").Range("C3").Value = Sheets("Feuil2").Range("C3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 3 Then
    Sheets("Feuil1").Range("E4").Value = Sheets("Feuil1").Range("E4").Value + 1
    Sheets("Feuil2").Range("D3").Value = Sheets("Feuil2").Range("D3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 4 Then
    Sheets("Feuil1").Range("F4").Value = Sheets("Feuil1").Range("F4").Value + 1
    Sheets("Feuil2").Range("E3").Value = Sheets("Feuil2").Range("E3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 5 Then
    Sheets("Feuil1").Range("G4").Value = Sheets("Feuil1").Range("G4").Value + 1
    Sheets("Feuil2").Range("F3").Value = Sheets("Feuil2").Range("F3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 6 Then
    Sheets("Feuil1").Range("H4").Value = Sheets("Feuil1").Range("H4").Value + 1
    Sheets("Feuil2").Range("G3").Value = Sheets("Feuil2").Range("G3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 7 Then
    Sheets("Feuil1").Range("I4").Value = Sheets("Feuil1").Range("I4").Value + 1
    Sheets("Feuil2").Range("H3").Value = Sheets("Feuil2").Range("H3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 8 Then
    Sheets("Feuil1").Range("J4").Value = Sheets("Feuil1").Range("J4").Value + 1
    Sheets("Feuil2").Range("I3").Value = Sheets("Feuil2").Range("I3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 9 Then
    Sheets("Feuil1").Range("K4").Value = Sheets("Feuil1").Range("K4").Value + 1
    Sheets("Feuil2").Range("J3").Value = Sheets("Feuil2").Range("J3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 10 Then
    Sheets("Feuil1").Range("L4").Value = Sheets("Feuil1").Range("L4").Value + 1
    Sheets("Feuil2").Range("K3").Value = Sheets("Feuil2").Range("K3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 11 Then
    Sheets("Feuil1").Range("M4").Value = Sheets("Feuil1").Range("M4").Value + 1
    Sheets("Feuil2").Range("L3").Value = Sheets("Feuil2").Range("L3").Value + 1

    ElseIf Choix = "Croix Changée" And note = 12 Then
    Sheets("Feuil1").Range("N4").Value = Sheets("Feuil1").Range("N4").Value + 1
    Sheets("Feuil2").Range("M3").Value = Sheets("Feuil2").Range("M3").Value + 1

End If
UserForm1.Hide
...
End Sub

Imaginez que je le fais 24 fois sauf que ca passe pas la commande est trop longue

Il s'agit d'un code qui me permet d'envoyer dans deux tableau un +1 en fonction de ce qui a été sélectionné dans une pop up et en fonction du mois.

Est ce que quelqu'un aurait une idée de comment je pourrais le raccourcir ?

Merci

TMM

bonjour,

une proposition (non testée, faute d'avoir ton classeur)

Private Sub CommandButton1_Click()
    Dim note As Integer
    note = Month(Date)

    Choix = TextBox_Choix.Value

    If Choix = "Croix Changée" Then
        Sheets("Feuil1").Cells(4, 2 + note).Value = Sheets("Feuil1").Cells(4, 2 + note).Value + 1
        Sheets("Feuil2").Cells(3, 1 + note).Value = Sheets("Feuil2").Cells(3, 1 + note).Value + 1
    End If
    UserForm1.Hide
    '...
End Sub

Salut h2so4,

Je t'ai mis l'excel en question, le code est dans le userform1

bonjour,

je te laisse tester.

On dirait que ca marche mais est ce que tu pourrais m'expliquer comment ca marche exactement ?

En tout cas merci

re-bonjour,

si le choix est croix changée on ajoute 1 dans la cellule de la feuil1 en ligne 4 colonne 3 quand note vaut 1, colonne 4 quand note vaut 2, ...

donc la colonne est donnée par la formule : 2 + note

donc on ajoute 1 dans la cellule de la feuille 1 (ligne 4, colonne 2+ note),

on applique un raisonnement similaire pour la feuille 2 (ligne 3 , mais colonne en fonction de note est donné par la formule 1 + note)

If Choix = "Croix Changée" Then
        Sheets("Feuil1").Cells(4, 2 + note).Value = Sheets("Feuil1").Cells(4, 2 + note).Value + 1
        Sheets("Feuil2").Cells(3, 1 + note).Value = Sheets("Feuil2").Cells(3, 1 + note).Value + 1
    End If

Du coup pour le réutiliser l'année prochaine je dois rechanger le code ? Parce qu'en plus il commence en mai

Bonjour,

si tu veux vraiment raccourcir ton code. fais en sorte d'écrire tes réparations dans un journal, avec date, type de panne, type de réparation, type de matériel, etc... et utilise les fonctions standard d' Excel pour tes statistiques (en l'occurrence TCD)

ok merci pour ton aide

Rechercher des sujets similaires à "raccourcicement code"