Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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
Inhaltsverzeichnis

Code vereinfachen

Code vereinfachen
20.02.2018 19:58:52
Daniel
Liebe Excel-Liebhaber
Ich bin nun endlich am Ende eines umfangreichen Excel-Projekts angelangt und mache mich nun daran, den Code zu vereinfachen. Meine Erfahrung hält sich noch in Grenzen und deshalb wollte ich Euch um hilfreiche Erfahrungstipps bitten. Als Beispiel habe ich hier eine Codesequenz, in der z.T. die gleiche Eigenschaft (Farbe RGB) mehreren Labels (lbl) in einer Userform zugewiesen wird. Wie lässt sich dies einfacher machen? Habt ihr generelle konkrete Ideen, wie man nachfolgende Codesequenz vereinfachen bzw. schneller machen könnten? Fallen euch grundlegende "Bremser" auf? (Vereinfacht gesagt hat dieser Code zum Ziel, eine Userform mit den bereits eingespeisten Daten erneut zu befüllen, nachdem die Datei geschlossen wurde):
Option Explicit

Private Sub UserForm_Initialize()
'Aktiviert die passenden Hintergrundfarben
frmUHR.BackColor = RGB(130, 175, 215)
lblZHUHR.BackColor = RGB(130, 175, 215)
lblCopyright.BackColor = RGB(130, 175, 215)
frmET1.BackColor = RGB(253, 233, 217)
lblET1Children.BackColor = RGB(253, 233, 217)
lblET1Name.BackColor = RGB(253, 233, 217)
lblET1Child1.BackColor = RGB(253, 233, 217)
lblET1Child2.BackColor = RGB(253, 233, 217)
lblET1Child3.BackColor = RGB(253, 233, 217)
lblET1Child4.BackColor = RGB(253, 233, 217)
frmET2.BackColor = RGB(218, 238, 243)
lblET2Children.BackColor = RGB(218, 238, 243)
lblET2Name.BackColor = RGB(218, 238, 243)
lblET2Child1.BackColor = RGB(218, 238, 243)
lblET2Child2.BackColor = RGB(218, 238, 243)
lblET2Child3.BackColor = RGB(218, 238, 243)
lblET2Child4.BackColor = RGB(218, 238, 243)
frmET1NewPartner.BackColor = RGB(253, 233, 217)
lblET1NewPartnerData.BackColor = RGB(253, 233, 217)
FrmET2NewPartner.BackColor = RGB(218, 238, 243)
txtET2NewPartnerName.BackColor = RGB(218, 238, 243)
txtET2NewPartnerBirth.BackColor = RGB(218, 238, 243)
chbET2NewPartnerCare.BackColor = RGB(218, 238, 243)
'Aktualisiert Multipage 0 vorhandenen Daten aus Sheets("RawData")
txtCase = Sheets("RawData").Range("E1")
txtDate = Sheets("RawData").Range("F1")
txtET1Name = Sheets("RawData").Range("E2")
txtET1Birth = Sheets("RawData").Range("E3")
cboET1Children = Sheets("RawData").Range("E4")
txtET1Child1Name = Sheets("RawData").Range("E5")
txtET1Child1Birth = Sheets("RawData").Range("E6")
txtET1Child2Name = Sheets("RawData").Range("E7")
txtET1Child2Birth = Sheets("RawData").Range("E8")
txtET1Child3Name = Sheets("RawData").Range("E9")
txtET1Child3Birth = Sheets("RawData").Range("E10")
txtET1Child4Name = Sheets("RawData").Range("E11")
txtET1Child4Birth = Sheets("RawData").Range("E12")
txtET2Name = Sheets("RawData").Range("F2")
txtET2Birth = Sheets("RawData").Range("F3")
cboET2Children = Sheets("RawData").Range("F4")
txtET2Child1Name = Sheets("RawData").Range("F5")
txtET2Child1Birth = Sheets("RawData").Range("F6")
txtET2Child2Name = Sheets("RawData").Range("F7")
txtET2Child2Birth = Sheets("RawData").Range("F8")
txtET2Child3Name = Sheets("RawData").Range("F9")
txtET2Child3Birth = Sheets("RawData").Range("F10")
txtET2Child4Name = Sheets("RawData").Range("F11")
txtET2Child4Birth = Sheets("RawData").Range("F12")
'Aktualisiert Multipage 1 mit vorhandenen Daten aus Sheets("RawData")
cboPhases = Sheets("RawData").Range("I1")
txtPhase1StartDate = Sheets("RawData").Range("I2")
txtPhase1EndDate = Sheets("RawData").Range("J2")
txtPhase2StartDate = Sheets("RawData").Range("I3")
txtPhase2EndDate = Sheets("RawData").Range("J3")
txtPhase3StartDate = Sheets("RawData").Range("I4")
txtPhase3EndDate = Sheets("RawData").Range("J4")
txtPhase4StartDate = Sheets("RawData").Range("I5")
txtPhase4EndDate = Sheets("RawData").Range("J5")
'Aktualistiert Multipage 2 mit den zuvor eingegebenen Daten
cboET1NewPartner = Sheets("RawData").Range("L1")
txtET1NewPartnerName = Sheets("RawData").Range("L2")
txtET1NewPartnerBirth = Sheets("RawData").Range("L3")
chbET1NewPartnerCare = Sheets("RawData").Range("L4")
cboET2NewPartner = Sheets("RawData").Range("M1")
txtET2NewPartnerName = Sheets("RawData").Range("M2")
txtET2NewPartnerBirth = Sheets("RawData").Range("M3")
chbET2NewPartnerCare = Sheets("RawData").Range("M4")
'Setzt cboChildren auf 0 wenn kein Anfangswert in cboChildren oder in RawData vorhanden ist
If cboET1Children = "" Or Sheets("RawData").Range("E4") = "" Then
cboET1Children = 0
End If
If cboET2Children = "" Or Sheets("RawData").Range("F4") = "" Then
cboET2Children = 0
End If
'Setzt cbo New Partner auf 0 wenn kein Anfangswert in RawSource vorhanden ist
If cboET1NewPartner = "Nein" Or cboET1NewPartner = "" Then
lblET1NewPartner.Visible = False
txtET1NewPartnerName.Visible = False
txtET1NewPartnerBirth.Visible = False
chbET1NewPartnerCare.Visible = False
Else: lblET1NewPartner.Visible = True
lblET1NewPartner.Visible = True
txtET1NewPartnerName.Visible = True
txtET1NewPartnerName.Visible = True
chbET1NewPartnerCare.Visible = True
End If
If cboET2NewPartner = "Nein" Or cboET2NewPartner = "" Then
lblET2NewPartner.Visible = False
txtET2NewPartnerName.Visible = False
txtET2NewPartnerBirth.Visible = False
chbET2NewPartnerCare.Visible = False
Else: lblET2NewPartner.Visible = True
lblET2NewPartner.Visible = True
txtET2NewPartnerName.Visible = True
txtET2NewPartnerBirth.Visible = True
chbET2NewPartnerCare.Visible = True
End If
frmUHR.MultiPage1.Value = 0
End Sub

Beste Grüsse - Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen
21.02.2018 13:46:14
ChrisL
Hi Daniel
"Beschleunigen" kannst du hier nicht viel. Die Farben würde ich direkt in den Eigenschaften fix definieren.
Schreibarbeit kannst du dir sparen, wenn du durchnummerierst z.B.
TextBox1 = Sheets("RawData").Range("F2")
TextBox2 = Sheets("RawData").Range("F3")
TextBox3 = Sheets("RawData").Range("F4")
TextBox11 = Sheets("RawData").Range("F12")
For i = 1 To 11
Controls("TextBox" & i) = Sheets("RawData").Range("F" & i + 1)
Next i
cu
Chris
AW: Code vereinfachen
21.02.2018 16:13:08
Burkhard
Hi Daniel,
wenn du vor das erste Vorkommen von Sheets("RawData") ein With Sheets("RawData") schreibst und nach dem letzten Vorkommen ein End With, kannst du den Code dazwischen vereinfachen (der Punkt vor Range ist wichtig):
With Sheets("RawData")
txtCase = .Range("E1")
txtDate = .Range("F1")
End With
Und schneller soll es auch noch gehen.
Grüße
Burkhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige