Ich bin guter Hoffnung, dass mir hier jemand von Euch weiterhelfen kann.
In einer grossen Arbeitsmappe hab ich unzählige Tabellenblätter / Register auf welchen in unterschiedlichsten Zellen / Spalten Hyperlinks oder sonstiger
Text abgelegt ist.
Ich habe u.a. folgenden Code in dieser Excel-Arbeitsmappe hinterlegt um auf allen Tabellenblätter / Register in allen Zellen / Spalten nach den Hyperlinks zu suchen und
diese Hyperlinks auf ihre funktionstüchtigkeit hin zu überprüfen:
Private Sub CommandButton1_Click()
' Hyperlinks werden alle geprüft und Prüfresultat in neuer Tabelle ausgegeben
'Folgende Rubriken können dann ausgeblendet werden:
'THM2011
'CBU
'F_SAPline D5
'D_SAPline D5
'D_Passwordverwaltung
'F_Passwordverwaltung
Dim SH As Object
Dim shLinkList As Worksheet
Dim L As Long
Dim HL As Hyperlink
Set shLinkList = Worksheets.Add(, Sheets(Sheets.Count))
For Each SH In ThisWorkbook.Sheets
If Not SH Is shLinkList Then
For Each HL In SH.Hyperlinks
L = L + 1
shLinkList.Cells(L, 1) = SH.Name
If TypeOf HL.Parent Is Range Then
shLinkList.Cells(L, 2) = HL.Parent.Address
Else:
shLinkList.Cells(L, 2) = HL.Parent.Name
End If
shLinkList.Cells(L, 3) = HL.Address
shLinkList.Cells(L, 4) = (CheckLink(HL.Address) = 200)
Next
End If
Next
End Sub
Das Resultat dieses Codes ist dann ein neues Tabellenblatt in meiner Arbeitsmappe drin auf welchem alle Registerblätter aufgelistet werden.
Hinter jedem gefundenen Hyperlink steht dann WAHR oder FALSCH (Hyperlink führt zu einem Ziel oder eben nicht)
Dieser Code funktioniert einwandfrei.
Nun aber meine Frage:
Ich möchte den Code so erweitern, dass mir nach dem Start dieses Codes eine Art Auswahlliste erscheint, in welcher ich die nicht zu prüfenden Tabellenblätter ankreuzen kann.
Zum Beispiel:
In der Arbeitsmappe drin hat es diverse Register / Tabellenblätter auf welchen Hyperlinks vorhanden sind, die der obige Code NICHT prüfen soll.
(Es ist auch nie die gleiche Anzahl Tabellenblätter in der Arbeitsmappe drin, da diese Arbeitsmappe ständig um weitere Tabellenblätter ergänzt wird oder welche entfernt werden)
Ich stell mir eine Art Userform vor, auf welche alle Tabellenblätter der Arbeitsmappe aufgelistet werden.
Vor jedem aufgelisteten Tabellenblatt-Namen soll dann ein Flag oder dergleichen stehen, welches man setzen kann.
Ist bei einem Tabellenblatt-Name also so ein Flag gesetzt, so soll dann der obige Code das Tabellenblatt überspringen und NICHT überprüfen.
Ich hoffe meine Frage war so einigermassen verständlich ?
Wäre toll, wenn mir jemand da weiterhelfen könnte diese Funktion zu verwirklichen.
Im voraus HERZLICHEN DANK !