Autor
|
Thema: Formeln schon in TXT-Datei erzeugen? (1071 mal gelesen)
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 12. Mrz. 2009 18:25 <-- editieren / zitieren --> Unities abgeben:
(Office 2003) Basis 1: Ich erzeuge aus einem anderen Programm tabulatorgetrennte Textlisten mit Erweiterung XLS, die in Excel schön aufgehen.
Code: d:\daten\test.doc d:\daten\test2.txt
Basis 2: In Excel gibt es die schöne "Hyperlink"-Formel, mit der man Dateien sehr schnell öffnen kann:
Code: =HYPERLINK(A2;"öffnen")
Ziel: Ich möchte meine tabulatorgetrennte Textlisten so erstellen, dass die Hyperlinkformel gleich mitkommt, also so:
Code: d:\daten\test.doc TAB =HYPERLINK(A2;"öffnen") d:\daten\test2.txt TAB =HYPERLINK(A3;"öffnen")
Problem 1: Das scheitert aber daran, dass ich bei der Listenerstellung die Zeilennummer (2, 3, ...) nicht weiss und dass angebliche "relative Bezugssystem" sich hier als absolut erweist, weil es (siehe auch Hilfe) nur im Moment des Kopieren dynamisch wird. "Lösung": Ich steige auf das "alte ZS - Bezugssystem" um, das klappt bestens, weil es wirklich relativ ist:
Code: d:\daten\test.doc TAB =HYPERLINK(ZS(-1);"öffnen") d:\daten\test2.txt TAB =HYPERLINK(ZS(-1);"öffnen")
Problem 2: Schicke ich das einem Kollegen, der nicht auf ZS umgestellt hat, funktioniert das nicht. "Lösung": Der Kollege stellt auch auf ZS um. Problem 3: Wenn der Kollege eine "normale Datei mit normalen Formeln mit normalem Bezug" öffnet, dann funktioniert das wieder nicht.Abschlussfrage: Wie kriege ich für eine Standardkonfiguration einen sauberen wirklich relativen Bezug in meine Liste? ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) [Diese Nachricht wurde von Peter2 am 12. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 12. Mrz. 2009 18:34 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 12. Mrz. 2009 18:43 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Ergänzung: (ich soll ja nicht editieren, daher neuer Beitrag)Wenn Du statt Open und Before_Close das Activate und Deactivate nutzt, kann man nebenbei auch andere Dateien bearbeiten. Code: Private Sub Workbook_Activate() Application.ReferenceStyle = xlR1C1 End SubPrivate Sub Workbook_Deactivate() Application.ReferenceStyle = xlA1 End Sub
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003
|
erstellt am: 12. Mrz. 2009 18:49 <-- editieren / zitieren --> Unities abgeben:
Makros und Co. sind nicht möglich; es muss "deppensicher" sein. Benutzer drückt einen Knopf - der Rechner erstellt die Protkolllisten (xls) - der Anwender macht Doppelklick auf XLS - fertig. Weder die digitale Verbreitung von Macros noch die Anwendung durch die Nutzer ist möglich. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 12. Mrz. 2009 21:26 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Hi, "deppensicher" -> ist es "der Anwender macht Doppelklick auf XLS - fertig" -> ist auch erfüllt. (Die Makros sind in der Datei drin und damit hat der user damit nix mehr zu tun.) "die Anwendung durch die Nutzer ist nicht möglich" -> er muß nichts anwenden, weil die im Automatic-Modus laufen (immer wenn geöffnet /aktiviert oder geschlossen/deaktiviert wird) lediglich bei "der Rechner erstellt die Protkolllisten (xls)" mußt Du (nicht der Enduser) eingreifen: Der Rechner erstellt die Protokoll-Datei basierend auf einer Vorlage, in der die Makros schon drin sind. "Weder die digitale Verbreitung von Macros [...] ist möglich." -> Ist das wirklich ein absolutes KO-Kriterium? Oder evtl. mal über eine "Zertifizierung" (Signatur) Deiner Makros nachdenken: Nur Deine Dateien, also mit Deinem Zertifikat sind ausführbar. (Beispiel: http://ww3.cad.de/foren/ubb/Forum226/HTML/000718.shtml . Oder auch http://msdn.microsoft.com/en-us/library/aa190072(office.10).aspx .) Ich habe aber selber damit noch nicht gearbeitet und auch nicht weiter gesucht, das www ist aber groß und gibt dazu bestimmt noch was her. "Meine" user sind mittlerweile darauf getrimmt, meine Dateien zu akzeptieren d.h. die Makros bei denen (und nur bei denen) zu aktivieren. Sorry, will auch nicht weiter drauf rumreiten, wenn's so wirklich nix für Dich ist, bin ich leider raus. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003
|
erstellt am: 12. Mrz. 2009 23:43 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von runkelruebe: ... "der Anwender macht Doppelklick auf XLS - fertig" -> ist auch erfüllt. (Die Makros sind in der Datei drin und damit hat der user damit nix mehr zu tun.)...
Wenn das so ist, dann ist es gut. Aber wie kriegt ich die Makros in das XLS? Das ist wie gesagt keine "echte XLS", sondern eine blanke tabulatorgetrennte Textdatei. Kann man da die Macros als blanker Code mitgeben? Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Mrz. 2009 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 13. Mrz. 2009 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Moinsen, T'schuldigung, ich hatte diese Einschränkung "Das ist wie gesagt keine "echte XLS", sondern eine blanke tabulatorgetrennte Textdatei." gestern so nicht gelesen. Gehen geht es bestimmt irgendwie, aber da die Lösung von Thomas ja zielführender ist und zudem völlig auf Makros verzichten kann, spare ich mir jetzt weiteres Nachforschen und auswendig weiß ich sowas nicht. Das mit Zeile() fiel mir gestern Abend (zu) spät noch ein, hatte mich da vorher einfach in der Idee verrannt und heute morgen ist mir Deine AW nicht aufgefallen. Aus einer Tankstellen-Werbung: Für alle die, die ohne Kaffee jemand anders sind SWE!
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003
|
erstellt am: 13. Mrz. 2009 11:36 <-- editieren / zitieren --> Unities abgeben:
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 13. Mrz. 2009 13:23 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Thomas Harmening:
Code: =HYPERLINK(INDIREKT("A"&ZEILE());"gehe zu "&INDIREKT("A"&ZEILE()))
Spalte A ist Fixiert, Zeile ist Relativ HTH
So, jetzt habe ich mal das Beispiel zum laufen gebracht (Achtung: im obigen Beispiel fehlt eine schliessende Klammer vor dem Semikolon), inkl. einer Linkbeschriftung namens "öffnen". Code: c:\Filme\DSC00001.JPG =HYPERLINK(INDIREKT("A"&ZEILE());"öffnen") c:\Filme\DSC00002.JPG =HYPERLINK(INDIREKT("A"&ZEILE());"öffnen")
Aber: Wie kriege ich "A" (konkret: 1 Spalte links von der Formel; S(-1)) auch relativ hin?Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Ramel Mitglied Project Manager / Engineering
Beiträge: 55 Registriert: 31.01.2007
|
erstellt am: 13. Mrz. 2009 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Grüezi Peter Du kannst die INDIREKT()-Funktion auch mit der Z1S1-Schreibeiweise verwenden. Das hat dann keinen Einfluss darauf, welche Einstellung der User an seinem System vorgenommen hat: Die folgende Formel bezieht sich immer auf die Zelle unmittelbar links (war voher: rechts) der Zelle in welcher sie selbst steht: =HYPERLINK(INDIREKT("ZS(-1)";0);"gehe zu "&INDIREKT("ZS(-1)";0)) ------------------ Mit freundlichen Grüssen
Thomas Ramel [Diese Nachricht wurde von Thomas Ramel am 13. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 13. Mrz. 2009 14:17 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Peter2: ...(Achtung: im obigen Beispiel fehlt eine schliessende Klammer vor dem Semikolon), inkl. einer Linkbeschriftung namens "öffnen"....
Da habe ich Quatsch behauptet - das Beispiel ist schon OK, ich habe das Semikolon falsch interpretiert. Zitat: Original erstellt von Thomas Ramel: ...Die folgende Formel bezieht sich immer auf die Zelle unmittelbar rechts der Zelle in welcher sie selbst steht:...
Bezieht sich nach Links, nicht nach rechts, oder? Zitat: Original erstellt von Thomas Ramel: =HYPERLINK(INDIREKT("ZS(-1)";0);"gehe zu "&INDIREKT("ZS(-1)";0))
Genau das ist es - danke und schönes Wochenende. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Mrz. 2009 16:24 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
|