Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Prüfen ob Tabellenbatt vorhanden ist
03.07.2016 13:54:23
VBA_Neuling
Hallo zusammen,
Ich bin ein ziemlicher Neuling auf dem Bereich der VBA-Programmierung.
Mein Problem an dem ich gerade hänge ist folgendes.
Ich habe ein UserForm erstellt, in welches verschiedene Informationen eingetragen werden sollen. Unter anderem wird ausgewählt um welchen Typ es sich handelt. Ich möchte, dass die Daten welche allem dem gleichen Typ entsprechen in einem gesonderten Tabellenblatt zusammengefasst werden. Ich brauche also ein Makro, welches zunächst prüft, ob ein solches Tabellenblatt für z.B. Typ 1 schon existiert, und falls nein ein solches erstellt mit dem Namen Typ 1.
Folgenden Code habe ich schon geschrieben:
Dim NextColumn As Long
For Each Worksheet In ActiveWorkbook.Sheets
If Worksheet.Name = ListBox1.Name Then Worksheet.Activate
NextColumn = ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets("TextBox1.Text").Range("B5:B13").Copy
Sheets("ListBox1.Name").Range("NextColumn").Paste
If Not Worksheet.Name = ListBox1.Name Then
Sheets("GebTypVorlage").Copy Before:=Sheets("GebTypVorlage")
Sheets("GebTypVorlage (2)").Name = ListBox1.Text
NextColumn = ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets("TextBox1.Text").Range("B5:B13").Copy
Sheets("ListBox1.Name").Range("NextColumn").Paste
End If
Next
Damit bekomme ich aber nur Fehlermeldungen...
Könnte jemand von euch mal schauen wo das Problem liegen könnte? Der Code ist nur durch Recherche in Foren zusammen geschustert worden, für Kritik bin ich sehr offen :)
LG, Anna

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Tabellenbatt vorhanden ist
03.07.2016 14:01:01
Hajo_Zi
Halo Anna,
feststellen, ob Worksheet vorhanden ist
hier ein Beispiel, welches Du relativ einfach entsprechend abändern kannst:

Option Explicit
Sub TabAuswahl()
Dim BoVorhanden As Boolean
Dim WsTabelle As Worksheet
For Each WsTabelle In Worksheets
If WsTabelle.Name = "Tabelle1" Then
BoVorhanden = True
Exit For
End If
Next WsTabelle
If BoVorhanden Then
'vorhanden
Else
'nicht vorhanden
End If
End Sub

AW: Prüfen ob Tabellenbatt vorhanden ist
03.07.2016 14:23:35
VBA_Neuling
Danke für die super schnelle Antwort, Hajo!
Mein Code sieht jetzt so aus:
 Dim BoVorhanden As Boolean
Dim WsTabelle As Worksheet
Dim NextColumn As Long
For Each WsTabelle In Worksheets
If WsTabelle.Name = ListBox1.Name Then
BoVorhanden = True
Exit For
End If
Next WsTabelle
If BoVorhanden Then Worksheet.Activate
NextColumn = ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets("TextBox1.Text").Range("B5:B13").Copy
Sheets("ListBox1.Name").Range("NextColumn").Paste
If Not BoVorhanden Then
Sheets("GebTypVorlage").Copy Before:=Sheets("GebTypVorlage")
Sheets("GebTypVorlage (2)").Name = ListBox1.Text
NextColumn = ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets("TextBox1.Text").Range("B5:B13").Copy
Sheets("ListBox1.Name").Range("NextColumn").Paste
End If
Mein Problem ist jetzt noch, dass ich nicht weiß, wie ich die Worksheets mit den entsprechenden Namen ansprechen kann. Die Typen (Gebäudetypen) können aus einer ListBox ausgewählt werden. Und ich möchte, dass der Code für jeden Typ gilt. Bisher versuche ich die Tabellen mit Sheets("ListBox1.Name") anzusprechen. Ich denke, dass geht nicht weil ja kein Blatt mit dem Namen ListBox1 existiert. Eine Alternative, außer für jeden Typ einen seperaten Code zu schreiben ist mir bisher noch nicht eingefallen.
Ich bin mir nicht sicher, ob verständlich ist was ich will :D oder ob das überhaupt möglich ist..

Anzeige
AW: Prüfen ob Tabellenbatt vorhanden ist
03.07.2016 14:46:36
VBA_Neuling
Das hab ich schon von einigen Seiten gehört und versuche ich normalerweise auch zu beachten :)
Danke nochmal für den Hinweis..
Zu meinem anderen Problem:
Ich werde jetzt einfach alle Tabellenblätter zu den verschiedenen Typen erstellen und den Code mit if für jeden einzelnen Typ aufrufen. Ist zwar die "Idioten-" Lösung aber das funktioniert wenigstens :)

AW: Prüfen ob Tabellenbatt vorhanden ist
03.07.2016 17:28:35
VBA_Neuling
Sooo mein Problem hab ich gelöst :)
Hier meine Lösung, sollte sich jemand mal mit dem gleichen Problem rumschlagen:
Dim BoVorhanden As Boolean
Dim WsTabelle As Worksheet
Dim NextColumn As Long
Dim NameTyp As String
Dim NameGeb As String
NameTyp = ListBox1.Text
NameGeb = TextBox1.Text
For Each WsTabelle In Worksheets
If WsTabelle.Name = NameTyp Then
BoVorhanden = True
Exit For
End If
Next WsTabelle
If Not BoVorhanden Then
Sheets("GebTypVorlage").Copy Before:=Sheets("GebTypVorlage")
Sheets("GebTypVorlage (2)").Name = NameTyp
NextColumn = ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets(NameGeb).Range("B5:B13").Copy Destination:=Sheets(NameTyp).Cells(7,  _
NextColumn)
Else
Sheets(NameTyp).Activate
NextColumn = Cells(7, Columns.Count).End(xlToLeft).Column + 1
Sheets(NameGeb).Range("B5:B13").Copy Destination:=Sheets(NameTyp).Cells(7, NextColumn)
End If
Liebe Grüße und vielen Dank nochmal an Hajo :)
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige