Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Optimierung

Optimierung
19.08.2004 14:42:40
Sven
Hi,
ich hab ein Frage zur Optimierung von Code. Mit VBA kenn ich mich ganz gut aus, aber eher unter ASP. Mit Exel u. VBA hab ich bisher kaum was gemacht.
Ich hab folgenden Code:

Private Sub CheckBox1_Change()
box1
End Sub


Private Sub CheckBox2_Change()
box2
End Sub


Private Sub CheckBox3_Change()
box3
End Sub

Sub box1()
If CheckBox1 And Range("D6").Value > 5 Then
Range("I6:L6") = Empty
Range("H6") = "1"
Range("I6:L6").Interior.ColorIndex = 48
Range("B6").Font.Strikethrough = True
Else
Range("H6") = "0"
Range("I6:L6").Interior.ColorIndex = 2
Range("B6").Font.Strikethrough = False
End If
End Sub
Sub box2()
If CheckBox4 And Range("D7").Value > 5 Then
Range("I7:L7") = Empty
Range("H7") = "1"
Range("I7:L7").Interior.ColorIndex = 48
Range("B7").Font.Strikethrough = True
Else
Range("H7") = "0"
Range("I7:L7").Interior.ColorIndex = 2
Range("B7").Font.Strikethrough = False
End If
End Sub
Sub box3()
If CheckBox5 And Range("D8").Value > 5 Then
Range("I8:L8") = Empty
Range("H8") = "1"
Range("I8:L8").Interior.ColorIndex = 48
Range("B8").Font.Strikethrough = True
Else
Range("H8") = "0"
Range("I8:L8").Interior.ColorIndex = 2
Range("B8").Font.Strikethrough = False
End If
End Sub
Das muß ich irgendwie optimieren. Es muß doch irgendwie ne Möglichkeit geben, da eine variable Prozedur draus zu machen. Z.B. indem ich einen oder mehrere Parameter mit übergebe.
Wäre super, wenn jemand nen Tipp oder ein Beispiel für mich hätte.
Gruss, Sven

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optimierung
Christian
Hi Sven,
Nenne deine Textboxen z.B.:
txtBox1, txtBox2, txtBox3
Mittels folgender Funktion rufst du deine Routine auf und übergibst dieser Routine das Objekt, das sie aufgerufen hat (z.B. anhand von Text box: txtBox1):

Private Sub txtBox1_Change()
Call codeTextbox(txtBox1)
End Sub

Dann kanst du eine Subroutine für alle textboxen erstellen:
Sub codeTextbox(ByVal objCalling As Object)
msgbox objcalling.name
End Sub

Gruss Christian
AW: Optimierung
20.08.2004 11:12:37
Sven
Danke Thomas,
die Parameterübergabe, war schon genau das was ich brauchte!
Sieht jetzt so aus:

Private Sub CheckBox1_Change()
Call box(CheckBox1)
End Sub


Private Sub CheckBox2_Change()
Call box(CheckBox2)
End Sub


Private Sub CheckBox3_Change()
Call box(CheckBox3)
End Sub

Sub box(ByVal objCalling As Object)
welchebox = objCalling.Name
Select Case welchebox
Case "CheckBox1"
i = "6"
Case "CheckBox2"
i = "7"
Case "CheckBox3"
i = "8"
End Select

If objCalling.Value And Range("D" & i).Value > 5 Then
Range("I" & i & ":L" & i) = Empty
Range("H" & i) = "1"
Range("I" & i & ":L" & i).Interior.ColorIndex = 48
Range("B" & i).Font.Strikethrough = True
Else
Range("H" & i) = "0"
Range("I" & i & ":L" & i).Interior.ColorIndex = 2
Range("B" & i).Font.Strikethrough = False
End If
End Sub
Gruss, Sven
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige