Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Hyperlink

Betrifft: Hyperlink von: Steve
Geschrieben am: 28.10.2020 13:04:10

Moin Leute,

Ich möchte mir eine Datei zusammenbasteln, anhand ich alle Dateien in einem Ordner und Unterordner auflisten kann.

Das habe ich auch soweit hinbekommen. Immerhin gibt es dazu ja hunderte Beiträge.
Nun wollte ich die Dateien verlinken. Das hat fast geklappt. Ich habe da zwei Probleme:

1.Hyperlink

(siehe Code markierte Stelle 1)
Aus irgendeinem Grund klappt das nämlich nicht bei den Dateien die sich im Hauptordner befinden.

(siehe Code markierte Stelle 2)
Dafür klappt es an anderer Stelle, aber ich verstehe nicht warum.
Kann mir jemand erklären warum das funktioniert? Für mich sieht das nämlich nicht wie ein Pfad aus.

2.Pfadanzeige
In der Spalte A wird der ganze Pfad angezeigt und verlinkt. Aber das ist aber sehr unschön.
Es würde reichen, wenn da der Ordner angezeigt wird, in dem die Datei (in Spalte B) liegt.
Ich weiss wohl, das ich mit "TexttoDisplay" den Inhalt der Zelle ändern kann, aber ich habe keine Idee wie ich den Ordner in dem die Datei liegt isolieren kann.

Hab schon versucht
den vollständigen Pfad - strPfad
zu verwenden, aber da hab ich es mir wohl zu einfach gemacht.

Ich hoffe mir kann jemand dabei helfen.

Hier meine Datei: https://www.herber.de/bbs/user/141147.zip
Ist ein ZIP Format da ich direkt eine Testordnerstruktur angelegt habe.

Liebe Grüße
Steve

Betrifft: Aktualitätsprüfung möglich?
von: Steve
Geschrieben am: 28.10.2020 13:59:04

Hallo Leute,

Gibt es die Möglichkeit, das jede Datei mit der jeweiligen Zelle abgeglichen werden kann?

Hintergrund ist folgender. Ich möchte natürlich mit dem Ergebnis weiterarbeiten. Also schreibe ich rechts ab Spalte C Daten in die Zellen. Wenn nun aber eine Datei wegfällt, dann rutscht alles eine Reihe nach oben. Schon stimmen alle Einträge nicht mehr.

Im Prinzip brauche ich sowas wie eine Aktualitätsprüfung.

gibt es die Datei noch? - nichts machen
gibt es einen Eintrag aber keine Datei - Zeile löschen
gibt es eine Zeile, aber keinen Eintrag - neuen Eintrag unten an der Liste anfügen

Interessant wäre eine MSGBox die mir dann sagt: so und soviele neue Einträge und so und soviele Einträge gelöscht.

Hat das schon mal jemand gemacht? Geht das überhaupt?

Wäre schön jemand hätte eine Antwort für mich.
Auch gerne was zum lesen.

Liebe Grüße und herzlichen Dank
Steve

Betrifft: AW: Aktualitätsprüfung möglich?
von: Dieter Klemke
Geschrieben am: 28.10.2020 18:20:35

Hallo Steve,

zu Frage 1:
Das ist ein simpler Schreibfehler: Address und nicht Adress

Zu Frage 2:
Im Programm "DateienMitUnterordnernAuflisten" verwendest du
        
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(lngZeile, 1), _
                                   Address:=objVerzeichnis, _
                                   TextToDisplay:=objVerzeichnis.Name

und im Programm "UnterOrdnerAuslesen"
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                                       Address:=objUnterordner, _
                                       TextToDisplay:=objUnterordner.Name
Bei deinem 2. Post verstehe ich den 3. Fall nicht. Es gibt keinen Eintrag, aber es soll unten ein neuer Eintrag angefügt werden. Was ist das für ein Eintrag?

https://www.herber.de/bbs/user/141152.xlsm

Viele Grüße
Dieter

Betrifft: AW: Aktualitätsprüfung möglich?
von: Steve
Geschrieben am: 29.10.2020 14:12:15

Moin Dieter,

danke für deine Antwort.

Ein Schreibfehler....na toll. Ich hab mich so sehr bei der Fehlersuche auf alles nach dem ":" konzentriert. Das hätte ich vermutlich nie gefunden.
____________________________________________

Zu meiner letzten Frage: - Ein Schreibfehler war in Teil3..ich erkläre nochmal

Es gibt ein Ordnersystem. In dem landen die Daten.
Es kommen immer wieder welche dazu und es fallen auch welche weg oder werden umbenannt.
(Letzteres möchte ich nicht, aber es wird leider vorkommen.)

Nun möchte ich, rechts ab Spalte C Werte einfügen um dadurch Daten zu finden und Informationen zu hinterlassen etc.
Derzeit belege ich dafür die Spalten C-G

Jetzt habe ich mir folgendes gedacht:
Derzeit wird die Liste bei jedem Durchgang komplett neu aufgebaut. Das bedeutet, das es bei entsprechend vielen Daten lange dauert.
Und die Einträge in den Spalten C-G könnten nach dem Neuaufbau nicht mehr stimmen.

Ich fragte mich, ob es nicht schneller geht, zunächst zu überprüfen ob es den Dateinamen bereits in der Liste gibt.
Wenn ja, dann muss nur der Pfad aktualisiert werden (ausser ein Abgleich geht schneller)
Wenn nein, wird die Datei bzw. Zeile ans untere Ende der Liste eingefügt.


Drei Fälle können vorkommen.

1.Der Dateiname existiert noch
-Es muss nichts gemacht werden.
--Sollte jemand die Datei einfach nur verschoben (ohne umbenennen) haben, wird automatisch der Pfad aktualisert.

2. Jemand löscht eine Datei
-dann gibt es aber den Eintrag noch in der Liste.
--hier dachte ich mir, dass in Spalte G die Meldung "Datei fehlt" (in Fett/rot) erscheint.
---Dann kann der User die Zeile per Hand löschen oder sich auf die Suche nach der Datei machen.
----Die Zeile muss bei dem Neuaufbau übersprungen werden.

3. Es existiert eine Datei im System, aber noch keinen Eintrag in der Liste.
- ein neuer Eintrag wird erstellt.


Im Anschluss wird die Liste nach Spalte A bzw. Speicherort sortiert.
--Da es vorkommen kann, das jemand die Liste vorher sortiert und vielleicht Filter verwendet hat,
--sollten vorher durch das Makro alle Filter entfernt
--und eine Sortierung nach Spalte A und Dann Spalte B erfolgen.
--Dadurch sollten alle Einträge so liegen, wie sie in dem Ordner von Windows sortiert werden.

Viele Grüße
Steve

Betrifft: Erste Erfolge...
von: Steve
Geschrieben am: 29.10.2020 16:06:11

Hallo Dieter,

ich habe eine Zwischenlösung erreicht. Auch wenn es nicht ganz dem entspricht was ich dir schrieb.

Das liegt daran, dass ich das was ich gerne hätte leider selber nicht hinbekomme.

Was ich erreicht habe:

Ich habe es geschafft, das alle Nebeneinträge in Spalte C-G nach dem Neuaufbau der Liste
wieder an der richtigen Stelle stehen.

Das habe ich mit einem VBA SVERWEIS gemacht.
-Zunächst wird die Liste kopiert
-dann der Neuaufbau angestoßen,
-dann per SVERWEIS die richtigen Einträge wieder an Ort und stelle kopiert.
-dann die kopierte Liste wieder gelöscht.

Aber bei dem Neuaufbau wird, weil sie ja mit in dem Ordner liegt, auch die JOURNAL.XLSM mit aufgeführt.
Kann ich das irgendwie im Code unterbinden? Am besten so, das die Datei unabhängig von ihrem Namen unterdrückt wird. Nicht das ein Schlaufuchs auf die Idee kommt die Datei eines Tages umzubenennen.

Das ist zunächst meine Lösung. Die ist zwar nicht schön, weil sie ab einer bestimmten Datenmenge echt lange braucht, aber zumindest etwas.

Bin gespannt ob ich mit meiner Idee das ein Abgleich schneller geht richtig liege.


Ich hänge dir mal mein bisheriges Ergebnis an.
https://www.herber.de/bbs/user/141171.zip

Herzlichst
Steve

Betrifft: AW: Aktualitätsprüfung möglich?
von: Dieter Klemke
Geschrieben am: 31.10.2020 14:14:54

Hallo Steve,

ich bin leider erst heute wieder dazu gekommen, mich um das Poblem zu kümmern.
In der Anlage sende ich dir meinen Lösungsvorschlag. Er verwendet zwei Hilfsspalten (H und I), die ausgeblendet sein können.
Ich habe zwar einige Tests gemacht, aber du müsstest das Ganze natürlich noch ausgiebig testen.

https://www.herber.de/bbs/user/141204.xlsm

Viele Grüße
Dieter

Betrifft: Rückfrage
von: Steve
Geschrieben am: 02.11.2020 13:57:58

Hallo Dieter,

das ist großartig.

Aber ich muss da mal was fragen. Ich hab natürlich versucht den Code zu lesen und zu verstehen und ein wenig herumprobiert.

Wenn ich das richtig verstanden habe, dann wird zunächst die Liste - unter der alten Liste - komplett neu aufgebaut, dann sortiert und dann anhand der Marker "neu" und "alt" aufgeräumt.
Dadurch bleiben die Zusatzinhalte in den Spalten C-F erhalten.
Das ist sehr schön gelöst. Gefällt mir.

Aber da gibt es ein kleines Problem. Die Ordnerstruktur hat mehr als nur einen Unterordner.
Sorry, daran hatte ich bei der Teststruktur nicht gedacht.
Jetzt wird lediglich der Inhalt des Ordners "Hauptordner" und die jeweiligen direkten Unterordner berücksichtigt. Aber tiefer geht das ganze leider nicht.
Kann man das ändern?


Die nächsten beiden Fragen sind nur ein Gimmick, aber wenn man es umsetzen kann, wäre es schön.

Die erste Frage
Gehen wir mal davon aus, eine Datei wird lediglich verschoben (also nicht umbenannt)
Dann gibt es auf einmal zwei Einträge. Einmal den neuen und einmal den alten.
Der alte hat dann den Marker "Datei fehlt". Das lässt sich nicht irgendwie abfangen oder?

Die zweite Frage.
Wäre es möglich alles um eine Spalte nach Rechts zu schieben und in Spalte A eine Automatische Nummerierung einzufügen.
Hintergrund: Ich möchte ein Makro schreiben mit dem ich eine Datei gezielt umbenennen kann. Dann könnte ich die Nummer abfragen, und dann die Datei, den hinterlegten Text und den Link entsprechend umbennenen.

Liebe Grüße und Danke

Steve


Betrifft: AW: Rückfrage
von: Dieter Klemke
Geschrieben am: 03.11.2020 20:18:18

Hallo Steve,

ich habe das Programm so ergänzt, dass beliebige Unterverzeichnisse berücksichtigt werden.
Außerdem habe ich die ganze Auflistung um eine Spalte nach rchts geschoben.

Zu deiner ersten Zusatzfrage habe ich leider keine Lösung. Wenn die Dateinamen den Charakter von Identmerkmalen haben - d.h. es kann kein Dateiname in mehreren Verzeichnissen auftauchen - dann lässt sich da sicher etwas machen.

Ich will mich aber nicht zu tief in dein Projekt verstricken und überlasse diesen Teil dir.
Auf jeden Fall wünsche ich dir viel Erfolg.

https://www.herber.de/bbs/user/141290.xlsm

Mit freundlichen Grüßen
Dieter

Betrifft: AW: Rückfrage
von: Steve
Geschrieben am: 05.11.2020 08:15:07

Guten Morgen Dieter,

Ich befürchte ich benötige noch ein wenig für eine echte Antwort da ich krank im Bett liege.

Ich wollte mich nur eben bedanken und melde mich sobald ich mir deine Lösung angeschaut habe.

Liebe Grüße

Steve

Betrifft: AW: Rückfrage
von: Dieter Klemke
Geschrieben am: 05.11.2020 09:04:10

Hallo Steve,

doch hoffentlich kein Corona!
Auf jeden Fall wünsche ich dir gute Besserung.

Liebe Grüße
Dieter

Beiträge aus dem Excel-Forum zum Thema "Hyperlink "