Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ist Tabelle vorhanden? - Wenn Nein erstelle diese

Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 12:04:00
Tom
Guten Morgen....na ist ja fast Mittag...
Also ich komm mit der Schleifen-schreiberrei noch nicht so ganz klar...daher frage ich mal lieber euch, da dies ja auch etwas komplexer ist.
Ich würde gern in einem Excel-Sheet überprüfen ob es bestimmte Tabellen gibt. Sollte es diese Tabelle nicht geben, so sollte diese erstellt werden. Das besagte Sheet ist aber nicht das selbe, von dem die Aktion ausgeht. Also müsste das warscheinlich notwendige öffnen vorab testen ob die datei bereits offen ist. Wenn diese offen ist, dann eine msgbox.
So nun das Wichtigste:
In dem Sheet von dem aus ich die Aktion per VBA starten möchte:
In Tabelle: "Vorgabewerte" steht in "C2" das Verzeichnis mit dem Dateinamen der Datei in der getestet werden soll ob dort bestimmte Tabellen vorhanden sind.
Welche Tabellen vorhanden sein sollen steht in der Tabelle: "Mitarbeiterdaten" in der Spalte "E" ab Zeile "4" - Ist die Tabelle also nicht vorhanden, dann eben mit genau diesem Namen erstellen. Als einzigste Bedingung für die Erstellung einer noch nicht vorhandenen Tabelle findet sich in der Spalte "F", also gleich neben dem Namen. Sollte dort das Wort "DOPPELT" drin stehen, dann nicht erstellen.
Ich habe mal eine Beispiel gemacht.
https://www.herber.de/bbs/user/55185.xls
Vielen Dank für eure Hilfe!!!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 12:20:00
Uduuh
Hallo,
teste mal:

Sub tt()
Dim wkb As Workbook, wks As Worksheet, rngC As Range
On Error Resume Next
With Worksheets("Vorgabewerte")
Set wkb = .Range("C2")
On Error GoTo 0
If wkb Is Nothing Then Set wkb = Workbooks.Open(.Range("C2"))
End With
With ThisWorkbook.Sheets("Mitarbeiterdaten")
For Each rngC In .Range(.Cells(4, 5), .Cells(4, 5).End(xlDown))
On Error Resume Next
Set wks = wkb.Sheets(rngC.Text)
On Error GoTo 0
If wks Is Nothing And rngC.Offset(0, 1)  "DOPPELT" Then
Set wks = wkb.Worksheets.Add
wks.Name = rngC.Text
End If
Next rngC
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 12:54:00
Tom
Oh! Vielen Dank!!!
Es wird aber nur eine Tabelle erstellt, die von Spalte 5 Zeile 4...also die erste.
Die Schleife will nicht...
Der Tom
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 13:12:31
Uduuh
Hallo,
korrigiert:

Sub tt()
Dim wkb As Workbook, wks As Worksheet, rngC As Range
On Error Resume Next
With Worksheets("Vorgabewerte")
Set wkb = .Range("C2")
On Error GoTo 0
If wkb Is Nothing Then Set wkb = Workbooks.Open(.Range("C2"))
End With
With ThisWorkbook.Sheets("Mitarbeiterdaten")
For Each rngC In .Range(.Cells(4, 5), .Cells(4, 5).End(xlDown))
Set wks = Nothing
On Error Resume Next
Set wks = wkb.Sheets(rngC.Text)
On Error GoTo 0
If wks Is Nothing And Len(rngC.Text) > 0 And rngC.Offset(0, 1)  "DOPPELT" Then
Set wks = wkb.Worksheets.Add
wks.Name = rngC.Text
End If
Next rngC
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 13:50:01
Tom
He super...
so gehts!
Ist es denn auch möglich statt dem erstellen einer leeren Tabelle eine Mustertabelle reinzukopieren?
Die Mustertabelle ist mit im der selben Datei zu finden wo auch die neuen Tabellen hin sollen.
Der Tom
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 14:02:16
Uduuh
Hallo,
ungetestet:

Sub tt()
Dim wkb As Workbook, wks As Worksheet, rngC As Range
On Error Resume Next
With Worksheets("Vorgabewerte")
Set wkb = .Range("C2")
On Error GoTo 0
If wkb Is Nothing Then Set wkb = Workbooks.Open(.Range("C2"))
End With
With ThisWorkbook.Sheets("Mitarbeiterdaten")
For Each rngC In .Range(.Cells(4, 5), .Cells(4, 5).End(xlDown))
Set wks = Nothing
On Error Resume Next
Set wks = wkb.Sheets(rngC.Text)
On Error GoTo 0
If wks Is Nothing And Len(rngC.Text) > 0 And rngC.Offset(0, 1)  "DOPPELT" Then
Set wks = wkb.Worksheets("Vorlage").Copy(after:=wkb.Worksheets(wkb.Worksheets.Count))
wks.Name = rngC.Text
End If
Next rngC
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 14:10:00
Tom
Aus dem Muster wird eine neue Tabelle erstellt...dann hängt er sich aber an dieser Stelle auf:
Set wks = wkb.Worksheets("Muster").Copy(after:=wkb.Worksheets(wkb.Worksheets.Count))
Laufzeitfehler 424
Objekt erforderlich
Der Tom
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 14:28:07
Uduuh
Hallo,

Sub tt()
Dim wkb As Workbook, wks As Worksheet, rngC As Range
On Error Resume Next
With Worksheets("Vorgabewerte")
Set wkb = .Range("C2")
On Error GoTo 0
If wkb Is Nothing Then Set wkb = Workbooks.Open(.Range("C2"))
End With
With ThisWorkbook.Sheets("Mitarbeiterdaten")
For Each rngC In .Range(.Cells(4, 5), .Cells(4, 5).End(xlDown))
Set wks = Nothing
On Error Resume Next
Set wks = wkb.Sheets(rngC.Text)
On Error GoTo 0
If wks Is Nothing And Len(rngC.Text) > 0 And rngC.Offset(0, 1)  "DOPPELT" Then
wkb.Worksheets("Muster").Copy before:=wkb.Worksheets(1)
ActiveSheet.Name = rngC.Text
End If
Next rngC
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Ist Tabelle vorhanden? - Wenn Nein erstelle diese
04.09.2008 14:36:00
Tom
Ja toll....so geht das !
Na vielen Dank!
Der Tom
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige