Hallo erst mal,
ich habe beim rumstöbern festgestellt, dass hier die VBA-cracks sitzen, die mir hoffentlich bei meinem Problem behilflich sein können.
Ausgangssituation:
Tabellenblatt 1: Stammdatenblatt mit Datensätzen (u.a. Namen, Adressen etc); je Datensatz eine Zeile; dieses Tabellenblatt ändert sich von Jahr zu Jahr (Struktur bleibt gleich nur die Anzahl der Datensätze ändert sich)
Tabellenblatt 2: Wertetabelle, aus dem Stammdatenblatt wird zeilenweise der jeweilige Name übernommen und individuell um Werte ergänzt
Tabellenblatt 3: Auswerteblatt; in einem vorgegebenen Formblatt werden sowohl Daten vom Stammblatt als auch Daten aus der Wertetabelle mithilfe der Funktion sverweis übernommen und dann ausgedruckt
Problem:
ich brauche für jeden Datensatz im Stammblatt ein Auswerteblatt (z.Zt. mache ich das über copy/paste und manuelles umbenennen und anpassen der Funktion sverweis bezüglich des Suchkriteriums)
gedachte Lösung:
über eine Schleife soll vom Stammblatt der Name aus der Zelle erfasst werden, dann das Auswerteblatt kopiert und mit dem entsprechenden Namen benannt werden, dann der nächste Name usw. bis alle Datensätze erfasst sind
Gibt es eine Möglichkeit in sverweis als Suchkriterium den Tabellennamen zu verwenden?
Ich freue mich auf eure Lösungsvorschläge
MfG
Gunnar
Ich habe jetzt noch ein wenig tiefer gesucht und auch schon vergleichbare Sachen gefunden, habe aber das Problem, dass meine Programmierkünste mit Turbopascal 6 geendet haben und ich nie wirklich in die objektorientierte Geschichte reingefunden habe. Ich blicke also absolut nicht durch, welche Objekte mit welchen Handles ich einsetzen kann und muss...
Aber hier vielleicht schon mal ein Stückchen Code, das für mich ganz passabel aussieht:
Sheets("Stammdaten").Range("B4").Value
in rot markiert das besagte Problem mit den Objekten und ihren Eigenschaften - ich weiß gar nicht ob es das gibt, was ich mir da ausgedacht habe; dass das nicht läuft muss ich nicht erwähnen oder
ich habe beim rumstöbern festgestellt, dass hier die VBA-cracks sitzen, die mir hoffentlich bei meinem Problem behilflich sein können.
Ausgangssituation:
Tabellenblatt 1: Stammdatenblatt mit Datensätzen (u.a. Namen, Adressen etc); je Datensatz eine Zeile; dieses Tabellenblatt ändert sich von Jahr zu Jahr (Struktur bleibt gleich nur die Anzahl der Datensätze ändert sich)
Tabellenblatt 2: Wertetabelle, aus dem Stammdatenblatt wird zeilenweise der jeweilige Name übernommen und individuell um Werte ergänzt
Tabellenblatt 3: Auswerteblatt; in einem vorgegebenen Formblatt werden sowohl Daten vom Stammblatt als auch Daten aus der Wertetabelle mithilfe der Funktion sverweis übernommen und dann ausgedruckt
Problem:
ich brauche für jeden Datensatz im Stammblatt ein Auswerteblatt (z.Zt. mache ich das über copy/paste und manuelles umbenennen und anpassen der Funktion sverweis bezüglich des Suchkriteriums)
gedachte Lösung:
über eine Schleife soll vom Stammblatt der Name aus der Zelle erfasst werden, dann das Auswerteblatt kopiert und mit dem entsprechenden Namen benannt werden, dann der nächste Name usw. bis alle Datensätze erfasst sind
Gibt es eine Möglichkeit in sverweis als Suchkriterium den Tabellennamen zu verwenden?
Ich freue mich auf eure Lösungsvorschläge
MfG
Gunnar
Ich habe jetzt noch ein wenig tiefer gesucht und auch schon vergleichbare Sachen gefunden, habe aber das Problem, dass meine Programmierkünste mit Turbopascal 6 geendet haben und ich nie wirklich in die objektorientierte Geschichte reingefunden habe. Ich blicke also absolut nicht durch, welche Objekte mit welchen Handles ich einsetzen kann und muss...
Aber hier vielleicht schon mal ein Stückchen Code, das für mich ganz passabel aussieht:
Code:
Public Sub NeueTabellenausNamen()
Dim intAnzahl As Integer, intZaehler As Integer
Dim blnTest As Boolean
Dim objSheet As Variant
intAnzahl = Sheets("Stammdaten").Range("B4") /hier soll die Anzahl der Durchläufe anhand der Anzahl der Datensätze erfasst werden
For intZaehler = 1 To intAnzahl /die Überprüfung, ob es das Tabellenblatt schon gibt
blnTest = False
For Each objSheet In Sheets
If objSheet.Name = Sheets("Stammdaten").Range("B4").Value Then
blnTest = True
Exit For
End If
Next objSheet
If Not blnTest Then /hier das erstellen und benennen der Tabellenblätter
Sheets("Auswertung").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets("Stammdaten").Range("B4").Value
End If
Next intZaehler
End Sub
Sheets("Stammdaten").Range("B4").Value
in rot markiert das besagte Problem mit den Objekten und ihren Eigenschaften - ich weiß gar nicht ob es das gibt, was ich mir da ausgedacht habe; dass das nicht läuft muss ich nicht erwähnen oder
Zuletzt bearbeitet: