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

Konfigurationsarbeitsblatt für VBA-Code

Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 11:14:45
Zooza
Guten Tag zusammen,
leider haben mir Google-Recherchen in diesem besonderen Fall nicht weitergeholfen:
Ich habe ein VBA Programm, dass verschiedene Excel-Tabellen durchsucht und Werte ausliest, die an verschiedenen Stellen stehen. Diese Werte sollen dann gesammelt werden und am Ende in einer großen Übersicht ausgegeben werden. Das Problem ist, dass die zu durchsuchenden Excel-Dateien regelmäßig aktualisiert werden und sich die Positionen der abzufragenden Daten u.U. ändern kann. Meine Idee ist nun gewesen, dass ich in der Excel-Datei, die den VBA-Code enthält, eine Art Konfigurationsarbeitsblatt einrichte. Das sieht aktuell so aus:
Name | N23
Beruf | N24
Englischkenntniss | Y24
usw...
Nun will ich meinen Code so schreiben, dass die zu durchsuchende Zellenposition vorher aus der Konfigurationsdatei ausgelesen wird. Hintergrund (später sollen die User die Konfigurationsdatei anpassen, wenn sich das Template der Dateien wieder ändern sollte)
Ich hoffe ich konnte das Problem verständlich erklären.
Eine weitere Frage lautet:
Wie würdet ihr die auszulesenden Daten speichern? Direkt in die Übersicht kopieren oder erst in ein Array/Collection etc. speichern und dann am Ende in die Übersicht ausgeben.
Lg,
Zooza

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 11:24:28
EtoPHG
Hallo Zooza,
Deine Frage verstehe ich nicht.
Die Konfigurationen sind doch im Tabellenblatt gespeichert, deren Inhalt muss nun nur noch im VBA Code richtig angewandt werden. Was du da mit "Übersicht", "Array", "Collection" meinst, ist mir schleierhaft!
Gruess Hansueli
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 12:48:28
Zooza
Dann versuche ich nochmal umzuformulieren:
Ich öffne Datei "A". Diese wird direkt unsichtbar und es wird nur noch die UserForm angezeigt. Der User klickt in der UserForm auf den Button. Die Schleife öffnet nun nach und nach alle Excel-Dateien eines Ordners und sucht dort Werte heraus. Doch wo der Algorithmus suchen soll, steht in Datei "A" in einem Arbeitsblatt.
Meine Lösung wäre jetzt:
    Dim collectionDaten As New Collection
Workbooks.Open Filename:=dateiPfadSuchen & dateiNameSuchen
For i = 1 To 34
collectionDaten.Add (Workbooks(dateiNameSuchen).Sheets(1).Range().Value)
Next
Workbooks(dateiNameSuchen).Close savechanges:=False
Und in die Klammer von Range, soll eine Funktion aufgerufen werden, die die Zellenposition (die ja im Arbeitsblatt von Datei "A" steht) zurückgibt. Nur wie greife ich in der Funktion auf die Datei "A" zu, die ja im Hintergrund geöffnet ist. Offen und Aktiv ist ja die Datei, die gerade aufgemacht worden ist.
LG,
Zooza
Anzeige
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 13:06:42
Bernd
Servus Zooza,
so? Angenommen in "B2" steht die Zelladresse, die verwendet werden soll...

ActiveSheet.Range(ActiveSheet.Cells(2, 2).Value).Select

Je nach Anzahl der zu übertragenden Daten aus Datei B würde ich auch auf Collection verzichten und die Daten direkt in Datei A eintragen.
Grüße, Bernd
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 13:27:26
Zooza
Dann versuche ich nochmal umzuformulieren:
Ich öffne Datei "A". Diese wird direkt unsichtbar und es wird nur noch die UserForm angezeigt. Der User klickt in der UserForm auf den Button. Die Schleife öffnet nun nach und nach alle Excel-Dateien eines Ordners und sucht dort Werte heraus. Doch wo der Algorithmus suchen soll, steht in Datei "A" in einem Arbeitsblatt.
Meine Lösung wäre jetzt:
    Dim collectionDaten As New Collection
Workbooks.Open Filename:=dateiPfadSuchen & dateiNameSuchen
For i = 1 To 34
collectionDaten.Add (Workbooks(dateiNameSuchen).Sheets(1).Range().Value)
Next
Workbooks(dateiNameSuchen).Close savechanges:=False
Und in die Klammer von Range, soll eine Funktion aufgerufen werden, die die Zellenposition (die ja im Arbeitsblatt von Datei "A" steht) zurückgibt. Nur wie greife ich in der Funktion auf die Datei "A" zu, die ja im Hintergrund geöffnet ist. Offen und Aktiv ist ja die Datei, die gerade aufgemacht worden ist.
LG,
Zooza
Anzeige
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 11:37:04
Sulprobil
Hallo,
Wieso eine Konfigurationsdatei, wenn Du auch nach Schlüsselwörtern, ggf. zusammen mit spezifizierten Formaten automatisch suchen könntest?
Das Zwischenspeichern ist Ansichtssache. Bei großen Datenmengen oder Laufzeitproblemen kann es Sinn machen.
Viele Grüße,
Bernd P
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 13:37:38
Zooza
Hi Bernd,
eine Konfiguration ist aus meiner Sicht notwendig, da die zu durchsuchenden Dateien nicht wie klassische Exceltabellen genutzt werden, sondern (historisch gewachsen) riesige Formulare geworden sind. (Listen, die die Werte irgendwo versteckt ausgeben, damit es "schick" aussieht).
Lg,
Zooza
Anzeige
AW: Konfigurationsarbeitsblatt für VBA-Code
21.03.2019 14:00:28
Zooza
Okay, ich denke ich habe eine Lösung gefunden:
Set openWorkbook = ActiveWorkbook
For i = 1 To 34
collectionDaten.Add (openWorkbook.Sheets(1).Range(zellenposition(i)))
Next i

Function zellenposition(i As Integer) As String
zellenposition = masterWorkbook.Sheets(1).Cells(i, 2)
End Function

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige