Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellennamen suchen

Tabellennamen suchen
17.12.2014 12:06:46
Peter
Hallo,
ich bitte um Eure Hilfe.
ich habe eine Datei mit 5 Tabellenblätter unterschiedliche Namen. Eine davon lautet z.B. Test Vorlage. Wird eine neue Tabelle angelegt, erhält diese den Namen Test 2014. Jetzt das Problem. Wenn nur die Tabelle Test Vorlage vorhanden ist, dann soll ein Makro 1 ausgeführt werden.
Wenn jedoch eine oder mehrere Tabellen Test 2014, Test 2013 usw. vorhanden sind soll Makro 2 ausgeführt werden. Diese Abfrage soll bei Workbook_open verwendet werden.
Danke für Eure Hilfe

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellennamen suchen
17.12.2014 12:59:22
ede
Hallo Peter,
anbei ein Beispielode...
Private Sub Workbook_Open()
Call check_Tabellenname
End Sub

Sub check_Tabellenname()
suchstring = "Test"
anz = 0
For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 4) = suchstring Then
anz = anz + 1
End If
Next
If anz = 1 Then
Call makro1
Else
Call makro2
End If
End Sub
Sub makro1()
MsgBox "1*vorhanden"
End Sub
Sub makro2()
MsgBox "mehrfach vorhanden oder fehlt"
End Sub

Anzeige
AW: klappt einwandfrei
17.12.2014 13:38:28
Peter
Hallo Ede,
habe in einer Testumgebung geprüft. Funktioniert einwandfrei. Habe aber erst nach einer Weile herausgefunden, dass die Ziffer 4 die Anzahl der Buchstaben von Tabellennamen bedeutet.
Noch einen schönen Tag
Gruss Peter

AW: klappt einwandfrei
17.12.2014 13:43:42
ede
nicht ganz, es wird geprüft, ob der Tabellename mit "Test" beginnt, alo die ersten vier Zeichen!
Gruss

Anzeige
AW: Tabellennamen suchen @ede
17.12.2014 14:33:18
Rudi
Hallo,
If Left(Sheets(i).Name, 4) = suchstring Then
würde ich auf jeden Fall als
If Left(Sheets(i).Name, Len(SuchString)) = suchstring Then
schreiben.
oder komplett anders:
Private Sub Workbook_Open()
check_Tabellenname "Test"
End Sub
Sub check_Tabellenname(SuchString As String)
Dim anz As Integer, wks As Worksheet
anz = 0
For Each wks In Worksheets
If Left(wks.Name, Len(SuchString)) = SuchString Then
anz = anz + 1
End If
'oder ohne If
'anz = anz - (Left(wks.Name, Len(SuchString)) = SuchString)
Next
Select Case anz
Case 1:    makro1
Case Else: makro2
End Select
End Sub
Nur damit du was lernst.
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige