Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per Userform geschlossene Excel Datei auslesen & befüllen

Forumthread: per Userform geschlossene Excel Datei auslesen & befüllen

per Userform geschlossene Excel Datei auslesen & befüllen
23.07.2024 16:39:59
Joerg
Ich habe hier eine, für meine Verhältnisse, echt komplexe Userform.
Das Teil hat soweit auch super funktioniert, musste nun aber in den Grundzügen geändert werden.

Bei der Erstellung hat mir Oberschlumpf schon kräftig unter die Arme gegriffen. Vielleicht liest er ja hier mit.

Die Primäre Datei hat zwei Tabellenblätter in denen die Daten einzelner Personen hinterlegt sind. Über ein Userform werden diese dauerhaft ausgegeben, geändert oder mit Bildern verknüpft.

Jetzt zieht das ganz ein ein Netzwerk um und soll daher auf zwei Dateien aufgebaut werden.
Die Datei Personalliste beinhaltet die Daten der Personen wie vorher auf zwei Tabellenblättern. Die Änderungen daran sind eher geringfügig. Wo sich Zellbezüge geändert haben habe ich diese angepasst.
Um auf die Daten in der neuen Datei zuzgreifen habe ich an mehreren Stellen aus ...Worksheets.Namen... WorkBooks("Personalliste.xlsm").Worksheets.... gemacht.

Soweit funktioniert auch alles. Allerdings muss dafür zwingend die Datei Personalliste geöffnet sein.

Das Ziel der Zweidateienlösung ist es, das zu Wartungsarbeiten von einem anderen PC auf die Personalliste zugegriffen werden soll. Daher soll die Datei mit dem Userform idealerweise die Daten aus einer geschlossenen Personalliste holen und dort schreiben.

Ich hoffe ich konnte mein Grundproblem bis jetzt beschreiben.

Nun zu meiner Hilfeanfrage:
1. wie bekomme ich es in dem (für mich zu komplexen) VBA hin, das die Daten aus der Personalliste geholt werden ohne das diese dafür geöffnet sein muss.
2. die Personalliste soll nach einer Änderung durch eines der beiden Backupmodul ebenfalls in den untergeordneten Ordner \Backup gesichert werden.
3. In der Personalliste ist ein Makro hinterlegt (aktuell deaktiviert) welches die Datei nach wenigen Minuten speichert und schließt. Das ist dafür gedacht, das die Datei nicht dauerhaft von einem Fremden PC blockiert wird. Funktioniert der Zugriff auf die geschlossene Personalliste mit dem aktivierten Timer im Makro?

Im Anhang die beiden Dateien
Der Passwortschutz für den Adminknopf im Userform ist abgeschaltet.


Für eure Hilfe wäre ich echt dankbar. Ich habe jetzt schon Stunden mit verschiedenen Funktionen wie ADO oder Excel4Macro probiert. Aber ich kann es halt nicht.

Das Userform:
https://www.herber.de/bbs/user/171193.xlsm

Die Personalliste:
https://www.herber.de/bbs/user/171194.xlsm


Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
23.07.2024 16:43:07
Joerg
Eins habe ich vergessen:
Dort wo die beiden Dateien liegen muss es den Unterordner \Backup geben. Sonst funktioniert der Start nicht.
Der Ordner ist bei mit immer da, deshalb gibt es keine Prüfung dafür.
AW: per Userform geschlossene Excel Datei auslesen & befüllen
23.07.2024 17:06:03
daniel
Hi
der einfachste Weg, einen Wert aus einer Exceltabelle zu holen ohne diese zu öffnen, ist der Zellbezug in einer Zelle auf einem Tabellenblatt:
=C:\Ordner\...\Ordner\[Dateiname.xlsx]Tabelle!A1
du kannst per VBA also die Formel erstellen und in ein Tabellenblatt einfügen, um Daten zu lesen (Tabellenblattname muss bekannt sein).
Gruß Daniel
Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
24.07.2024 11:52:55
Oberschlumpf
Hi Jörg,

ich bin da...aber ich weiß nich, ob ich bleibe...

hier, mein bisheriger Fortschritt für "Personalliste.xlsm muss - nicht - geöffnet sein!":
https://www.herber.de/bbs/user/171219.xlsm

möglich ist:
- Userform.xlsm starten = es öffnet sich das Userform mit gewünschter Multipage mit Anzeige von "Name 1" bis "Name 31" in Button
- jeder Button in der Startmultipage ist klickbar und es werden in anderer (gewünschter Multipage) Detailinfos zum geklickten Namen gezeigt
- in Detailansicht Klick auf "Abbrechen" bringt dich wieder zurück zur Startmultipage
- Klick auf "Personalübersicht" in Startmultipage zeigt wieder in anderer Multipage die einzelnen Abteilungen mit zugehörigen Mitarbeitern an
- Klick auf "Zurück" in Abt.übersicht bringt dich wieder zurück zur Startmultipage

bis hierhin hab ich schon einige Stunden investiert!

nicht möglich ist:
- in Detailansicht eines der Datumseinträge zu speichern (Datumseintrag aus Kalender auswählen = Ja, Klick auf "Speichern + Schließen" = Nein
- in Abteilungsübersicht Klick auf einen der Namen = Nein

Grund für die beiden "Neins" = es ist einfach ein sooo riesen Aufwand, das Ganze auch mit geschlossener Datei Personalliste lauffähig zu machen.
Denn es muss - alles - umprogrammiert werden!

Hab ich ja schon für alles, was unter "möglich ist" steht, gemacht.
Aber so langsam geht mir die Luft aus.

...unnnnnnd.....wiesooooo....

Stehen in deiner neu gezeigten Personalliste...
...in Blatt Namen andere Einträge als im Blatt Atemschutz???????

Ich hab zum Glück noch die Datei von deiner 1. Anfrage von vorn paar Monaten oder so.
Da stehen in beiden Blättern zumindest die gleichen Nachnamen! In einem der 2 Blätter ist nur noch zusätzlich der Vorname eingetragen.

nun denn...

Ciao erst mal
Thorsten
Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
25.07.2024 21:29:56
Joerg
Hallo Thorsten,

erstmal vielen, vielen Dank für deine Mühe.
Ich möchte natürlich nicht das dir die Luft ausgeht. Dann lebt es sich so schlecht. ;-)

Sorry, ich war die letzten beiden Tage ziemlich viel unterwegs und konnte nur kurz auf dem Handy sehen das was reingekommen ist.

Das was du bisher geleistet hast ist schon mal der Wahnsinn.
So ganz kann ich deinen Meldungen aber nicht folgen.

- Userform.xlsm starten = es öffnet sich das Userform mit gewünschter Multipage mit Anzeige von "Name 1" bis "Name 31" in Button
Das funktioniert bei mir auch, nur werden die leeren Felder nicht mehr ausgeblendet. Im späteren Verlauf wäre es sogar möglich das ich mit der einen Seite nicht mehr hinkomme. Dann würde das auf eine Bildlaufleiste ähnlich der Namensliste hinauslaufen. Aber da will ich noch gar nicht dran denken.
- jeder Button in der Startmultipage ist klickbar und es werden in anderer (gewünschter Multipage) Detailinfos zum geklickten Namen gezeigt
Auch das funktioniert.
- in Detailansicht Klick auf "Abbrechen" bringt dich wieder zurück zur Startmultipage
Auch das funktioniert.
- Klick auf "Personalübersicht" in Startmultipage zeigt wieder in anderer Multipage die einzelnen Abteilungen mit zugehörigen Mitarbeitern an
DAs funktioniert nur bedingt. Die Personalübersicht geht auf, aber bei der Auswahl einer Gruppe in der folgenden Multipage kommt ein Laufzeitfehler. Der bleibt hier:
Set lshData = Workbooks("Personalliste.xlsm").Worksheets("Namen") 'Tabellenblattname

hängen
- Klick auf "Zurück" in Abt.übersicht bringt dich wieder zurück zur Startmultipage
Aus der Abteilungsübersicht komme ich zurück, zu den einzelnen Personen komme ich ja gar nicht.



Zu dem wo es bei dir nicht weiter geht:
nicht möglich ist:
- in Detailansicht eines der Datumseinträge zu speichern (Datumseintrag aus Kalender auswählen = Ja, Klick auf "Speichern + Schließen" = Nein

ist es vielleicht denkbar das der "Speichern Button" die andere Excel Datei im Hintergrund öffnet, schreibt, speichert und wieder schließt? Ist nur so ein Gedanke von einem Laien.
- in Abteilungsübersicht Klick auf einen der Namen = Nein
Da steh ich auf dem Schlauch. Meinst du mit Namen einen Menschen, dann komme ich da gar nicht erst hin. Meinst du einen Gruppennamen, dann habe ich den gleichen Fehler.



Zu guter letzt
...unnnnnnd.....wiesooooo....

Stehen in deiner neu gezeigten Personalliste...
...in Blatt Namen andere Einträge als im Blatt Atemschutz???????

Die Praxis hat gezeigt das wir teilweise Namen haben die nur in einem Baltt auftauchen. Die sind dann teilweise nur im Blatt Atemschutz und nicht in der Namensliste. Andersherum war es ja von Anfang an schon so.

Ich bin ja schon froh das du mich nicht ausschimpfst weil ich den Namen des Tabellenblatt geändert habe. Schein ich ja so gut im Code bereinigt zu haben das es dir nicht aufgefallen ist. Duck und Weg

Wenn ich nach dem Debuggen in der Excel Tabelle auf den Button Speicher und Schließen drücke kommt direkt der nächste Fehler. Er bleibt bei
UFStartseite.Show

hängen. Das kann für mich irgendwie alles an Fehler sein.

Vielen Vielen Dank nochmals für deine Arbeit.
Ich will natürlich nicht das du wegen meinem Problem nicht mehr in den Schlaf kommst, aber vielleicht finden wir zusammen eine einfache und dennoch praktikable Lösung.



Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
26.07.2024 09:26:46
Oberschlumpf
Hi Jörg,

schön, dass du doch noch da bist :-)

So, nun wirst du sehr viel lesen müssen, weil in unseren Beiträgen ja doch immer wieder die eine oder andere - neue Frage - und/oder Hinweis/Bemerkung hinzukommt, auf die ich gern antworten möchte...(so wie du ja auch).

Los gehts...

1) Sorry, ich war die letzten beiden Tage ziemlich viel unterwegs
Hmm, ja, ok, aber....nur mal ne ganz kurze, aber zeitnahe Meldung a la "sorry, bin unterwegs, melde mich aber" wäre wirklich nicht möglich gewesen?
Wir, die Antworter, erhalten als "Lohn" eure Reaktionen = wenn diese aber ausbleiben, dann "fehlt" zumindest mir etwas.
Hinzu kam zusätzlich, dass ich ja eh schon gefrustet war :-), weil ich irgdwann merkte: es muss eigtl alles neu programmiert werden - zu dem Zeitpunkt war ich noch lange nicht fertig, aber trotzdem schon ziemlich..ähh.."atemlos" :-))
Daher an dieser Stelle auch ein Sorry an dich, weil ich ja so n bisschen meinen Frust an dich losließ...

2) "...nur werden die leeren Felder nicht mehr ausgeblendet..."
a) zu dem Zeitpunkt war ich ja - mittendrin - im Ändern/Anpassen
b) ist mir tatsächlich erst später aufgefallen, das mit dem nicht-Ausblenden unnötiger Button (oder Feldern wie du es nennst)
Ich kann b) damit erklären, weil zu dem Zeitpunkt meine Konzentration schon ziemlich unten war

3) "Im späteren Verlauf wäre es sogar möglich das ich mit der einen Seite nicht mehr hinkomme. Dann würde das auf eine Bildlaufleiste ähnlich der Namensliste hinauslaufen. Aber da will ich noch gar nicht dran denken."
Ich hab es trotzdem mal ausprobiert :-)
- hab in Datei Personalliste, Blatt "Atemschutz" 27 Leute hinzugefügt, weil dein "...späterer Verlauf..." mich neugierig machte :-)
- hab dann Button in Userform.xlsm gedrückt und....es werden trotzdem nur 46 Button in Multipage 1 mit Namen belegt

Ja, du hast recht.
Du müsstest Multipage 1 genau so (um)programmieren, wie es mit Multipage 4 (hier werden die Bilder gezeigt) schon funktioniert

In Multipage 1...
...per Hand erst mal alle Button löschen (und Datei gleich speichern; nicht dass die Button nach erneutem Öffnen alle wieder da sind :-)) )
...per VBA so viel Button hinzufügen, wie es in Personalliste, Blatt "Atemschutz" Einträge gibt
...Bildlaufleiste aktivieren oder nicht, abhängig von der Anzahl Einträge in "Atemschutz"

Aber DAS lass erst mal "Zukunftsmusik" sein = beschäftige dich damit erst, wenn es in "Atemschutz" wirklich mehr Einträge gibt, als in Multipage 1 ohne Scrollen angezeigt werden können.

4) "...bei der Auswahl einer Gruppe in der folgenden Multipage kommt ein Laufzeitfehler..."
= mein (Kommunikations)Fehler!

Ich schrieb in meiner Antwort:
"- in Abteilungsübersicht Klick auf einen der Namen = Nein"

Anstelle von Namen meinte ich aber Abteilung oder Abteilungsname!
Grund des Fehlers: meine Konzentration war im Keller :-)

5) "...ist es vielleicht denkbar das der "Speichern Button" die andere Excel Datei im Hintergrund öffnet, schreibt, speichert und wieder schließt..."
Ja/Nein/Vielleicht! :-))

Dazu später mehr, wenn ich mit Beantworten deiner Fragen/Hinweise fertig bin.

6) "...- in Abteilungsübersicht Klick auf einen der Namen = Nein = Da steh ich auf dem Schlauch...."
Ich hätte auch auf Schlauch gestanden ;-)
Antwort hierzu siehe bei 4)

7) "...Die Praxis hat gezeigt das wir teilweise Namen haben die nur in einem Baltt auftauchen..."
Jein! Verstehe ich noch immer nicht, weil...

In deinem alten Beitrag = guckst du hier (wenn du magst) :-)
https://www.herber.de/forum/archiv/1952to1956/1955242_Tabelle_durchsuchen_und_Ergebnisse_in_Textfelder_ausgeben.html

Ja, in der alten Datei sind im Blatt "Namen" auch viel mehr Einträge enthalten als im Blatt "Daten".
Aber!
Die wenigeren Nachnamen im Blatt "Daten" sind aber alle auch im Blatt "Namen" enthalten!

Nun in deiner neuen Datei (die wir hier, in diesem Beitrag bearbeiten)...
...sind im von dir...tztz :-)...geänderten Blatt "Atemschutz" (vorher "Daten") ganz andere Namen eingetragen, z Bsp "Name 1", "Name 2", usw als im Blatt "Namen"...z Bsp "Man 1 Vorname1", "Man 2 Vorname 2", usw.

Und JETZT kommts!!!

Wenn du das Makro mit dem Userform + Multipages startest, dannnn.....
...werden nur in Multipage 1 die Leute aus Blatt "Atemschutz" gezeigt
...für Multipage 3 + Multipage 4 WIRD NUR das Blatt "Namen" aus Personalliste ausgelesen!
...KEIN EINZIGER Name aus "Atemschutz" wird in Multipage 3 + 4 gezeigt!!
...die Kollegen aus "Atemschutz" gibt es also gar nicht in eurem Löschzug! (in alter Datei aus November aber schon, weil ja der Nachname der gleiche ist)

Verstehst du jetzt, wieso mich das noch immer verrwirrt? :-)

8) "Wenn ich nach dem Debuggen in der Excel Tabelle auf den Button Speicher und Schließen drücke kommt direkt der nächste Fehler..."
a) bitte bitte schreib nich nur "es kommt'n Fehler", sondern verrate auch, um - welchen - Fehler es sich handelt!
Ich steh während des Fehlers nich hinter dir und kann eben nich die Fehlermeldung lesen^^ :-P :-)

b) Ja, das Problem kenn ich auch (bleibt bei mir aber an anderer Stelle hängen).
Grund: Wenn mittendrin der Code wegen eines Fehlers unterbrochen wird, ist aber noch immer das Countdown-Makro aktiv (welches dafür sorgt, dass nach bestimmter inaktiver Zeit wieder Multipage 1 angezeigt werden soll.
Und dieses Teil-Makro kann nicht mehr funktionieren, wenn halt der Gesamt-Code irgdwann unterbrochen wurde.

Lösung: Ich kenne bisher nur Datei schließen (bei Bedarf vorher speichern) und wieder öffnen

Und außerdem:
Wenn es wegen eines Fehlers zu einem Codeabbruch kommt, dann empfielt es sich eh (so meine Meinung), wenn man den Grund des Fehlers nicht kennt, die Datei zu schließen + wieder zu öffnen.



Soooo....puuuuuhhh....genug der langen "Vorreden" = damit endlich fertig!!!! :-))




Jetze komm' wa endlich zum Statusupdate bzgl der weiteren Programmierung "unseres Projekts" :-)

hierzu möchte ich zuerst erwähnen, dass ich "Auslesen von Daten aus geschlossener Excel-Datei" deswegen geschafft habe, weil mir die Bsp-Codes aus diesem Link den Weg gezeigt haben:
https://www.excel-inside.de/beispiele_vba/vba-workbooks-datei/947-daten-aus-geschlossener-arbeitsmappe-auslesen
...kleiner Nachteil:
Das Auslesen von Daten einer geöffneten Datei geht um einiges schneller als das Auslesen von Daten einer geschlossenen Datei.

Beispiel:
Anzeigen von Bildern aller Einträge mit geöffneter Datei = 1-2 Sekunden
Anzeigen von Bildern aller Einträge mit geschlossener Datei = 6-7 Sekunden

Testen kann ich ja nur mit meinem PC.
Wenn das Ganze bei euch über ein Netzwerk läuft, kann es noch ein paar Sekunden länger dauern.
Aber darauf hab ich keinen Einfluss.


auch möglich ist nun:

- in Abteilungsübersicht Klick auf einen der AbteilungsNamen :-)

Jep, nun werden wieder Bilder von den Leuten angezeigt, dessen Abteilung man zuvor per Klick ausgewählt hatte :-)
Und als ich es endlich fertig um-programmiert hatte, so dass auch ich in Multipage 4 wieder Bilder sah, war ich erst mal...erschrocken :-)
"Hä? Soooo grooosss waren die Images doch gar nicht in meiner letzten Antwort im ALTEN Beitrag!" dachte ich, als ich es sah :-)

Hab schnell die alte Datei aus November 23 geöffnet, mir den Code angesehen, mit dem Code aus neuer Datei verglichen, unnnd gemerkt.....dass du auch hier im Code was verändert hast :-))))
Du hast die Höhe,Breite und entsprechend die Positionen aller Images geändert.
"uih uihh..puhh..nix falsch, alles gut!" hab ich dann gedacht :-))

- in Detailansicht eines der Datumseinträge zu speichern (Datumseintrag aus Kalender auswählen = Ja, Klick auf "Speichern + Schließen" = auch JA!

DAS war meine größte Herausforderung! :-)

Denn als ich das Problem lösen wollte, war ich mit meinen bis dahin erreichten Recherchen schon mal so weit, dass ich wusste "Daten speichern in geschlossener Excel-Datei = nicht möglich! ...auch nich mit VBA"

Eigtl war ich schon kurz davor, in der Form zu programmieren...


Workbooks.Open "Pfad\Personalliste.xlsm"
Daten da eintragen wo sie hinsollen
Datei speichern + schließen

...das hätte aber 2 Folge-Probleme nach sich gezogen
a) ist die Datei schon wegen Wartung/sonstiges geöffnet, hätte mein Speicher-Code mit Fehler reagiert, weil Datei schon in Benutzung
b) will gerad jemand in dem Moment, in dem ich in Datei etwas speicher, die Datei auch öffnen wegen Wartung, etc, dann hätte derjenige die Meldung erhalten "Datei in Benutzung"

Aber das kanns doch nich sein! Also versuchte ich mich noch mal in Internetsuche....und habe DAS hier gefunden...
https://www.herber.de/forum/archiv/1640to1644/1642754_ADO_in_geschlossene_Arbeitsmappe_schreiben.html

Ja, ich weiß, auch ich hab mich in dem Beitrag "verewigt", aber meine Antwort is unwichtig...ich sag Danke an Sepp!

ADO ist das "Zauberwort"!
Trotzdem gilt auch hier: ohne Datei öffnen = Daten in Datei speichern - nicht - möglich

Aber mit ADO kann die Datei auch gleichzeitig von wem anders geöffnet sein...zumindest mit meinen Tests an nur 1 Computer.
(das solltest du vllt noch mal genauer unter die Lupe nehmen, weil ich kein Computernetzwerk habe)

Allerdings kann es auch hier ein kleines Problem geben:
Angenommen, Du hast die Datei Personalliste.xlsm wegen Wartung geöffnet.
Jetzt klingelt aber dein Telefon. Das Gespräch dauert etwas länger.

In der Zeit, in der du am telefonieren bist, hab ich die Datei Userform.xlsm geöffnet, ändere einen oder einige Datumseinträge für Mitglieder aus dem Blatt "Atemschutz" UND klicke auf den/die Button "Speichern & Schließen".

Erst jetzt beendest du dein Telefongespräch.
Du hast die Datei Personalliste noch immer geöffnet - aber - du hattest keinen Wert darin verändert!
Und...du stellst fest...du willst auch keine Werte ändern, weil nicht erforderlich.
So willst du die Datei nur schließen + klickst oben rechts auf das x.

Aber trotzdem wirst du gefragt, ob Datei gespeichert werden soll!

Du denkst "Wieso? ICH hab doch nix geändert!"

Stimmt. Du hast nix geändert. Aber durch meine vorher getätigte Änderung von Datumseinträgen werden bei dir in der Datei die Einträge aktualisiert - und die Datei erhält den Status "nicht gespeichert", weshalb du dann beim Schließen-Versuch die Frage "Speichern ja oder nein" erhältst.

Du müsstest also die Leute, die mit der Wartung der Datei Personalliste.xlsm beauftragt sind, über genau so etwas informieren.



Sooo..puhh...insgesamt fertig...glaube ich :-)

Ha! Nee! Fast vergessen! :-)
Hier, das, so denke ich, fertige Datei-PAKET im ZIP-Format:
https://www.herber.de/bbs/user/171262.zip

Bevor du alles mit deinen "Realdateien" versuchst, bitte ich dich...
...erstell irgdwo ein neues, leeres Verzeichnis
...entpack die ZIP-Datei in das neue, leere Verzeichnis
...starte nun im neuen Verzeichnis die Datei userform.xlsm
...wenn du Hinweise wegen falscher, bzw ungültiger Einträge erhältst, korrigiere diese Einträge bitte in der Datei Personalliste.xlsm, die eben so im neuen Verzeichnis gespeichert ist
...der Eintrag in Zelle B2 im Blatt "Namen" in Datei Personalliste.xlsm sollte zuerst mal das Bilder-Verzeichnis sein, welches auch im neuen Verzeihcnis enthalten ist

SO, und jetzt kommst du! :-)

Ciao
Thorsten


Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
26.07.2024 15:15:00
Jörg
Hi Thorsten

Vielen Dank für eeibe Arbeit.
Hast recht, ist ne lange Antwort. Daran erkenne ich schon wieder wieviel Mühe du dir gegeben hast.

Ich schau mir das nachher mal an..

Gruß
Jörg
AW: per Userform geschlossene Excel Datei auslesen & befüllen
26.07.2024 18:43:28
Joerg
Hallo Thorsten,

ein erster Test mit realen Daten war schon mal ziemlich geil.

Du hast leider recht. Das Laden der Bilder dauert etwas. Bei 50 Bildern sind es fast 30 Sekunden. Ich denke ich kann das noch etwas optimieren indem ich die Bilder in geringerer Auflösung speicher.

Bisher ist mir nur ein einziger Fehler aufgefallen.
Auf der Startseite sind nun graue und viele Gelbe Button, kein einziger wird rot.
Meine Vermutung ist es, dass die Reihenfolge der Farbgebung damit zu tun hat

    sbGetManyRowsValue "O", 2, 46


For liIdx = 0 To UBound(parBereichRows)
Select Case parBereichRows(liIdx)
Case 2
lufStart.Controls("CommandButton" & liIdx + 2).BackColor = &H8000000F
Case 1
lufStart.Controls("CommandButton" & liIdx + 2).BackColor = &HC0FFC0 'schwachgrün
Case 0
lufStart.Controls("CommandButton" & liIdx + 2).BackColor = &H8080FF 'schwachrot
End Select
If fcGetOneValue(ppfad, pdatei, pblatt, "V" & liIdx + 2) = 1 Then
lufStart.Controls("CommandButton" & liIdx + 2).BackColor = &H80FFFF 'warngelb
End If
Next

Erase parBereichRows


Im Ursprungscode war die Reihenfolge der Farben eine andere
Erst wurde Spalte O abgefragt (2 = kein Name, 1 = alles gut - grün) - Ende
Dann Spalte V (1 = bald abgelaufen - gelb) Ende
Dann nochmals Spalte O (0 = abgelaufen - rot) Ende

Ich hab etwas Angst jetzt selber daran zu basteln, würde es nur machen wenn du sagst das du nun Helenes Atemlos bist :-)


Da fällt mir aber ein mögliches Problem ein:
Da die Personalliste nicht dauerhaft geöffnet ist, aktualisieren ich die Zahlen in den Spalten V und co. nicht mehr selbstständig. Ursprünglich hatten wir dafür einen Timer eingebaut, damit beim Datumswechsel durch die Aktualisierung auch die richtige Farbe zurückgegeben wird.
Wird das durch den das Modul AutoUpdater wohl noch funktionieren?
Ich befürchte das die ADO das nicht machen wird. Dann müsste ein öffnen und schließen der Personalliste kurz nach Mitternacht eingebaut werden oder bin ich auf dem falschen Weg.


Zu deiner großen Antwort noch ganz kurz:


"Hä? Soooo grooosss waren die Images doch gar nicht in meiner letzten Antwort im ALTEN Beitrag!" dachte ich, als ich es sah :-)
Hab schnell die alte Datei aus November 23 geöffnet, mir den Code angesehen, mit dem Code aus neuer Datei verglichen, unnnd gemerkt.....dass du auch hier im Code was verändert hast :-))))
Du hast die Höhe,Breite und entsprechend die Positionen aller Images geändert.
"uih uihh..puhh..nix falsch, alles gut!" hab ich dann gedacht :-))

Zwischendurch ist die richtige Hardware gekommen. Da musste ich die Bildgröße an den Bildschirm anpassen. Das hat, dank deiner Beschreibung im Code sogar gut funktioniert.

Allerdings kann es auch hier ein kleines Problem geben:
Angenommen, Du hast die Datei Personalliste.xlsm wegen Wartung geöffnet.
Jetzt klingelt aber dein Telefon. Das Gespräch dauert etwas länger.

Über das Problem hab ich im Vorfeld auch schon nachgedacht. Dafür ist im Modul 1 ein Timer in der der Personalliste. Der löst automatisch das Sortieren-Speichern-Schließen der Arbeitsmappe aus. Für unsere Arbeit hier hab ich den deaktiviert, sonst kommt man ja nie vorwärts.

Aber trotzdem wirst du gefragt, ob Datei gespeichert werden soll!
Du denkst "Wieso? ICH hab doch nix geändert!"

Aus dem Grund hab ich vorher schon den großen Button Sortieren-Speichern-Schließen eingebaut. Damit stellt sich die Frage hoffentlich nicht mehr. Aber ich gebe dir völlig Recht. Die User müssen eingewiesen werden.


Einen Netzwerktest konnte ich leider noch nicht machen. Einer der Gründe für meine knappe Zeit ist eine Baustelle. Diese Baustelle hat auch teile des Netzwerkes lahmgelegt. Ich werde aber spätestens Montag da dran gehen können.
Interessant ist:
Wenn ich beide Dateien auf dem gleichen PC geöffnet habe kann ich , wie von dir beschrieben, in der Personalliste Daten ändern. Allerdings funktionieren dann scheinbar in der Personalliste nichts mehr. Das Makro aus der Userform schein alles zu blockieren. Nicht mal mehr Excel schließen ging bei mir.
Das ist letztendlich aber auch überhaupt kein Problem. Der Zustand kann später nicht mehr auftreten da auf dem Touchmonitor die Userform den Bildschirm vollständig einnimmt. Erst der Admin Button wurde es ermöglichen auf die Personalliste zu kommen. Und dann geht die Tabelle auch wieder.


So, nun muss ich leider erstmal wieder weiter.
Würde gerne noch mehr Testen.

Vielen vielen Dank dir für deine Arbeit bis hierher !!!!!!!


Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
27.07.2024 07:46:56
Oberschlumpf
Moin Jörg,

diesmal nich lang drumrum, sondern gleich zum Kern...hoff ich..schaun wa ma ;-)

1) Bilder in geringerer Auflösung kann tatsächlich die Bilder-Anzeige-Geschwindigkeit erhöhen

Bei den 2 Bildern, die ich verwende, hab ich die Größe von 100% auf 10% geschrumpft = aus vorher 6 Sekunden Anzeige von Alle Deppen/alle Mitglieder sind es nun nur noch 2 Sekunden

Aber natürlich gilt: 10% = miserable Bildqualität
Bedeutet: Du musst ein wenig rumspielen mit der Auflösung deiner Bilder und ein gutes Mittelmaß zwischen optimale Leistung (Anzeige der Bilder) / Bildqualität herausfinden

2) Auf der Startseite sind nun graue und viele Gelbe Button, kein einziger wird rot.

Ja, recht haste. Aufgefallen war mir das auch. Da ich aber die Gründe nicht kenne, warum welcher Button wann welche Farbe haben soll, hab ich dieses Problem zuerst mal...nicht weiter beachtet...und später...ganz vergessen^^ :-)

Ist aber jetzt - vielleicht! - gelöst. (es werden zumindest - keine grauen - dafür aber wieder rote Button gezeigt ;-) )
Zum einen hast du recht bzgl der Reihenfolge der Farbgebung...oder vielmehr...

Der Einsatz von Select Case...End Select ist/war an dieser Stelle falsch = ich hab alles wieder auf mehrere If...End If umgestellt
Und ich musste das neue Makro "sbGetManyRowsValue" im Modul "neues_XL4Macro" ändern, weil es vorher auch hier zu fehlerhaften Farbzuteilungen kam

Ich hatte ...vielleicht!... eben nicht umsonst fett geschrieben.
Denn...ich weiß ja noch immer nicht genau, wann,wieso ein Button rot/gelb oder grün sein muss.
Das is nun dein Job. Wenn alle Farben richtig verteilt wurden, dann passt es ja - wenn aber nicht, dann musst du mir, vielleicht nicht für jeden der 31 Button die richtige Farbe erklären, aber zumindest für so viele Button, dass auch ich das verstehe.

3) Da fällt mir aber ein mögliches Problem ein: Da die Personalliste nicht dauerhaft geöffnet ist.....Wird das durch den das Modul AutoUpdater wohl noch funktionieren?

DAS weiß ich leider nicht. Sobald meine neue Datei noch mehr..oder weniger das tut, was sie soll, dann musst du das mit dem "AutoUpdater" ausprobieren.

4) Das Makro aus der Userform schein alles zu blockieren.

Es ist egal, welches Makro in Excel im Einsatz ist, weil...jedes Makro, das "im Betrieb" ist, "blockiert" alles Weitere in Excel so lange, bis das Makro beendet/abgebrochen ist.
Daran kann man auch nix ändern/verbessern.

5) du schreibst im Blatt "Daten", dass du die Button Perosnal & Zurück erst mal nur irgdwo hingesetzt hast, damit sie, egal, welcher Touchmonitor im Einsatz ist, immer sichtbar sind.

Per VBA hab ich es so angepasst, dass...
...auf Multipage 1 der Button Perosnal mit etwas Abstand neben dem Button Admin erscheint
...auf den anderen Pages der Button Zurück ungefähr dort erscheint, wo auf Seite 1 sich der Admin-Button befindet

Zumindest auf meinem Bildschirm wird alles + immer so gezeigt, wie ich es erwarte....mal sehen, wie die "Touchies" damit umgehen^^ :-))

Hui! Für meine Verhältnisse war das ja diesmal echt nur ne KURZgeschichte! :-))

Hier noch die Datei:
https://www.herber.de/bbs/user/171292.xlsm

Ach ja, eins noch..wollt ich schon gestern schreiben.

Ich hab ja deine alten Codes nur deaktiviert, aber nicht gleich gelöscht.
Grund: Ich wollt dir noch die Gelegenheit geben, die alten mit den neuen Codes vergleichen zu können.
Natürlich kannst du jede grüne Codezeile löschen, sobald du diese nicht mehr benötigst.

Ciao
Thorsten
Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
27.07.2024 10:13:19
Joerg
Danke für deine Antwort.
Die ist tatsächlich mal recht kurz ausgefallen 😉

Ich schau mir das am Montag mal an.
AW: per Userform geschlossene Excel Datei auslesen & befüllen
30.07.2024 08:38:01
Oberschlumpf
Moin,

a) heute is schon Dienstag^^ :-)
b) dein Beitrag is schon im Archiv verschwunden = darauf antworten für uns 2 nur noch kurze Zeit möglich

Nur mal so zur Info ;-)

Ciao
Thorsten
Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
30.07.2024 12:04:02
Joerg
Oh, das mit dem Archiv hab ich noch nicht so ganz verstanden

Hab gestern Abend noch einiges getestet bis ich gestört wurde. Daher kam keine Anzwort mehr.

Im Netzwerk ist, bei geschlossener Personalliste, scheinbar kein schreiben in der Tabelle möglich. Nach eintragen des Datum und Speichern bleibt das alte Datum stehen.
Die Kontrolle brachte dann auch om det Liste das alte Datum.



Sobald die Personalliste geöffnet ist geht alles super.
Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
30.07.2024 12:24:56
Oberschlumpf
Beiträge aktiv und antworten möglich = ca 1 Woche lang
danach werden Beiträge ins Archiv verschoben = antworten nur noch für die möglich, die vor dem Verschieben mind. 1 Antwort gesendet hatten
danach werden Beiträge ins Archiv verschoben = und...auch für die "Ex-Antworter" antworten im verschobenen Beitrag nur noch ganz kurze Zeit möglich

bedeutet:
Du wirst wohl einen neuen Beitrag erstellen müssen...den Archiv-Link zu diesem Beitrag im neuen Beitrag kann hilfreich sein

Anzeige
AW: per Userform geschlossene Excel Datei auslesen & befüllen
25.07.2024 08:28:43
Oberschlumpf
Hi,

du musst meine Frage nich beantworten, aber freuen tät es mich schon...

Ciao
AW: per Userform geschlossene Excel Datei auslesen & befüllen
23.07.2024 17:09:26
Joerg
Danke für deine Antwort.

Das habe ich bereits versucht, aber in dem Klassenmodul weiß ich nicht wo ich das einfügen müsste.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige