![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le forum
Je suis dans le ménage pour l'été Comment est-ce possible de simplifier ceci pour ne pas le répéter sur chaque mois : Private Sub CommandButton9_Click() '<> Dim coz coz = ComboBox2 Dim co co = ComboBox1 If ComboBox2 = "" Then MsgBox "***Sélectionner le mois***" Else If coz = "Janvier" Then Sheets("JANVIER").Select Label66 = ComboBox1.Value Label15 = ActiveSheet.Name Range("B1").Activate TextBox1 = Range("B37") TextBox19 = Range("E37") TextBox20 = Range("H37") TextBox21 = Range("K37") TextBox26 = Range("N5") TextBox27 = Range("N6") TextBox28 = Range("N7") TextBox29 = Range("N8") Else If ComboBox1 = "" Then MsgBox "***Sélectionner la dépense***" Else If co = "Gas" Then Range("B1").Activate Range("B1").End(xlDown).Offset(1, 0).Select Else If co = "Réparations" Then Range("E1").Activate Range("E1").End(xlDown).Offset(1, 0).Select Else If co = "Entretien" Then Range("H1").Activate Range("H1").End(xlDown).Offset(1, 0).Select Else If co = "Autre" Then Range("K1").Activate Range("K1").End(xlDown).Offset(1, 0).Select End If End If End If End If End If End If J'ai la même chose pour Février,mars, avril...jusqu'à Décembre ce qui me fait un code de 4 pieds de long If coz = "Février" Then ... ... ... If coz = "Mars" Then Merci à l'avance Temjeh A+ |
| ANNONCES | |||
|
|
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Merci beaucoup
Voici mon final:moins de 50 lignes aulieu de 600 !!!!!!!!!!!!!!!!! Private Sub CommandButton9_Click() '<> Dim coz coz = ComboBox2 Dim co co = ComboBox1 If ComboBox2 = "" Then MsgBox "***Sélectionner le mois***" Else Sheets(coz).Select Label66 = ComboBox1.Value Label15 = ActiveSheet.Name Range("B1").Activate TextBox1 = Range("B37") TextBox19 = Range("E37") TextBox20 = Range("H37") TextBox21 = Range("K37") TextBox26 = Range("N5") TextBox27 = Range("N6") TextBox28 = Range("N7") TextBox29 = Range("N8") If ComboBox1 = "" Then MsgBox "***Sélectionner la dépense***" Else If co = "Gas" Then Range("B1").Activate Range("B1").End(xlDown).Offset(1, 0).Select Else If co = "Réparations" Then Range("E1").Activate Range("E1").End(xlDown).Offset(1, 0).Select Else If co = "Entretien" Then Range("H1").Activate Range("H1").End(xlDown).Offset(1, 0).Select Else If co = "Autre" Then Range("K1").Activate Range("K1").End(xlDown).Offset(1, 0).Select End If End If End If End If End If End If End Sub Temjeh |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Re Temjeh, le forum
Encore moi pour info tes Range("").Activate ne servent absolument à rien devant Range("").End(xlDown).Offset(1, 0).Select cela revient à activer une cellule avant d'en sélectionner une autre, tu peux les supprimer. A+ |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir Temjeh, Yeahou, le Forum Une autre façon d'écrire ton code, même si il fait la même chose, mais plus simple à lire, et plus rapide avec le Select Case qui évite cette cascade de If Else, Else, Else... Et puis en déclarant les Variables.... ![]() Option Explicit Private Sub CommandButton9_Click() Dim co As String, coz As String co = ComboBox1 coz = ComboBox2 If co = "" Then MsgBox "***Sélectionner la dépense***": Exit Sub If coz = "" Then MsgBox "***Sélectionner le mois***": Exit Sub Sheets(coz).Select Label66 = co Label15 = ActiveSheet.Name With ActiveSheet TextBox1 = .Range("B37") TextBox19 = .Range("E37") TextBox20 = .Range("H37") TextBox21 = .Range("K37") TextBox26 = .Range("N5") TextBox27 = .Range("N6") TextBox28 = .Range("N7") TextBox29 = .Range("N8") Select Case co Case "Gas": .Range("B1").End(xlDown).Offset(1, 0).Select Case "Réparations": .Range("E1").End(xlDown).Offset(1, 0).Select Case "Entretien": .Range("H1").End(xlDown).Offset(1, 0).Select Case "Autre": .Range("K1").End(xlDown).Offset(1, 0).Select Case Else: MsgBox "Y a un sbinz lol !!!" End Select End With End Sub NB sans aucune simulation en réél sur un UserForm (d'ailleurs je suis surpris des numéro des Controls... 29 TextBoxes !! Bonne Soirée @+Thierry |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|