Code anpassen if beginnt mit

Bild

Betrifft: Code anpassen if beginnt mit
von: MB12
Geschrieben am: 03.11.2015 11:11:45

Hallo zusammen,
Sepp hatte mir einen perfekt funktionierenden Code gebastelt, aber die Kollegen haben den Dateiaufbau ohne Rückfrage geändert.
Code bisher (Auszug):
With objIndex
.Cells.Clear
.Range("B1") = "Phasenblätter"
.Range("D1") = "Einzelblätter"
.Rows(1).Font.Bold = True
For Each objSh In ThisWorkbook.Worksheets
If objSh.Name <> "Index" Then
If IsNumeric(Evaluate(objSh.Name)) Then
'ändern auf "beginnt mit Zahl"
.Hyperlinks.Add Anchor:=.Cells(lngE, 4), Address:="", _
SubAddress:="'" & objSh.Name & "'!A1", TextToDisplay:=objSh.Name, _
ScreenTip:="Klicken Sie um zur Tabelle zu gelangen"
lngE = lngE + 1
Else
.Hyperlinks.Add Anchor:=.Cells(lngP, 2), Address:="", _
SubAddress:="'" & objSh.Name & "'!A1", TextToDisplay:=objSh.Name, _
ScreenTip:="Klicken Sie um zur Tabelle zu gelangen"
lngP = lngP + 1
End If
End If
Next
"If IsNumeric Evaluate(objSh.Name)) Then" habe ich versucht zu ändern auf
"If IsLike "#*"(Evaluate(objSh.Name)) Then"
aber bei "#*" kam die Meldung (so ungefähr) "Fehler bei Kompilierung (Then erwartet)"
Das Problem ist, dass ich plötzlich 70 neue Tabellenblätter habe, die keinen numerischen Namen mehr haben (z.B. 12345-56768) sondern jetzt 12345-56768(Z). Diese Blätter sollen aber genau gleich behandelt werden.
Zur Verdeutlichung eine Mustertabelle
https://www.herber.de/bbs/user/101208.xlsm
Vermutlich eine kleine Sache für Euch -für mich ein Berg.
Vielen Dank im Voraus.
Margarete

Bild

Betrifft: AW: Code anpassen if beginnt mit
von: Rudi Maintaire
Geschrieben am: 03.11.2015 11:24:31
Hallo,
If objSH. Name like "#*" Then
Gruß
Rudi

Bild

Betrifft: AW: Code anpassen if beginnt mit
von: MB12
Geschrieben am: 03.11.2015 11:37:51
Hallo Rudi,
genau das war es, vielen Dank.
Beim Testen habe ich bemerkt, dass noch etwas fehlt.
Wenn du in der Musterdatei in das Blatt "Konstruktion" wechselst, kannst du bei den Nummern ohne "(Z)" mit Doppelklick in das zugehörige Einzelblatt springen. Das funktioniert in A4 noch nicht, da ich im Code nicht sicher bin, wo ich etwas ändern muss. Könntest du da nachsehen?
Sorry für die doppelte Arbeit und vielen Dank.
Margarete

Bild

Betrifft: AW: Code anpassen if beginnt mit
von: Rudi Maintaire
Geschrieben am: 03.11.2015 11:59:03
Hallo,
ist doch das gleiche in grün.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel  _
As Boolean)
On Error Resume Next
If Target.Count = 1 Then
  If Target.Text Like "#*" Then
    If SheetExist(Target.Text) Then
      If Not Target.Text = Sh.Name Then
        Cancel = True
        Application.GoTo Sheets(Target.Text).Range("A1")
      End If
    End If
  End If
End If
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Code anpassen if beginnt mit
von: MB12
Geschrieben am: 03.11.2015 12:18:16
Hallo Rudi,
jetzt ist es auch mir klar; hatte vergeblich den Code gesucht, da ich nicht auf die Idee kam, dass der in "Diese Arbeitsmappe" stehen könnte.
Dank eurer Hilfe lerne ich auch mit inzwischen 58 Jahren immer mehr dazu....
Beste Grüße
Margarete

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Code anpassen if beginnt mit"