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

Anzeigen von Tabellenbereichen | Herbers Excel-Forum

Anzeigen von Tabellenbereichen
20.01.2010 11:09:32
jeron

Hallo liebe Excelfreunde,
ich habe ein einfaches Problem, dass ich schon laienhaft gelöst habe, hätte aber gerne noch eine
Anregung zur Optimierung.
Ich habe im Tabellenblatt 1 eine Drop Down Liste ( KW1, KW2, KW3...KW52) in der Kalenderwochen angezeigt werden.
Für jede Kalenderwoche soll jetzt ein Bereich aus einem anderen Tabellenblatt angezeigt werden.
Wichtig hierbei ist zu wissen, dass die angezeigten Bereiche nicht gleich groß sind, ich also gerne mit einer Funktion arbeiten würde, die mir den Inhalt nur anzeigt und nicht einfach den Inhalt des Bereiches kopiert und mir an meiner Anzeigestelle (Tabelle1 B21:I xx) einfügt.
Wenn Auswahl KW1: Dann Anzeigen Bereich aus Tabellenblatt 3 ( B5:I18) in Tabellenblatt 1 B21: I xx
Wenn Auswahl KW2: Dann Anzeigen Bereich aus Tabellenblatt 3 ( B22:I34) in Tabellenblatt 1 B21: I xx
Wenn Auswahl KW3: Dann Anzeigen Bereich aus Tabellenblatt 3 ( B37:I53) in Tabellenblatt 1 B21: I xx
...
...
Bis KW53
Ich habe momentan mit Copy und Paste Makro und If Else, Else if gearbeitet. Finde das aber nicht sehr schön.
Ich würde gerne mit Select Case Arbeiten und mit der besagten Anzeigefunktion
brauche hierzu eine Hilfestellung bei der Definition:
Es können nämlich 3 Variablen vorliegen die ich per Case bestimmen muss
1. Die Arbeitsmappe der Quellinformation
2. Das Tabellenblatt der Quellinformation
3. Der spezielle Bereich der Quellinformation
Für jede Anregung und Hilfestellung bin ich sehr dankbar.
Viele Grüße aus München,
Jeron

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzeigen von Tabellenbereichen
20.01.2010 13:48:44
fcs
Hallo Jeron,
was meinst du mit der Anzeigefunktion?
Ansonsten ist es ja der Wahnsinn was du da im Code machen willst.
Den zu kopierenden Bereich für 52 KW, für mehrer Dateien und ggf. mehrere Tabellenblätter festzulegen.
Da die Menge an Code-text, die du in einem Modul schreiben kannst begrenzt ist, könnte es da Probleme geben.
Besser und pflegeleichter ist es, diese Informationen in einem Tabellenblatt zu hinterlegen und diese Tabelle nach KW, Dateiname, Tabellenblatt zu durchsuchen und den Bereich auszulesen.
Eine Select Case Kontruktion kann wie folgt aus sehen -aber wie geschrieben- bei deinem Vorhaben der schiere Wahnsinn.
Gruß
Franz
Sub Test()
Dim sKW As String, sBereich As String
Dim sDatei As String
Dim sTab As String
Dim wks As Worksheet
Set wks = ActiveSheet
sKW = wks.Range("C2")
sDatei = LCase(wks.Range("C3")) 'Dateiname in Kleinbuchstaben
sTab = LCase(wks.Range("C4")) 'Tabellenname in Kleinbuchstaben
Select Case sKW
Case "KW1"
Select Case sDatei
Case "exceldatei01.xls"
Select Case sTab
Case "tabelle1": sBereich = "B5:B18"
Case "tabelle2": sBereich = "B5:B22"
'... usw
End Select
Case "exceldatei02.xls"
Select Case sTab
Case "tabelleA": sBereich = "B5:B22"
Case "tabelleB": sBereich = "B5:B13"
'... usw
End Select
'... usw
End Select
Case "KW2": sBereich = "B22:I34"
Select Case sDatei
Case "exceldatei01.xls"
Select Case sTab
Case "tabelle1": sBereich = "B5:B18"
Case "tabelle2": sBereich = "B5:B22"
'... usw
End Select
Case "exceldatei02.xls"
Select Case sTab
Case "tabelleA": sBereich = "B5:B22"
Case "tabelleB": sBereich = "B5:B13"
'... usw
End Select
'... usw
End Select
'... usw
End Select
If sBereich <> "" Then
With wks
'Altdaten löschen
.Range(.Range("B21"), .Range("B21").End(xlDown).Offset(0, 7)).ClearContents
Workbooks(sDatei).Worksheets(sTab).Range(sBereich).Copy
.Range("B21").PasteSpecial Paste:=xlPasteFormats
.Range("B21").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
Else
MsgBox "Für """ & sKW & """ keine Übereinstimmung in Case-Anweisungen gefunden.", _
vbInformation + vbOKOnly, "Daten-Anzeige"
End If
End Sub

Anzeige
AW: Anzeigen von Tabellenbereichen
20.01.2010 14:47:09
jeron
Hallo Franz,
ja das sieht doch super aus.
Ich glaube aber, dass ein Missverständins vorliegt.
Es gibt 52 Kalenderwochen mit 52 unterschiedlichen Bereichen die sich auf verschiedene Tabellenblätter in nur einer Mappe verteilen.
Die Quelle ist also nur eine bestimmte Arbeitsmappe.
Das heißt ein Case hat eigentlich keine drei Variablen sondern einen festen Wert für die Info Quelldatei, Tabellenblatt und die Info Bereich.
Ich muss demnach nur einmal für alle 52 Cases nur eine QuellArbeitsmappe definieren und dann
für jeden Case halt das bestimmte Tabellenblatt und den bestimmten Bereich:
Ungfähr so:
Für alle Cases gilt die Quelldatei "dateiname auch Pfad möglcih? "
Der Case soll als Grundlage die Info der KW aus der Eingabe ComboBox 1 ziehen.
wenn ComboBox: " KW1"
dann Case "KW1"
mit Tabellenblatt " "
und Bereich " "
der Bereich soll kopiert werden
und in Tabellenblatt 1 ab A41 eingefügt werden.
Bei erneuter Auswahl wird kopierter Bereich gelöscht und ein anderer Inhalt erneut hineinkopiert.
Ich bräuchte bitte deine Hilfe bei der Erstellung der Struktur für die Select Case Anwendung für die Cases die ich definieren muss.
Ich finde die Idee mit der Anlegung einer Quellliste auch nicht schlecht und dann halt mit Filtern zu Arbeiten. Möchte aber hier mit Select Case arbeiten.
Mit Anzeigefunktion meinte ich das der ausgewählte Bereich (in Abhängigkeit der KW) kopiert wird und mir dann immer an einer Stelle in Tabellenblatt1 angezeigt wird.
Ich danke dir schon mal für deine Hilfe und hoffe du kannst mir noch mal unter die Arme greifen.
Beste Grüße,
Jeron
Anzeige
AW: Anzeigen von Tabellenbereichen
21.01.2010 07:20:03
fcs
Hallo Jeron,
dann wird die Struktur der SELECT-Anweisung natürlich einfacher und bleibt vom Umfang her im Rahmen.
Ich hab die reine Select-Anweisung auch um das notwendige Drumherum ergänzt, so dass Eingabefehler bzw. fehlende Tabellenblätter im Makro kontrolliert abgefangen werden.
Gruß
Franz
https://www.herber.de/bbs/user/67369.txt
AW: Anzeigen von Tabellenbereichen
21.01.2010 17:43:27
jeron
Hallo Franz,
es klappt einfach super und ich bin total happy.
Ich danke dir vielmals für deine Hilfe.
Echt ein geiles Makro, das du da gebaut hast!!
Beste Grüße aus München,
Jeron Bitto
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige