Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Wiederkehrenden Code für Formular verkürzen

Wiederkehrenden Code für Formular verkürzen
13.12.2012 11:33:53
Dave
Hallo zusammen,
Ich habe eine Userform mit 96 Schaltflächen, die beim Initialisieren aus einer Tabelle von Verweisen auf andere Exceldateien mit Caption (= Dateiname) und ControlTipText (=Pfad) belegt werden.
Die Schaltflächen tragen die Namen File1 bis File96. Dahinter liegt jeweils der Code
Private Sub File1_Click()
If CheckBox1 = False Then
Unload Me
With File1
Workbooks.Open filename:=.ControlTipText & "\" & .Caption
End With
Else
Dim c
With Workbooks("personal.xlsb").Worksheets("Files").Range("a1:a500")
Set c = .Find(File1.ControlTipText & "\" & File1.Caption, LookIn:=xlValues)
If Not c Is Nothing Then
.Rows(c.Row).EntireRow.Clear
End If
End With
With File1
.ControlTipText = ""
.Caption = ""
End With
End If
End Sub
das "File1" halt jeweils immer mit dem Namen der Schaltfläche belegt, ansonsten identisch. Das heißt, 96 mal der gleiche Code.
Da ich nun schon zweimal etwas wieder ändern musste und diese Änderungen dann bei allen 96 Codes nachziehen muss, habe ich überlegt, ob man das nicht einfacher gestalten kann, über einen Call-Aufruf oder ähnliches. Ich kriege es aber technisch nicht hin, da ja dann irgendwie die Nummerierung übergeben werden muss.
Kann mir da jemand helfen oder geht das gar nicht?
Danke vorab.
Gruß
David

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wiederkehrenden Code für Formular verkürzen
13.12.2012 11:49:41
Rudi
Hallo,
eine Möglichkeit:
Private Sub File1_Click()
GetFile File1
End Sub
Sub GetFile(objControl As msforms.CommandButton)
Dim sText1 As String, sText2 As String
Dim c As Range
sText1 = objControl.ControlTipText
sText2 = objControl.Caption
If objControl.Parent.CheckBox1 = False Then
Unload objControl.Parent
Workbooks.Open Filename:=sText1 & "\" & sText2
Else
With Workbooks("personal.xlsb").Worksheets("Files").Range("a1:a500")
Set c = .Find(sText1 & "\" & sText2, LookIn:=xlValues)
If Not c Is Nothing Then
.Rows(c.Row).EntireRow.Clear
End If
End With
With objControl
.ControlTipText = ""
.Caption = ""
End With
End If
End Sub
Gruß
Rudi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige