Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

Abfrage eines Worksheet

Abfrage eines Worksheet
30.03.2023 10:41:23
Oliver

Hallo zusammen,
ich hätte folgendes Problem.

Ich möchte beim Starten eines Makros abfragen ob bestimmte Tabellenblätter vorhanden sind oder nicht.
Die Namen der Tabellenblätter wären ( Teilenummer , Bestand, Meeting_Minutes )
Wenn sie nicht vorhanden sind, sollen sie eingefügt werden.
Wenn sie bereits vorhanden sind , soll der punkt einfach übersprungen werden.

Ich hoffe mal das reicht als Beschreibung
Und es ist recht simple , was die Abfrage angeht.

Gruß Oliver

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage eines Worksheet
30.03.2023 11:39:46
Oberschlumpf
Hi Oliver,

hiermit überprüfst du, ob bestimmte Blätter enthalten sind.

- wenn JA, passiert gar nix
- wenn NEIN, wird das noch fehlende Blatt hinzugefügt


Sub sbAddSheets()

    Dim lsh As Worksheet, lboExist As Boolean, larNames() As String, liIdx As Integer
    
    ReDim larNames(2) 'erste Zahl ist 0! deswegen kann larNames mit (2) 3! Einträge enthalten - Wert erhöhen, wenn 3 Einträge zu wenig
    
    larNames(0) = "Teilenummer"
    larNames(1) = "Bestand"
    larNames(2) = "Meeting_Minutes"
   'und ab hier weitere Blattnamen hinzufügen, wenn erforderlich
    
        For liIdx = 0 To UBound(larNames)
            For Each lsh In Sheets
                If lsh.Name = larNames(liIdx) Then
                    lboExist = True
                    Exit For
                End If
            Next
            If lboExist = True Then
                    lboExist = False
                Else
                    Sheets.Add after:=Sheets(Sheets.Count)
                    ActiveSheet.Name = larNames(liIdx)
            End If
        Next
        
End Sub
Hilfts?

Ciao
Thorsten


Anzeige
AW: Abfrage eines Worksheet
30.03.2023 13:08:08
Oliver
Hallo ,
danke für schnelle Hilfe.
Ja das Makro macht genau das was ich eigentlich wollte.
Wenn ich es aber in mein bestehendes Makro einfüge und laufen lasse, werden mir die SVerweise die das entsprechende Blatt abfragen sollen zerschossen.
Trotzdem danke
Ich versuch mich weiter :-)

Aber vielleicht habt ihr auch da ne lösung das sverweise nicht zerschosssen werden


AW: Abfrage eines Worksheet
30.03.2023 13:21:18
Daniel
Hi
fehlende Sheets kann man auch so ergänzen:
dim sh as worksheet
dim x
for each x in Array("Teilenummer", "Bestand", "Meeting_Minutes"
    for each sh in thisworkbook.worksheets
        if sh.Name = x then exit for
    next
    if sh is nothing then 
          Thisworkbook.Sheets.add after:=thisworkbook.Sheets(thisworkbook.Sheets.count)
          activeSheet.Name = x
    end if
next
zu deiner folgefrage:
beim Einfügen von Sheets werden keine Bezüge in Formeln zerstört.
Das passiert schon beim Löschen dieser Blätter.
Wenn du Formeln hast, die auf diese Blätter referenzieren, dann darfst du die Blätter nicht löschen.
Wenn du es trotzdem machen willst, musst du entweder:
- die Formeln nach dem einfügen der Blätter neu erstellen
- die Bezüge auf diese Blätter mit Hilfe der Funktion INDIREKT erstellen.
Gruß Daniel


Anzeige
AW: Abfrage eines Worksheet
04.04.2023 09:58:54
Oliver
Hallo,
Leute, Sorry für die Späte Rückmeldung.
Ja das hat so wie es Beschrieben wurde von der Formel her, super geklappt.
Mein Fehler war, das ich sie einfach an einer falschen Stelle in meinen Code kopiert hatte.
Also Vielen vielen Dank für die Hilfe.

Gruß Oliver

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige