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

Msg-Box-Aufruf bei doppeltem Blattnamen

Msg-Box-Aufruf bei doppeltem Blattnamen
Udo
Hallo miteinander!
Erstelle mit Hilfe eines Makros ein neues Tabellenblatt - den Namen übernehme ich von einer Zelle einer Originaltabelle. Bis hierher funktionierts!
Wenn ein Tabellenblatt erstellt wurde und ich das Makro wiederum aufrufe (wiederum aus der Originaltabelle) und die Zelle mit dem Tabellennamen nicht geändert wurde (durch vergessen), kann natürlich das Makro nicht abgearbeitet werden - es wird gestoppt, aufgrund des sonst doppelten Tabellennamens.
Wie muss ich nun eine Msg-Box aufbauen, um bei einem schon vorhandenen Tabellennamen den Maktroabbruch vermeiden zu können und dem Anwender die Möglichkeit zu geben, via Eingabe in Meldefenster eine Korrektur vorzunehmen und dann via OK das Makro weiter abarbeiten zu lassen?
Könnt Ihr mir helfen?
Besten Dank und freundliche Grüsse
Udo

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

Betreff
Benutzer
Anzeige
AW: Msg-Box-Aufruf bei doppeltem Blattnamen
Boris
Hi Udo,
einfach in einer Schleife VORHER alle Blattnamen mit dem Namen in A1 (=Zelle mit dem Tabellennnamen) abgleichen:
Option Explicit

Sub Blatt_Schon_vorhanden()
Dim Sh As Object
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = Range("A1") Then
MsgBox "Blatt gibbet schon...", , "So nicht..."
Exit Sub
End If
Next Sh
'Und hier geht´s normal weiter...
End Sub

Grüße Boris
AW: Msg-Box-Aufruf bei doppeltem Blattnamen
Oberschlumpf
Hi Udo
Meine Idee verwendet eine Inoutbox, um nach der Eingabe in der selben sofort den Blattnamen und den Inhalt der Zelle zu aktualisieren, in der der noch ungültige Blattname steht.


Sub BlattName()
    Dim lstrTabName As String
    
    On Error GoTo fehlerbehandlung
    Sheets("NameDeinerOriginalTabelle").Select
    Sheets.Add
    ActiveSheet.Name = Sheets("NameDeinerOriginalTabelle").Range("ZelleMitBlattName").Value
    MsgBox "hier gehts weiter"
    
fehlerbehandlung:
        If InStr(1, Err.Description, "Kann einem Blatt nicht den gleichen Namen geben") <> 0 Then
            lstrTabName = InputBox("Bitte geben Sie einen gültigen Blattnamen ein.", "Blattname eingeben")
            ActiveSheet.Name = lstrTabName
            Sheets("NameDeinerOriginalTabelle").Range("ZelleMitBlattName").Value = lstrTabName
            Resume Next
        End If
End Sub


Konnte ich helfen?
Ciao
Thorsten
Anzeige
Frage an Oberschlumpf
Udo
Hallo Oberschlumpf
Besten Dank für Deine Hilfe - ich habe aber Einbindungsprobleme, habe deshalb mein Makro untenstehend aufgeführt. Ich öffne bereits ein Tabellenblatt, da ich eine Kopie brauche - Du öffnest auch eines. Mein Referenzname heisst MSR_Nummer; ich stelle das neue Blatt jeweils an den Anfang der Registerblätter.
Kannst Du mir weiterhelfen? Habe die Positionen mit ! hervorgehoben.

Sub Bestellblatt_erstellen()
' Bestellblatt_erstellen Makro
' Makro am 29.03.2004 von   aufgezeichnet
Application.ScreenUpdating = False
Sheets("Menü-Übersicht").Select
ActiveSheet.Unprotect
Sheets("Grundtabelle").Select
ActiveSheet.Unprotect
!   Sheets("Grundtabelle").Select
!   Sheets("Grundtabelle").Copy Before:=Sheets(1)
!   Sheets(1).Select
!   Titel = Sheets(1).Range("MSR_Nummer").Value
!   Sheets(1).Name = Titel
Columns("C:C").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Columns("l:BE").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("c:c").Select '5. Spalte Markieren
Selection.SpecialCells(xlCellTypeBlanks).Select 'Alle Leerzellen Markieren
Selection.EntireRow.Delete 'Von den ausgewählten Zellen die ganze Zeile löschen
Cells.Select
Selection.FormatConditions.Delete
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.Shapes("Button 2").Select
Selection.Characters.Text = "Bestellung per E-Mail"
With Selection.Characters(Start:=1, Length:=21).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 6
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 5
End With
Selection.OnAction = "E_Mail_Versand"
Columns("B:G").Select
ActiveSheet.PageSetup.PrintArea = "$B:$H"
Range("B3").Select
Sheets("Menü-Übersicht").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Grundtabelle").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub

Nochmals recht herzlichen Dank für hierhin.
Gruss Udo
Anzeige
AW: Frage an Oberschlumpf
22.04.2004 12:27:27
Oberschlumpf
Hi Udo
Sorry, dass ich jetzt erst antworte, aber ich hab ja auch noch ein anderes "Leben" außer Excel :-)
So, hier nun der geänderte Code:


Sub Bestellblatt_erstellen()
'
' Bestellblatt_erstellen Makro
' Makro am 29.03.2004 von   aufgezeichnet
'
Dim lstrTabName As String 'Variablen sollten immer deklariert werden
Application.ScreenUpdating = False 'direkt unter diese Zeile kommt "On Error..."
On Error Goto Fehlerbehandlung:
'...Dein Code...
Application.ScreenUpdating = True 'direkt unter DIESE Zeile kommt die Fehlerbehandlung
fehlerbehandlung:
        If InStr(1, Err.Description, "Kann einem Blatt nicht den gleichen Namen geben") <> 0 Then
            lstrTabName = InputBox("Bitte geben Sie einen gültigen Blattnamen ein.", "Blattname eingeben")
            ActiveSheet.Name = lstrTabName
            Sheets(1).Range("MSR_Nummer").Value = lstrTabName
            Resume Next
        End If
End Sub


Hoffe, dass Dir hiermit nun geholfen ist. :)
Ciao
Thorsten
Anzeige
Besten Dank an alle!!!
Udo
Hallo Miteinander!!!
Bin so froh, es läuft.
Möchte mich bei Euch bedanken - habe den Code noch leicht angepasst und bin ein grosses Stück weiter im meinem VBA-Abenteuer.
Es grüsst freundlich
Udo
thx for feedback :-) o.T.
22.04.2004 13:52:36
Oberschlumpf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige