Ich habe ein Prüfprotokoll in Excel, das Ausfüllen möchte ich nun mit Hilfe von user-forms vereinfachen.
Ausgangspunkt ist ein Prüfbogen auf dem die Ergebnisse für drei Prüfobjekte Platz finden. Im Ausdruck passen drei Prüfobjekte gut auf eine Seite, daher eben drei. Zu jedem Prüfobjekt gibt es immer die gleiche Anzahl von Kopfdaten (Produktname, Seriennummer u.ä.). Dann gibt es eine feste Anzahl von Prüfkriterien mit jeweils unterschiedlicher Anzahl von Bewertungspunkten. Ich habe das in einer Exceldatei mal schematisch dargestellt und unter https://www.herber.de/bbs/user/172261.xlsx hochgeladen.
Der leere Prüfbogen soll per VBA-Skript (sagen man das eigentlich so?) in eine neue Exceldatei kopiert werden. Eintragungen erfolgen als Textfeld, in der Regel ab aus drop-down-Listen in einem user-form. Wenn mehr als drei Prüfobjekte zu bewerten sind kann mit einem Button der Prüfbericht um die Spalten für drei weiter Prüfobjekte erweitert werden.
Wie adressiere ich die Zellen in denen die Eintragungen erfolgen soll am geschicktesten? Mir ist hier Flexibilität wichtig, es wird sicherlich Änderungen am Prüfbogen geben, ich will dann nicht jedes Mal das ganze Skript durchschauen müssen.
Ich könnte mir vorstellen den Zellen Namen zu vergeben. So nach dem Schema:
Objekt1Bezeichung
ObjektKofpdaten1-1
ObjektKofpdaten1-2
ObjektKofpdaten1-3
Kriterium1-1
Bewertung1-1-1
Bewertung1-1-2
Bewertung1-1-3
Bewertung1-1-4
Kriterium1-2
Bewertung1-2-1
Bewertung1-2-2
Bewertung1-2-3
…….
Objekt2Bezeichung
ObjektKofpdaten2-1
usw.
Für die ersten drei Objekte könnten die Name bereits vorbelegt sein. Bei der Erweiterung des Prüfbogen müssen dann die Namen per Skript in der Ausgangsdatei (hier soll sich dann auch das Skript befinden) geändert werden und dann kopiert werden. Gespeichert werden darf die Ausgangsdatei dann natürlich nicht mehr
Oder packt man die Zellenadressen in ein Array? Das müsste dann drei Dimensionen haben. Als String und im Klartext die Zellenadresse reinschreiben? Könnte man dann mit range recht einfach ansprechen. Oder eine andere Form? Es wären nicht alle belegt. Würde ein Array mit drei Dimension als Datenmenge einfach zu groß werden?
Oder bin ich komplett auf dem Holzweg und es gibt noch andere Ansätze?
Ich brauche keine fertige Lösung, gern aber ein paar Denkanstöße.
Vielen Dank für euere Hilfe.
Uwe