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

Forumthread: Tabellenblattname aus Zelle

Tabellenblattname aus Zelle
Gisela
Hallo,
vor einigen Tagen habt ihr mit hierbei schon mal geholfen. Jetzt habe ich noch ein Problem.
Der Tabellenblattname (im Beispiel Juli) soll aus der Zelle D4 im Tabellenblatt "wochenplan" entnommen werden.
Kann mir dabei bitte jemand helfen. Was oder wie muss ich was ändern?
Sub KW_Belegung()
Application.ScreenUpdating = False
Sheets("test2").Select
Dim wks_Q As Worksheet 'Tabelle mit dem Themenplan
Dim wks_Z As Worksheet 'Tabelle mit dem KW-Plan
Dim lngKW As Long, lngSpaSo As Long, lngSpaSa As Long, lngZeile As Long, lngSpalte As Long
Dim rngZelle As Range, rngKW As Range
Dim strName As String, varThema As Variant
Set wks_Q = ActiveWorkbook.Worksheets("juli") 'Tabelle mit dem Themenplan
Set wks_Z = ActiveWorkbook.Worksheets("test2") 'Tabelle mit dem KW-Planan
lngKW = wks_Z.Range("B2") 'Eingetragene KW im kalenderplan
With wks_Z
'alte Einträge in KW-Plan ab Zeile 5 löschen
Set rngZelle = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
If rngZelle Is Nothing Then
lngZeile = 1
Else
lngZeile = rngZelle.Row
End If
If lngZeile >= 5 Then
.Range(.Rows(5), .Rows(lngZeile)).ClearContents
End If
End With
With wks_Q
'Spalte So (1. Tag) in der KW im Themenplan suchen
For lngSpalte = 3 To .Cells(3, .Columns.Count).End(xlToLeft).Column
If .Cells(3, lngSpalte).Value = lngKW Then
lngSpaSo = lngSpalte
lngSpaSa = lngSpalte + 6
Exit For
End If
Next
'Namen abarbeiten
For lngZeile = 7 To .Cells(.Rows.Count, 1).End(xlUp).Row
strName = .Cells(lngZeile, 1).Value & ", " & .Cells(lngZeile, 2).Value
'Zellbereich mit den zum Namen eingetragenen Themen
Set rngKW = .Range(.Cells(lngZeile, lngSpaSo), .Cells(lngZeile, lngSpaSa))
With wks_Z
For lngSpalte = 1 To 5 'Themen im KW-Plan durchsuchen
If .Cells(3, lngSpalte)  "" Then
varThema = Left(.Cells(3, lngSpalte).Value, 2)
'prüfen ob Thema beim Namen in KW eingetragen
If Application.WorksheetFunction.CountIf(rngKW, varThema) > 0 Then
.Cells(.Rows.Count, lngSpalte).End(xlUp).Offset(1, 0).Value = strName
End If
End If
Next
End With
Next
End With
Application.ScreenUpdating = True
End Sub
Vielen Dank für jede Hilfe
Gisela
Anzeige
AW: Tabellenblattname aus Zelle
18.07.2012 14:35:33
Matze,Matthias
Hallo Gisela,
Set wks_Q = ActiveWorkbook.Worksheets("juli") 'Tabelle mit dem Themenplan
Set wks_Q = ActiveWorkbook.Worksheets("Wochenplan").Range("D4")
so sollte es gehn,...
Gruß Matze
AW: Tabellenblattname aus Zelle
18.07.2012 16:18:16
Gisela
Hallo Matze,
vielen Dank, dass du mir helfen willst.
Ich habs mal geändert, erhalte aber eine Fehlermeldung
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht
Hast du noch einen Tipp, was ich ändern muss.
Grüße
Gisela
Anzeige
AW: Tabellenblattname aus Zelle
18.07.2012 17:58:44
Josef

Hallo Gisela,
ohne Fehlerüberprüfung!
Set wks_Q = ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets("wochenplan").Range("D4"))


« Gruß Sepp »

Anzeige
AW: Tabellenblattname aus Zelle
18.07.2012 18:26:58
Gisela
Hallo Sepp,
vielen Dank für die Änderung.
Jetzt wird Fehler, Typen unverträglich angezeigt.
Die Fehlermeldung beziehen sich immer auf die veränderte Zeile. Mit (Juli) funktionierts nach wie vor.
Hast du noch einen Tipp?
Grüße
Gisela
AW: Tabellenblattname aus Zelle
18.07.2012 18:44:08
Josef

Hallo Gisela,
wenn das nicht zum Ratespiel werden soll, solltest du vielleicht sagen, was den in der Zelle D4 steht!

« Gruß Sepp »

Anzeige
AW: Tabellenblattname aus Zelle
18.07.2012 18:51:55
Gisela
Hallo Sepp,
in der Zelle wird der Name des Tabellenblattes angegeben.
Da ich das ganze für verschiedene Monate (Tabellenblätter) habe, war mein Gedanke, das ich dadurch nicht für jeden Monat dann ein Makro anlegen muss.
Hilft dir das weiter?
Grüße
Gisela
AW: Tabellenblattname aus Zelle
18.07.2012 18:57:35
Josef

Hallo Gisela,
na gut, aber was steht wirklich in der Zelle?
Probier mal.
Set wks_Q = ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets("wochenplan").Range("D4").Text)


« Gruß Sepp »

Anzeige
Funktioniert, vielen Dank Sepp, o.T.
18.07.2012 19:16:55
Gisela
o.T.

Forumthreads zu verwandten Themen

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