Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel „updater“
#1
Hallo,

als „Wiedereinsteiger“ in Excel / VBA, (gefühlte 25 Jahre her) habe Ich mich überreden lassen ein „Datenprogramm“ für einer gemeinnützigen Organisation hier vor Ort zu erstellen.
(In Deutschland hätte ich solch eine Bitte sofort abgelehnt, aber in Lateinamerika läuft das ein wenig anders.)

Inzwischen kommen mir allerdings Zweifel, ob meinen Ausflug in die Excel / VBA Welt eine gute Idee war.
Warum?
Es geht um Daten(bank)pflege.
Konkret:
Ich geben meine erste 0.1 Version an die Menschen weiter, die das „Programm“ anwenden, Verbesserungsvorschläge machen, mit Daten füllen.
Und jetzt die Herausforderung!
Einige Zeit später ist die Version 0.2 fertig.
Momentan habe ich überhaupt keine Vorstellung, wie die bereits in der Version 01 eingegebenen Daten „automatisch“ auf die neue Version 0.2 übertragen werden können.
Back- Frontend kommt auf keine Fall in Frage! (auch nicht Access oder LibreOffice Base!)

Dieses Problem „Updater“ habe ich bereits vor etlichen Tagen in diesem Excel Forum gestellt, allerdings nicht als „eigenständiges“ Thema, sondern im Zusammenhang, ich glaube mit „Dropdownliste“.
Sinngemäße Antwort eines hilfsbereiten Menschen in diesem Forum:
Versuch es doch mal mit einem „Updater“.

Leider habe ich im Internet nichts gefunden bezüglich „Excel Updater“.

Falls jemand von Euch im Forum einen Rat weiß, wie ich die oben geschilderte Herausforderung meistern kann, lasst es mich bitte unbedingt wissen.

Mit lieben Grüßen Peter, El Salvador
Antworten Top
#2
Hallo Peter,

so einen "Updater" müsstest Du Dir selber programmieren. Mit geringen Programmierkenntnissen könntest Du den Code dafür selber aufzeichnen. Siehe dazu
Excel-Word-Makrorekorder

Vor der eigentlichen Aufzeichnung würde ich dann aber die Übernahme und die anschließende Funktionsfähigkeit testen und notieren, was zur Übernahme getan wurde. Dann kannst Du eventuell schon schauen, ob da überflüssige Aktionen drin sind, wie z.B. Scrollen ...

Wenn Du Formeln ändern willst, dann kannst Du z.B. die Formel in die erste Formelzelle der betreffenden Spalte eintragen. Du erhälst dann so was wie
Range("E2").Formula="=DeineFormel"
Den Code für die Spalte passt Du dann an, indem Du den Bereich einfach erweiterst
Range("E2:E10").Formula="=DeineFormel"
Wenn Du am Ende keine feste Zeilennummer hast, können wir helfen Smile

Du kannst die Aufzeichnung auch in mehreren Schritten vornehmen, um mehrere Makros für verschiedene Aufgaben zu erhalten, z.B. eins um irgendwo Werte zu ändern, eins oder mehrere für Formeln in einer oder mehreren Spalten, eins für Formatänderungen usw. Dann schreibst Du ein

Sub Hauptprogramm()
Makro1
Makro2
Makro3
End Sub

wo Du nur die einzelnen Makros aufrufst und der Reihe nach ausführst. Das macht es vielleicht für Dich auch übersichtlicher und wenn man z.B. bei der Formeländerung nochmal was im Code ändern muss dann findet man den entsprechenden Code schneller und man muss anschließend ja nicht die anderen Aktionen wie bei einem riesigen Änderungsmakro nochmal ausführen wenn man das schon gemacht hatte.

Es könnte allerdings sein, dass der "Updater" Probleme bekommt oder falsche Ergebnisse liefert, wenn Deine Anwender besonders kreativ waren und z.B. verbundene Zellen eingefügt haben damit es hübscher aussieht oder sie sich ein paar Eingaben sparen, oder sie haben von sich aus was an der Struktur geändert, Spalten vertauscht, Blätter umbenannt, Formeln und Formatierungen geändert, oder was auch immer anderes ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo André,

danke, dass du dir so viel Mühe gemacht hast, mir als Wiedereinsteiger in Excel, von VBA kaum mehr Ahnung als eine Kuh vom Klavierspielen, zu erklären, wie ich das mit einem "Updater" hinbekommen könnte.
Ehrlich gestanden:
Ich habe trotz deiner ausführlichen Hinweise nicht verstanden, wie ich mein momentanes Herausforderung "Updater" auch nur im Ansatz lösen kann.
(Wenn ich das nicht löse, kann ich meinen Ausflug in Excel, erst recht in VBA beenden.)

Momentan bin ich dabei, mich in Funktionen von Excel einzuarbeiten, erste Gehversuche in VBA zu unternehmen.

Im Vordergrund steht für mich in der Planungsphase an erster Stelle die "Bedienbarkeit" einer Anwendung in Excel.

Um Eingabefehler zu vermeiden, soll - so zumindest meine momentane (naive?) Vorstellung - die Eingabe der Daten ausschließlich über Formulare erfolgen.
Anwender*In soll nach Möglichkeit die einzelnen Arbeitsblätter erst gar nicht zu Gesicht bekommen.
(Höchsten später bei der „Druckansicht“ – aber davon bin ich noch meilenweit entfernt.)
Von daher:
Die Gefahr, dass Zellen in Arbeitsblättern durch direkte Eingaben /Formatierung von User*in verändert wurden besteht daher nicht!

Bezüglich eines „Updater“ stelle ich mir folgende Vorgehensweise vor:
- Kopiere die neue Version_02 in den Ordner x, in dem sich die Version_01 befindet;
- beim ersten Aufruf der Version_02 kopiere alle vorhandenen Arbeitsblätter aus der Version_01 in die Version_02; aber nur die Arbeitsblätter!
- wenn erfolgt, setze den Wert x in der Initialisierung von Version_02 auf 1, damit nicht bei jedem Programmaufruf von Version_02 die Arbeitsblätter aus Version01 erneut ins Vesion02 kopiert werden – das wäre ziemlich doooooof!
Keine Ahnung, ob es möglich ist, in einer Initialisierungsprozedur eine Variable „firstcall“ nach dem „erstem Durschlauf“ dauerhaft zu ändern, überschreiben kann.
(Hinweis. wie frau / man das machen muss, wäre super.)

Von daher hätte ich gerne eine konkrete Lösung für einen „Updater“, wenn möglich mit Beispieldatei.
Danke Peter, El Salvador

PS.:
Natürlich ist mir klar, dass dies der erste, für mich aber wichtige Schritt ist, diese Herausforderung eines „Updaters“ zu meistern.
Wie die Herausforderungen zu lösen ist, wenn Tabelleneinträge in einer „neuen“ Version erweitert wurden, gehört zu einer anderen Fragestellung – aber erstmal bis dahin kommen, wäre für mich schon Erfolgserlebnis.
Antworten Top
#4
Hallo Peter,

wenn Deine Excelblätter wie es nach Deiner Beschreibung scheint, nur als "Datencontainer" dienen, dann hatte ich ja schon mal geschrieben, trenne Programm und Daten in zwei Dateien. Dann brauchst Du vom Anwender nur die Programmdatei auszutauschen zu lassen.
So ein Austausch hätte noch den Vorteil, dass Du den Programmnamen gleich lassen kannst und dadurch eventuelle Verknüpfungen wie gehabt weiter funktionieren

Ansonsten,

Zitat:- Kopiere die neue Version_02 in den Ordner x, in dem sich die Version_01 befindet;

Das würden Deine Anwender tun.

Zitat:- beim ersten Aufruf der Version_02 kopiere alle vorhandenen Arbeitsblätter aus der Version_01 in die Version_02

Den Code könntest Du aufzeichnen. Ich kann auch später mal einen schreiben, der alle Blätter einer Datei kopiert.
Denke aber daran, Dein "Updateprogramm" hat zumindest eine leere Tabelle. Diese sollte einen anderen Namen haben als die Blätter in Deinem ursprünglichen Programm

Zitat:- wenn erfolgt, setze den Wert x in der Initialisierung von Version_02 auf 1,

den könntest Du z.B. auf der leeren Tabelle speichern. Musst Du aber eigentlich nicht, das Programm kann ja automatisch erkennen, ob mehr Tabellen als eine in der neuen Datei sind
Das Programm könnte im Anschluss auch die alte Datei löschen und natürlich die neue erst mal mit den Änderungen speichern.

Hinweis: Auf Deinen Blättern sollten keine Formeln sein, die Daten zwischen den Blättern berechnen. Dann werden nach dem Kopieren der Blätter Bezüge auf die alte Datei gerichtet. Und, wie gesagt, eventuelle Verlinkungen auf dem Desktop funktionieren nicht mehr wenn die neue Datei anders heißt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste