Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlermeldung abfangen

Fehlermeldung abfangen
31.10.2005 23:05:59
Dieter.G
Guten Abend,
mit folgendem Macro wird ein neues Tabellenblatt angelegt und mit dem Namen aus der "Activecell" versehen.

Sub Tabellenname_aus_Zelle()
Dim Wert As String
If ActiveCell <> "" Then
Wert = ActiveCell.Value
Sheets.Add
ActiveSheet.Name = Wert
End If
End Sub

Wie kann ich die Fehlermeldung:
Laufzeitfehler '1004':"Kann einem Blatt nicht den gleichen Namen geben wie einem anderen Blatt.....", wenn aus Versehen die gleiche Zelle ein zweites mal ausgewählt und das Macro ausgeführt wird mit einer MsgBox abfangen?
Danke für Euere Hilfe
Gruß Dieter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung abfangen
31.10.2005 23:11:53
Matthias
Hallo Dieter,

Sub Tabellenname_aus_Zelle()
Dim Wert As String
If ActiveCell <> "" Then
Wert = ActiveCell.Value
Sheets.Add
On Error Resume Next
ActiveSheet.Name = Wert
If Err.Number > 0 Then
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
MsgBox Err.Description, vbCritical, "Fehler Nr. " & Err.Number
End If
End If
End Sub

Damit wird das erstellte Blatt auch gleich wieder gelöscht.
Gruß Matthias
AW: Fehlermeldung abfangen
31.10.2005 23:31:00
Erich
Hallo Dieter,
noch eine Lösung, ohne Fehlerhandling:

Sub Tabellenname_aus_ZelleA()
Dim Wert As String, ws As Worksheet
Wert = ActiveCell
If Wert <> "" Then
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Wert Then
MsgBox "Blatt '" & Wert & "' gibt es bereits."
Exit For
End If
Next ws
If ws.Name <> Wert Then Sheets.Add.Name = Wert
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S. an Matthias:
Da war's schon wieder - meine "Tabellenname_aus_ZelleA()" hast du gerade schon gepostet. Sollten wir uns vielleicht vorher absprechen?
Anzeige
AW: Fehlermeldung abfangen
31.10.2005 23:36:30
Erich
Hallo Dieter,
sorry, meine Lösung war zwar ohne Fehlerhandling, aber falsch (nicht richtig getestet). So sollte es gehen:

Sub Tabellenname_aus_ZelleA()
Dim Wert As String, ws As Worksheet, istDa As Boolean
Wert = ActiveCell
If Wert <> "" Then
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Wert Then
MsgBox "Blatt '" & Wert & "' gibt es bereits."
istDa = True
Exit For
End If
Next ws
If Not istDa Then Sheets.Add.Name = Wert
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Fehlermeldung abfangen
01.11.2005 00:11:52
Dieter.G
Hallo Erich,
klappt hervorragend!!
Besten Dank
Gruß Dieter
Anzeige
AW: Fehlermeldung abfangen
01.11.2005 00:16:57
Matthias
Hallo Dieter,
der Vergleich wäre besser mit

If UCase(ws.Name) = UCase(Wert) Then

gemacht, denn ein gleichnamiger Tabellenname in der Zelle, der anders in der Groß/Kleinschreibung ist, wird sonst übersehen, und es tritt ein Laufzeitfehler auf.
Außerdem müssten noch die Zeichen \ / ? * [ ] überprüft werden, die sind im Blattnamen auch nicht erlaubt.
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige