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

Prüfem von Arbeitsblättern

Prüfem von Arbeitsblättern
18.12.2012 12:07:25
Arbeitsblättern
Hallo Gemeinde
Ich bräuchte mal einen Rat, da ich nicht weiter komme.
Also ich möchte bevor das Makro durchläuft prüfen ob bestimmte Arbeitsblätter vorhanden sind. (Das Makro speichert diese dann in einer seperaten Mappe)
Prüfung soll so aussehen
ich hab 5 relevante Datenblätter (in der aktuellen Mappe)
jetzt soll mittels VBA geprüft werden ob wenigstens 1 dieser Blätter vorhanden ist, egal ob NR3 oder NR1 ...
Ich hab es schon mit array probiert, komme aber auf keinen Grünen Zweig.
Hilfe wäre nett
Thanks in advance

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfem von Arbeitsblättern
18.12.2012 12:19:53
Arbeitsblättern
Hi,
Ich bräuchte mal einen Rat, da ich nicht weiter komme
klicke auf oben auf die Schlatfläche Recherche
suche im Archiv
gebe ...
prüfen ob arbeitsblatt vorhanden
ein
ich tippe auf za. 500 Treffer
gruß
Mäxl

804 Treffer ;-) oT
18.12.2012 12:21:29
Matthias

AW: Prüfem von Arbeitsblättern
18.12.2012 12:24:03
Arbeitsblättern
Hi,
klicke oben auf die Schaltfläche Recherche
Archivsuche
gebe ...
prüfen ob Arbeitsblatt vorhanden
ein
ich tippe auf za. 500 Treffer
gruß
Mäxl

Recherche erfolglos
18.12.2012 12:31:48
JACKD
Hallo Ihr Lieben das habe ich bereits gemacht
konnte allerdings nichts finden was meiner Anforderung "gerecht wird" da ich eigentlich nicht schauen will ob ein einzelnes da ist
Ich hatte mir es in etwa so vorgestellt
x1 = "Name1"
x2 = "Name2"
x3 = "Name3"
if Sheets(Array(x1, x2, x3)) = "" then
else
end if
Grüße

Anzeige
AW: Recherche erfolglos
18.12.2012 13:56:59
Mäxl
Hi,
da ich leider nicht die Zeit habe mir alle 804 Treffer anzuschauen
habe ich einfach den Ersten genommen.
Option Explicit
Sub zero()
Dim MeineNamenDieIchUeberpruefenMoechte, i As Integer
MeineNamenDieIchUeberpruefenMoechte = Array("Tabelle1", "Tabelle2", "Tabelle3", "Tabelle4")
For i = 0 To UBound(MeineNamenDieIchUeberpruefenMoechte)
If WorksheetEx(MeineNamenDieIchUeberpruefenMoechte(i)) Then
'oder was auch immer dann gemacht werden sollte
MsgBox MeineNamenDieIchUeberpruefenMoechte(i) & " ist vorhanden"
End If
Next
End Sub
Function WorksheetEx(ByVal strNam As String) As Boolean
On Error Resume Next
WorksheetEx = Worksheets(strNam).Index > 0
End Function

Anzeige
made my day
18.12.2012 14:08:25
Klaus
da ich leider nicht die Zeit habe mir alle 804 Treffer anzuschauen
habe ich einfach den Ersten genommen.

made my day!
Grüße,
Klaus M.vdT.

made my day
18.12.2012 14:08:25
Klaus
da ich leider nicht die Zeit habe mir alle 804 Treffer anzuschauen
habe ich einfach den Ersten genommen.

made my day!
Grüße,
Klaus M.vdT.

AW: Recherche erfolglos
18.12.2012 14:27:53
JACKD
Hallo Mäxl
Interessant.
Bei mir ist der erste treffer ein anderer.
Mag auch mit der Individualisierte suche bei Google zu tun haben.
Sei es drum ich hab es jetzt über eine Public Funktion gelöst
Function BlattExistiert(strTestname As String) As Boolean
Dim objBlatt As Worksheet
For Each objBlatt In ThisWorkbook
If objBlatt.name = strTestname Then
BlattExistiert = True
Exit For
Else
BlattExistiert = False
End If
Next objBlatt
End Function
die ich mit verschiedenen Parametern aufrufe.-
Danke für eure Hilfe

Anzeige
AW: Recherche erfolglos
18.12.2012 14:49:05
Mäxl
Hi,
http://www.google.com/cse?cx=006381966387372416808%3Atum9y1qqmcc&q=pr%FCfen+ob+arbeitsblatt+vorhanden&sa=Archivsuche&cof=FORID%3A0#gsc.tab=0&gsc.q=pr%C3%BCfen%20ob%20arbeitsblatt%20vorhanden&gsc.page=1
das war der erste Trefferin der Suche? (Die Function von Erich.G)
Was war bei Dir der erste Treffer?
macht das gleiche wie von Dir gepostet nur wesentlich effizienter, da keine weiteren Schleifendurchgänge sind sondern direkt geprüft wird.

Anzeige
lass ne Schleife drüberlaufen
18.12.2012 12:20:04
Matthias
Hallo
In der Schleife zählst Du (beim Vorhandensein des BlattNames) eine als Long deklarierte Variable hoch.
Ist am Ende die Variable größer 0 so war mind. ein Blatt dabei.
Was Du nun genau nach der Püfung vorhast, hast Du nicht geschrieben.
Option Explicit
Sub Lauf()
Dim x&, wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
If wks.Name = "Nr3" Or wks.Name = "Nr5" Then x = x + 1
Next
If x >= 1 Then
MsgBox "mind. ein Blatt war vorhanden", vbInformation, x & " mal Blattname gefunden"
Else
MsgBox "Keins der Blätter war vorhanden"
End If
End Sub
Gruß Matthias

Anzeige
AW: lass ne Schleife drüberlaufen
18.12.2012 12:33:22
JACKD
Hallo Matthias
vielen Dank für deinen Ansatz
Sicherlich eine mögliche Lösung. Nur könnte ich mir das sehr unübersichtlich vorstellen wenn es irgendwann 10 oder mehr Blätter werden.
Hast du vielleicht noch einen anderen Ansatz?
Grüße

Die Anzahl der Blätter ist doch völlig egal ...
18.12.2012 13:01:00
Matthias
Hallo Jack
For Each wks In ThisWorkbook.Worksheets ...

läuft über alle! Tabellenblätter der Mappe, egal ob 5 oder 10
Gruß Matthias

AW: Die Anzahl der Blätter ist doch völlig egal ...
18.12.2012 13:08:47
JACKD
Ja das ist soweit auch klar..
es geht darum wenn die Referenzbvlätter mehr werden.
Also sprich
Nr1 or Nr2 ... or Nr344
weißte was ich meine

Anzeige
AW: für viele Blätter
18.12.2012 13:47:38
Daniel
Hi
für mehrere Blätter könnte die Prüfung so aussehen:
dim sh as Worksheet
dim relBlätter(1 to 5) as string
dim i as long
dim Zähler as long
relBlätter(1) = "Blatt 1"
relBlätter(2) = "Blatt 2"
relBlätter(5) = "Blatt 5"
on error Resume Next
for i = 1 to Ubound(relBlätter)
err = 0
set sh = sheets(relBlätter(i))
if err = 0 then Zähler = Zähler + 1
next
On error Goto 0
Msgbox Zähler & " von " & Ubound(relBlätter) & " relevante Blätter in der Datei vorhanden." 
wenn weiter Blätter hinzukommen oder wegfallen musst du nur die Dimensionierung und die Zuweisung von relBlätter anpassen, der rest bleibt so wie er ist.
Gruß Daniel

Anzeige
schön übersichtlich - klappt super - Thx Daniel oT
19.12.2012 07:38:41
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige