Recherche de simplification du codage [Résolu/Fermé]

Signaler
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
-
Bonjour,

J’ai réalisé un petit programme qui semble fonctionner, mais je me pose la question s’il n’y a pas plus simple en matière de codage.

Voici mon code :

Private Sub CommandButton7_Click()
If ComboBox2 = "" Then
MsgBox (" Vous n'avez pas choisi de client ")
Else: GoTo 1
End If
GoTo 2
1:
 Unload Formulaire_clients
 Sheets("Devis").Activate

        Range("A" & 7).Value = ComboBox2
        Range("B" & 7).Value = ComboBox3
        Range("C" & 7).Value = TextBox1
        Range("D" & 7).Value = TextBox2
        Range("E" & 7).Value = TextBox3
        Range("F" & 7).Value = TextBox4
        Range("G" & 7).Value = TextBox5
        Range("H" & 7).Value = TextBox6
        Range("I" & 7).Value = TextBox7
2:
End Sub


Avez-vous un avis ?

Merci pour vos réponses.

Cordialement

2 réponses

Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2253
Bonjour,

Evite les Goto.
Ils ne sont utiles qu'en cas de traitement d'erreur. Sinon, le code n'est pas super clair.
Regarde ton code sans Goto :

Private Sub CommandButton7_Click()
If ComboBox2 = "" Then
    MsgBox (" Vous n'avez pas choisi de client ")
Else
    Unload Formulaire_clients
    Sheets("Devis").Activate
    Range("A" & 7).Value = ComboBox2
    Range("B" & 7).Value = ComboBox3
    Range("C" & 7).Value = TextBox1
    Range("D" & 7).Value = TextBox2
    Range("E" & 7).Value = TextBox3
    Range("F" & 7).Value = TextBox4
    Range("G" & 7).Value = TextBox5
    Range("H" & 7).Value = TextBox6
    Range("I" & 7).Value = TextBox7
End If
End Sub


Code que l'on pourrait modifier, sans "activater" la feuille, et simplement en y faisant référence :

Private Sub CommandButton7_Click()
If ComboBox2 = "" Then
    MsgBox (" Vous n'avez pas choisi de client ")
Else
    Unload Formulaire_clients
    With Sheets("Devis")
        .Range("A" & 7).Value = ComboBox2
        .Range("B" & 7).Value = ComboBox3
        .Range("C" & 7).Value = TextBox1
        .Range("D" & 7).Value = TextBox2
        .Range("E" & 7).Value = TextBox3
        .Range("F" & 7).Value = TextBox4
        .Range("G" & 7).Value = TextBox5
        .Range("H" & 7).Value = TextBox6
        .Range("I" & 7).Value = TextBox7
    End With
End If
End Sub

A noter : les points devant les Range pour faire référence à la feuille Devis.

De même Unload Formulaire_clients serait certainement mieux en fin de procédure, comme ceci :
Private Sub CommandButton7_Click()
If ComboBox2 = "" Then
    MsgBox (" Vous n'avez pas choisi de client ")
Else
    With Sheets("Devis")
        .Range("A" & 7).Value = ComboBox2
        .Range("B" & 7).Value = ComboBox3
        .Range("C" & 7).Value = TextBox1
        .Range("D" & 7).Value = TextBox2
        .Range("E" & 7).Value = TextBox3
        .Range("F" & 7).Value = TextBox4
        .Range("G" & 7).Value = TextBox5
        .Range("H" & 7).Value = TextBox6
        .Range("I" & 7).Value = TextBox7
    End With
    Unload Formulaire_clients
End If
End Sub

Cette syntaxe est curieuse :
.Range("A" & 7).Value

Si c'est toujours 7, il convient d'utiliser :
.Range("A7").Value


Avant, j'arrivais jamais à finir mes phrases... mais maintenant je