Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1004to1008
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

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!!!

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige