Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1116to1120
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

wenn ein Blatt nicht existiert...

wenn ein Blatt nicht existiert...
Jörg-HH
Hallo zusammen

Die Datei, in der dieser Code läuft, hat in ihrer Ursprungsversion vieleviele Blätter, darunter  _
auch Tabelle31.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Dim Tabelle31
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
'Beim Öffnen der Datei wird die Public Sub refreshCdoKd() bzw. ...Ptn() aufgerufen.
'Diese ergibt einen Fehler, wenn die Linked Cells von Kd- oder Ptn-Dropdown leer sind
'(kann nach Änderungen im Blatt DBank vorkommen). Hier ein Hinweis, um das zu verhindern.
If Me.Sheets.Count 
Dann gibt es noch eine Miniversion zum Versenden, in der fast alle Blätter gelöscht sind - u.a. verschwindet dabei auch Tabelle31.
Schließe ich die Vollversion, gibt es keine Probleme.
Schließe ich die Miniversion, wird für "Tabelle31" gemeckert "Variable nicht definiert" (wohl, weil sie nicht mehr da ist)
Also schreibe ich oben Dim Tabelle31.
Dann ist es umgekehrt:
Schließe ich die Miniversion, gibt es keine Probleme.
Schließe ich die Vollversion, wird für "Tabelle31" gemeckert (aber ne andere Meldung - warum stört das Dim Tabelle31 denn überhaupt?)
Also mein nett gemeintes Schnipsel
If Me.Sheets.Count Exit Sub
kommt gar nicht zum Einsatz.
Hatte auch schon im Archiv nach Code gesucht, der prüft, ob ein Blatt existiert, aber bei der Einpassung in mein Problem bin ich nicht weitergekommen.
Hat jemand 'ne Idee, wie ich diesen Code ergänzen muß, damit er mit und ohne Tabelle31 läuft?
Im Grunde ist der Teil bei der Miniversion überflüssig - es würde also auch helfen, wenn ich den Abschnitt beim Herstellen der Miniversion löschen könnte, aber ich weiß nicht, wie ich Code mit Code löschen kann.
Grüße - Jörg

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn ein Blatt nicht existiert...
14.11.2009 10:44:55
Nepumuk
Hallo Jörg,
ein Beispiel:
Public Sub test()
    Dim objWorksheet As Worksheet
    Set objWorksheet = Get_Worksheet_By_CodeName("Tabelle31")
    If Not objWorksheet Is Nothing Then
        If objWorksheet.Range("G18").Value = "" Then
            MsgBox "Fehler in TP-Daten Kundenrinfo!" & vbLf & _
                "Klicken Sie im folgenden Dialog auf ""Abbrechen""" & vbLf & _
                "und korrigieren Sie den fehlenden Wert!"
            objWorksheet.Range("G18").Select
        End If
        If objWorksheet.Range("L20").Value = "" Then
            MsgBox "Fehler in TP-Daten Partnerinfo!" & vbLf & _
                "Klicken Sie im folgenden Dialog auf ""Abbrechen""" & vbLf & _
                "und korrigieren Sie den fehlenden Wert!"
            objWorksheet.Range("L20").Select
        End If
    End If
End Sub

Public Function Get_Worksheet_By_CodeName(strCodeName As String) As Worksheet
    Dim objWorksheet As Worksheet
    For Each objWorksheet In ThisWorkbook.Worksheets
        If objWorksheet.CodeName = strCodeName Then
            Set Get_Worksheet_By_CodeName = objWorksheet
            Exit For
        End If
    Next
End Function

Gruß
Nepumuk
Anzeige
klappt...
14.11.2009 13:46:06
Jörg-HH
Hallo Nepumuk,
ich hab zwar noch nicht ganz verstanden, warum ... aber es klappt!
Danke für den Tip - werd mich nachher nochmal darein vertiefen, um das zu begreifen
Grüße - Jörg
klappt doch nicht immer...
16.11.2009 22:26:17
Jörg-HH
Hi Nepumuk,
klappt doch nicht - und zwar in leicht geänderter Form bei BeforeSave statt BeforeClose, wenn Speichern=ja geklickt wird
Nähere Beschreibung und etwas erweiterter Umfang des Problems guck mal hier, wenn du magst:
https://www.herber.de/forum/messages/1117735.html
Grüße -Jörg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige