Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives

Advertisement

 
 
LinkBack Outils de la discussion
Vieux 09/07/2004, 13h09   #1 (permalink)
Temjeh
Guest
 
Messages: n/a
Par défaut Simplification pour ménage d'été

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
Vieux 09/07/2004, 15h23   #2 (permalink)
Yeahou
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été

Bonjour Temjeh, le forum

ton code étant le même pour chaque feuille

au lieu de
If coz = "Janvier" Then
Sheets("JANVIER").Select

fait
Sheets(coz).Select

Cordialement, A+
 
Vieux 09/07/2004, 16h22   #3 (permalink)
Temjeh
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été

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
 
Vieux 09/07/2004, 16h27   #4 (permalink)
Yeahou
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été

Re Bonjour Temjeh

pas de quoi, je n'ai fait que t'orienter, c'est toi qui a fait le boulot et c'est bien mieux pour apprendre!

A+
 
Vieux 09/07/2004, 16h32   #5 (permalink)
Yeahou
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été

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+
 
Vieux 09/07/2004, 19h05   #6 (permalink)
Temjeh
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été

Daccord merci
 
Vieux 09/07/2004, 23h13   #7 (permalink)
@+Thierry
Guest
 
Messages: n/a
Par défaut Re: Simplification pour ménage d'été


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

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 02h05.


(C) 2006 Excel Downloads