Zitat:... könnte höchstens eine Beispieldatei erstellen.
Diese wäre mE schon sinnvoll.
Allerdings könnte ich jetzt auf eine solche nicht mehr reagieren, da ich die nächsten Tage nicht online sein kann. Aber evtl. kann Dir ja jemand anderes zwischenzeitlich weiterhelfen.
Wir haben eine Spalte "A", in dieser ist irgendeine Formel eingetragen, die ein Ergebnis ausgibt. 5+5, WENN->DANN->ODER oder was auch immer. Egal was.
Man "sieht" dann ja nur das Ergebnis bzw die Ergebnisse, klickt man auf eine einzelne Zelle sieht man die Formel, die zu diesem Ergebnis führt.
Selektiert man nun eine von diesen Zeilen, benutzt die "Kopieren-Werte" Funktion und fügt diese an einer anderen Stelle ein -> Steht hier das Ergebnis, losgelöst von der Formel.
Dies möchte ich nun auch mit einem Hyperlink machen. Ich denke man kann das ganze noch weiter runterbrechen.
In A1 steht die Formel HYPERLINK(www.blabla.de;KlickMich) . Nun möchte ich gerne das "Ergebnis", also den Namen Klickmich mit dem Hyperlink unterlegt zu der seite blabla.de kopieren und an anderer Stelle einfügen.
Hätte ich dies mit VBA gemacht, also einem Wert über Add einen hyperlink zugeordnet, dann wäre es auch gar kein problem und man könnte diese Zelle verschieben wie man möchte. Mit Werten die über die Formel "Hyperlink" in Excel zu Hyperlinks gemacht wurden, geht das leider nicht.
So kann ich aus einer komplizierten Wenn-Dann Formel, bei der am Ende der Hyperlink rauskommt, diesen nicht ohne die komplette Formel (die dabei die Bezüge verliert) an eine andere Stelle kopieren.
Daher: Stimmt es, dass Hyperlinks in Excel direkt anders gehandhabt werden, als wenn man sie über VBA erstellt und gibt es eine Abhilfe hier für?
Ich weiß. Ich habe aber bereits geäußert, dass dies mit der Originaldatei nicht möglich und vor allem nicht nötig ist. Dazu habe ich bereits 2 Fälle so detailiert geschildert, dass sie selbst einen Beispielfall ergeben.
Aber nun gut, ich habe noch einmal eine rudimentäre erstellt und angefügt. Da sich mein Hauptproblem nur noch auf die Frage bezieht ob ich das Ergebnis einer =HYPERLINK(X,Y) kopieren und an anderer Stelle einfügen kann, ist sie sehr klein geworden.
Ich denke mal das ganze wird aber darauf hinauslaufen, dass es 2 unterschiedliche Handhabungen von Hyperlinks in Excel selbst gibt. Einmal die über die Formel =HYPERLINK() in den Excel Tabellenblättern selber, von denen man nicht losgelöst das Ergebnis inklusive Hyperlink an anderer Stelle kopieren kann und den etwas umständlicheren Weg, dass man über VBA selbst Zellen und deren Inhalt einen Hyperlink zuweist. Diese kann man aber ohne Probleme kopieren und an anderer Stelle einfügen. Nur wenn ich eine Schleife über 40.000 Zeilen laufen lasse, bricht Excel zusammen oder nicht?
ich versuche mal, ohne Deine Datei angeschaut zu haben, zu antworten.
Du erzeugst einen Hyperlink per Formel aus Inhalten anderer Zellen und willst ihn per Kopie an anderer Stelle einfügen. Das gelingt nicht: Tabellenblattname: Tabelle1
Du könntest auch die Adresse als "freundlichen Namen" eingeben und dann Kopieren + Inhalte Einfügen + Werte und hast so zumindest den Link in der Zelle. Den dann zu einem Link zu machen, wäre der nächste Schritt, im Moment ist das im Excel erst mal ur ein Text Tabellenblattname: Tabelle1
07.11.2016, 11:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2016, 11:09 von Spike87.)
Hallo Schauan,
Vielen Dank für die Hilfe. Ja ich dachte mir schon, dass man den Hyperlink nicht fest an eine Zelle binden kann :/
Ich versuche auch grad verzweifelt über irgendwelche Umwege das ganze umzusetzen. Die Formel selbst auszuschneiden und dann als Ergebnis auszugeben ist ein wenig problematisch. Vlt gebe ich noch mal den Vorgang durch:
Auf Seite 1) Ist eine große (XML) Tabelle, die eine Ordnurstruktur mit Dokumenten darstellt. Zu der Spalte "Dokumentenname", hier steht der Name, gibt es auch Metadaten in weiteren Spalten wie z.b. den Link. 50.000 Zeilen/Einträge ist das ganze lang.
Auf Seite 2) habe ich eine große Formel, die aus der Spalte "Beschreibung" raussucht ob irgndwo "n=*" eingegeben wurde, wenn nicht wird der Dokumentenname + Zusammengesetzter Link in dieser Formel ausgegeben. Wenn das Dokument n=* in der Beschreibung hat, wird eine 0 ausgegeben. Formel: =WENNFEHLER(WENN(ODER(LÄNGE(Tabelle1!W2)>3;REST(Tabelle1!W2;1)>0);HYPERLINK(Tabelle2!$C$1 &Tabelle1!S2;Tabelle1!I2&"-"&Tabelle1!P2&"-"&Tabelle1!T2&"_"&Tabelle1!W2);0);HYPERLINK(Tabelle2!$C$1 &Tabelle1!S2;Tabelle1!I2&"-"&Tabelle1!P2&"-"&Tabelle1!T2&"_"&Tabelle1!W2))
Der nächste Schritt war bisher über VBA, die Ausgabewerte der Formel in eine Spalte daneben ausgeben zu lassen, alle "0 Einträge" zu entfernen und das ganze zu sortieren.
Vlt kann ich ja hier auch ein VBA Skript drüberlaufen lassen, welches aus gefundenen Dokumente Hyperlinks macht. Dafür dann das Hyperlink aus der Formel selbst entfernen... hmm
Auf Seite 3)
Wird dann, über kopieren und einfügen in VBA, die sortierte Tabelle, also alle fehlerhaften Dokumente ausgegeben.
Was ich mich grundsätzlich bei VBA Frage: Ist es überhaupt sinnvoll so lange Formeln, also über 50.000 Einträge zu nutzen, oder kann ich das ganze auch über VBA regeln? Also das ich die selbe Formel nehme wie in dem Tabellenblatt, in VBA (englisch) umschreibe und dann direkt auf die Ergebnisseite ausgebe. Zudem könnte ich dann auch den Hyperlink direkt an die Zelle binden, was ja über VBA geht. So hätte man dann wirklich nur den Dokumentennamen und den Hyperlink angezeigt. Die Frage ist nur, ich müssste ja dann eine Schleife über die kompletten 50.000 Einträge laufen lassen, würde das nciht erheblich länger dauern? Also kurz gefragt: Ist ein VBA durchgang einer Formel über alle Einträge zeitintensiver als wenn man das ganze direkt über einen Formelbezug in Excel macht?
Ich hatte auch zuerst die Idee alle gefundenen Dokumente mit Hyperlink auf der Ausgabeseite ausgeben zu lassen, in dem ich die Einträge mit gefundenen Dokumente komplett ausschneide und inklusive Formel ausgebe. Nur weiß ich nicht, wie ich die dann sortieren soll vor dem ausgeben. Ich schau mal!
Zitat:oder kann ich das ganze auch über VBA regeln? Also das ich die selbe Formel nehme wie in dem Tabellenblatt, in VBA (englisch) umschreibe und dann direkt auf die Ergebnisseite ausgebe.
... ganz so einfach ist es nicht. Du kannst aber relativ entspannt den Makrorecorder anschmeißen und das aufzeichnen, was Du machen willst. Da der Makrorecorder nicht entscheiden kann, was wichtig und was unwichtig ist, zeichnet er eben alles auf. Folglich solllte man nach einer solchen Aufzeichnung hergehen und anschließend händisch den Code bereinigen.
Schleifen und solche "Feinheiten", also, um das Ganze dynamisch zu machen, muß man ebenfalls händisch erledigen.
07.11.2016, 11:46 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2016, 11:46 von BoskoBiati.)
Hallo,
mir stellt sich eher die Frage, was diese Formel eigentlich soll. Wenn der Hyperlink nicht korrekt ist und es zu einem Fehler kommt, dann soll sie den Hyperlink erstellen. Was soll das denn??? auch wird nirgendwo nach n=* gefragt, sondern nur, ob in W2 mehr als 3Zeichen stehen, alles andere ist egal:
07.11.2016, 12:13 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2016, 12:13 von Spike87.)
Hab das ganze mit dem Makrorekorder gemacht, leider erstellt er dann einfach die übliche Tabellenfunktion "Hyperlink" und die Links sind wieder ungebunden. Werd ich das ganze wohl über Add Hyperlink in VBA versuchen.
die Formel funktioniert, sie gibt die gesuchten Dokumente mit Hyperlink wieder. Aber du hast völlig recht, ich habe mich bei der Abfrage vertan und meinte nicht n=*. Bei dieser Formel geht es darum, ob die Versionsnummer ganzzahlig und passend ist. Das ist aber irrelevant für das Problem. Redundanzen können auch vorkommen, bin noch viel am testen, aber wie gesagt sie funktioniert.
Jetzt habe ich mir noch eine neue Sache ausgedacht. Ich nutze wieder meine Ursprüngliche Formel "=WENNFEHLER(WENN(ODER(LÄNGE(Tabelle1!W2)>3;REST(Tabelle1!W2;1)>0);Tabelle1!I2&"-"&Tabelle1!P2&"-"&Tabelle1!T2&"_"&Tabelle1!W2;0);Tabelle1!I2&"-"&Tabelle1!P2&"-"&Tabelle1!T2&"_"&Tabelle1!W2)"
Jetzt möchte ich in VBA drüberlaufen lassen:
sagen wir mal die oben genannte Formel fängt in Spalte 5, Zeile5 und zieht sich über 50.000 Zeilen runter.
X=0
For x to 50.0000
IF Wert Cells(5, 5+x) > 0
then
With Worksheets("Tabelle2") .Cells(6, 5+x).Hyperlinks.Add Anchor:=.Cells(5, 5+x), Address:="www.test.de/" & .Cells(O, 1 + x) ", End With
next x
Meint ihr das ganze könnte funktionieren? Jetzt muss ich das ganze nur noch umschreiben, dass es auch wirklich passt ;) Ich glaube ich habe mich bei der Funktion Add Anchor vertan, werde mich aber zurückmelden sobald das ganze vermeintlich läuft.