Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
132to136
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
132to136
132to136
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

überprüfung der existenz eines tabellenblattes

überprüfung der existenz eines tabellenblattes
03.07.2002 10:35:30
rahel
hallo,
wie kann ich vor der ausführung eines makros überprüfen, ob das tabellenblatt, welches im makro entsteht, schon vorhanden ist (z.b. bei der zweiten ausführung des makros)?
gruss rahel

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: überprüfung der existenz eines tabellenblattes
03.07.2002 10:38:13
Hajo_Zi
Hallo rahel

149. feststellen, ob worksheet vorhanden ist
hier ein Beispiel, welches Du relativ einfach entsprechend abändern kannst:
Sub TabAuswahl()
Dim Sh As Worksheet
Dim sName$
sName = InputBox("Bitte Tabellenname auswählen!")
For Each Sh In Worksheets
If InStr(Sh.Name, sName) > 0 Then
Sh.Select
Exit Sub
End If
Next Sh
Beep
MsgBox "Kein Blatt gefunden!"
End Sub


Gruß Hajo

wie war das genau gemeint?
03.07.2002 11:24:46
rahel
hi hajo
also ich muss mein anliegen vielleicht ein bisschen präzisieren. ich habe ein makro, welches ein neues tabellenblatt mit einer pivot-tabelle erstellt. das makro wird über ein userform ausgelöst.
wenn ich aber nun das gleiche makro zum zweiten mal ausführe, erhalte ich einen fehler, da ja das tabellenblatt, welches in dem makro erstellt werden soll, schon besteht.
ich möchte nun also bevor das makro ausgeführt wird überprüfen, ob bereits ein tabellenblatt mit dem namen pivot-tabelle existiert.
gruss rahel
Anzeige
Re: wie war das genau gemeint?
03.07.2002 12:23:40
Timo
Hallo Rahel,

einfach so:

Gruss
Timo

fehler ausgabe
03.07.2002 13:15:50
rahel
hi nochmals,
diese variante gibt mir leider einen fehler aus. wieso das?

Dim i As Byte

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Pivot_Tabelle_Fragen" Then
MsgBox ("Diese Auswertung wurde bereits getätigt!")
Else
If ComboBox1.ListIndex = 0 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Fragen"
...
End If
End If
Next i

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Pivot_Tabelle_Themen" Then
MsgBox ("Diese Auswertung wurde bereits getätigt!")
Else
If ComboBox1.ListIndex = 0 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Themen"
...
End If
End If
Next i

Anzeige
Welchen Fehler denn?
03.07.2002 13:20:16
Timo
Müsstest du schon mal schreiben, sonst wirds schwierig ;)

Gruss
Timo

Re: Welchen Fehler denn?
03.07.2002 13:28:48
rahel
'laufzeitfehler 1004':
kann einem blatt nicht den gleichen namen geben wie einem anderen blatt, einer objektbibliothek oder einer arbeitsmappe, die auf visual basic bezug nimmt.

der fehler tritt an folgender stelle auf:

Dim i As Byte

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Pivot_Tabelle_Fragen" Then
MsgBox ("Diese Auswertung wurde bereits getätigt!")
Else
If ComboBox1.ListIndex = 0 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Fragen" <<<<<<<<<<<<<<<<<<<<
...
End If
End If
Next i

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Pivot_Tabelle_Themen" Then
MsgBox ("Diese Auswertung wurde bereits getätigt!")
Else
If ComboBox1.ListIndex = 0 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Themen"
...
End If
End If
Next i

wenn ich dann jedoch den vb-editor schliesse, ist das tabellenblatt mit der pivot-tabelle trotzdem erstellt worden. ausserdem ist noch ein leeres tabellenblatt vorhanden, welches aktiviert ist.



Anzeige
Re: Welchen Fehler denn?
03.07.2002 13:40:12
Martin Beck
Hallo Rahel,

das Verhalten von Excel ist logisch, da Dein Code unlogisch ist. ;-)

Nehmen wir mal an, daß dritte Tabellenblatt wäre "Pivot_Tabelle_Fragen". Für i=1 trifft dann die Bedingung

If Worksheets(i).Name = "Pivot_Tabelle_Fragen" Then

nicht zu und der Else-Zweig wird abgearbeitet. Und dann knallt es eben bei dem Versuch, ein bereits existierendes Tabellenblatt einzufügen.

Konsequenz: Du mußt die For-Next-Schleife zuerst komplett durchlaufen, um festzustellen, daß kein Tabellenblatt "Pivot_Tabelle_Fragen" heißt. Wenn doch, kannst Du z.B. das Makro abbrechen. Ansonsten Makro mit Einfügen des Blattes fortsetzen. Das Ganze geht dann etwa so:

Außerdem solltest Du i nicht als Byte, sondern als Integer oder Long deklarieren.

Gruß
Martin Beck

Anzeige
Re: Welchen Fehler denn?
03.07.2002 13:49:49
rahel
danke, das klappt ja sogar ;-)

liebe grüsse, rahel

Re: Welchen Fehler denn?
03.07.2002 13:51:58
Martin Beck
Logisch! ;-)

Gruß
Martin Beck

noch eine frage ;-)
03.07.2002 14:00:36
rahel
sorry, aber noch ne frage:

wie sieht das ganze aus, wenn es mehrere möglichkeiten gibt. ich meine damit, es gibt vier möglichkeiten für den namen des enstehenden tabellenblattes.

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Pivot_Tabelle_Fragen" Then
MsgBox ("Diese Auswertung wurde bereits getätigt!")
Exit Sub 'Makro wird abgebrochen
End If
Next i
If ComboBox1.ListIndex = 0 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Fragen"
...
If ComboBox1.ListIndex = 3 Then
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Pivot_Tabelle_Regionen"

Anzeige
Re: noch eine frage ;-)
03.07.2002 14:06:54
Michael Scheffler
Hallo,

dann die Abfrage in:

ändern, "Like" bietet sich eh immer an, es ist schneller und variabler.

Gruß

Micha

Re: noch eine frage ;-)
03.07.2002 14:14:18
rahel
daran hab ich auch schon gedacht. jedoch ist da ein kleiner überlegungsfehler drin:
wenn eine auswertung schon stattgefunden hat, z.b. die auswertung nach fragen, dann trifft die bedingung immer zu, da ja alle blätter mit Pivot_ beginnen.

gruss, rahel

Re: noch eine frage ;-)
03.07.2002 14:46:40
Martin Beck
Hallo Rahel,

füge halt die Schleife 4x ein und prüfe jeweils auf eine der 4 Tabellen.

Gruß
Martin Beck

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige