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

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

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

Anzeige
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

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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige