Anzeige
Archiv - Navigation
1028to1032
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
Inhaltsverzeichnis

Tabellenblatt recht einfügen

Tabellenblatt recht einfügen
09.12.2008 20:37:00
TomTom
Hi,
wie kann ich denn in meine Excel Mappe per Makro ein Tabellenblatt mit Namen "DIALOG" einführen. Das Tabellenblatt sollte aber ganz ans Ende der Mappe also ganz rechts eingefügt weden.
Gut wäre natürlich, wenn das Makro vor prüfen kann, ob die Mappe bereits existiert.
Danke
Tom

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
so gehts ...
09.12.2008 20:45:53
Matthias
Hallo Tom

Option Explicit
Sub TomDialog()
Dim x As Long
For x = 1 To Worksheets.Count
If Worksheets(x).Name = "Dialog" Then: MsgBox "Blatt (Dialog) ist schon vorhanden",  _
vbInformation, "Abbruch": Exit Sub
Next
Worksheets.Add.Name = "Dialog"
Sheets("Dialog").Move After:=Sheets(Worksheets.Count)
End Sub


Gruß Matthias

Supi, vielen Dank :-) oT
09.12.2008 20:57:17
TomTom
Hallo Tom, es ist eine Korrektur notwendig
09.12.2008 21:35:00
Matthias
Hallo Tom
Bitte schau Dir den Beitrag von Erich an. das ist wichtig!
er hat im Code einen Fehler bemerkt.
https://www.herber.de/forum/archiv/1028to1032/t1031517.htm#1031522
Ersetze bitte diese Zeile
If Worksheets(x).Name = "Dialog" then ...
mit dieser:
If UCase(Worksheets(x).Name) = UCase("Dialog") then ...
Gruß Matthias
Anzeige
Alles klar, mach ich, Danke an Euch zwei oT
09.12.2008 21:54:41
TomTom
AW: so gehts ...
09.12.2008 21:07:18
Erich
Hallo Matthias,
bei der Existenzprüfung muss man wohl etwas vorsichtiger sein:
If Worksheets(x).Name = "Dialog" reicht nicht aus.
Es kann ein Blatt z. B. DIALOG oder DIAlog geben, dann produziert Worksheets.Add.Name = "Dialog" einen Fehler.
Möglich wäre
If UCase(Worksheets(x).Name) = UCase("Dialog")
oder:

Sub Tom2()
If worksheetEx("Dialog") Then
MsgBox "Blatt 'Dialog' ist schon vorhanden", vbInformation, "Abbruch"
Else
Worksheets.Add(after:=Sheets(Sheets.Count)).Name = "Dialog"
End If
End Sub
Function worksheetEx(strNam As String) As Boolean
' Wenn das Blatt nicht existiert, gibt es einen Fehler, der aber mit
'   "On Error Resume Next" übergangen wird.
'   worksheetEx wird nicht belegt und hat/behält den Defaultwert Falsch
' Wenn das Blatt existiert, ist der Index des Blattes > 0, worksheetEx ist Wahr
On Error Resume Next
worksheetEx = Worksheets(strNam).Index > 0
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
vielen Dank, Erich ...
09.12.2008 21:27:40
Matthias


Hallo Erich


Vielen Dank für Deinen Hinweis.
Daran hatte ich überhaupt nicht gedacht.
Du hast natürlich vollkommen Recht
Ich würde mich dann für:
If UCase(Worksheets(x).Name) = UCase("Dialog")
entscheiden.
Hauptsache Tom schaut nochmal hier rein.
nochmals Danke
und viele Grüße aus Sachsen
Matthias L.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige