Registriert seit: 18.10.2016
Version(en): 2016
01.02.2019, 17:09
(Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2019, 17:13 von n8lauscher.)
Hallo,
ich habe eine Excel-Datei "Textoptimierung.xlsx" welche zwei Arbeitsblätter enthält. Diese Datei liegt als Beispiel unter: d:\Textoptimierung.xlsx - der Pfad muss aber später variabel sein.
Arbeitsblätter von "Textoptimierung.xlsx" Arbeitsblatt_1_Name: Stoppwörter Arbeitsblatt_2_Name: zulässige Zeichen
im Arbeitsblatt "Stoppwörter" stehen alle für mich relevanten Stoppwörter untereinander: da das der
im Arbeitsblatt "zulässige Zeichen" stehen alle von mir zugelassenen Zeichen: A B C D Ä Ü \ +
Jetzt möchte ich ein global gültiges Makro erstellen welches in jedem beliebigen Excel-Dokument die aktuell markierten Zellen entsprechend optimiert und dabei auf die "Textoptimierung.xlsx" zugreift und die dort hinterlegten Werte als Basis verwendet. STRG+SHIFT+S - soll bei allen markierten Zellen die Stoppwörter löschen STRG+SHIFT+Z - soll alle Zeichen löschen die nicht von mir als "zulässige Zeichen" erlaubt wurden. STRG+SHIFT+C - soll beides nach einander durchführen - erst Zeichen löschen dann Stoppwörter entfernen
Kann mir hier jemand helfen?
Ich bitte um Rückmeldung. Vielen DANK
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
Hallo, in DieseArbeitsmappe PHP-Code: Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey "^+s", "" Application.OnKey "^+z", "" Application.OnKey "^+c", "" End Sub
Private Sub Workbook_Open() Application.OnKey "^+s", "Modul1.S" Application.OnKey "^+z", "Modul1.Z" Application.OnKey "^+c", "Modul1.C" End Sub
in ein allgemeines Modul PHP-Code: Sub S() arr = Worksheets("Stoppwörter").Range("A1:A3")
For Each a In arr Selection = Replace(Selection, " " & a & " ", " ") Next a End Sub
Sub Z() arr = Worksheets("zulässige Zeichen").Range("A1:A9")
For Each a In arr Selection = Replace(Selection, a, " ") Next a
End Sub
Sub C() Call S Call Z End Sub
Registriert seit: 18.10.2016
Version(en): 2016
01.02.2019, 18:07
(Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2019, 18:07 von n8lauscher.)
@Flotter Feger, nur kurz zum Verständnis. ich habe folgende Dateien: PERSONL.XLS ( als Vorlage für meine globalen Makros ) und Textoptimierung.xlsx d.h. wenn ich eine neue Excel-Datei öffne wird immer laut: https://www.computerwissen.de/office/exc...achen.htmldie PERSONL.XLS geladen - hier soll das Makro liegen. und in der Datei Textoptimierung.xlsx sollen nur die Argumente abgelegt werden. Der Speicherort zum abfragen von Textoptimierung.xlsx soll als Konstante in der PERSONL.XLS definiert werden können. So wie ich Dein Makro verstanden habe - müsste ich dieses bei jedem geöffneten Arbeitsblatt entsprechend einfügen. Das möchte ich aber nicht - ich möchte dass die allgmeine Vorlage PERSONL.XLS das Makro enthält und immer beim Öffnen von Excel mitgeladen wird. geht dies überhaupt? Ich bitte um Rückmeldung und natürlich besten DANK für die schnelle Hilfe.
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
01.02.2019, 23:37
(Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2019, 23:37 von Flotter Feger.)
Hallo,
leg den Code lieber in ein AddIn. Ist sinnvoller, als ihn in die Personal.XLSB zu packen.
Der Aufruf über 'Application.Run' hat so seine Tücken ... und zusammen mit den ShortCuts ... ich würde das AddIn vorziehen. Ist aber deine Entscheidung.
Um deinen Pfad flexibel zu machen, schau dir mal 'Application.GetOpenFilename' an.
PS: es wäre schön, wenn du von Anfang an, immer gleich alle Informationen in den Eingangspost schreibst ... mit allem drum und dran. Die meisten Helfer ... und da schließe ich mich absolut ein ... mögen es gar nicht, wenn sich die Vorgaben ständig ändern. Meist arbeitet frau nämlich dann für den Mülleimer, da die Vorgaben teilweise extrem auseinander gehen, wenn sie On-The-Fly geändert werden.
Registriert seit: 18.10.2016
Version(en): 2016
02.02.2019, 00:12
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2019, 00:12 von n8lauscher.)
Hallo Sabina, Zitat:es wäre schön, wenn du von Anfang an, immer gleich alle Informationen in den Eingangspost schreibst ... mit allem drum und dran. Die meisten Helfer ... und da schließe ich mich absolut ein ... mögen es gar nicht, wenn sich die Vorgaben ständig ändern. Meist arbeitet frau nämlich dann für den Mülleimer, da die Vorgaben teilweise extrem auseinander gehen, wenn sie On-The-Fly geändert werden. Das war aber nicht meine Absicht! Ich denke, dass ich mich einfach nur unglücklich ausgedrückt hatte. Ich beschäftige mich mit Excel erst seit ca. 5 Monaten und lerne täglich neue Sachen. Da ich mit mehreren Makros arbeite und mir das Makro einfügen in eine Arbeitsmappe jedesmal aufs neue auf die Nerven gegangen ist - habe ich heute einfach einmal nachgelesen - ob es nicht sowas wie ein globales Makro gibt. Ich war der Meinung dass wenn ich vom globalen Makro schreibe - dass dann immer von der Personal.XLSB gesprochen wird. Mir waren bis zu Deinem Post "AddIn" gar nicht bekannt. Daher bitte ich dies zu entschuldigen. Und nochmals DANKE für Deine Mühe werde einmal prüfen ob ich mit Deinen Infos weiterkomme.
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
02.02.2019, 01:06
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2019, 01:06 von Käpt'n Blaubär.)
Hallo, Zitat:... ob es nicht sowas wie ein globales Makro gibt. den Tipp, das Teil besser in ein AddIn zu packen anstatt ihn in der PERSONL.XLS abzulegen, hast Du doch schon bekommen. Ich würde das an Deiner Stelle tun.
Registriert seit: 18.10.2016
Version(en): 2016
02.02.2019, 01:51
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2019, 01:51 von n8lauscher.)
Hallo, ja danke. Leider komme ich nicht weiter mit dem Add-in: ich habe nun folgendes Add-in Makro erstellt: Code: Option Explicit
Sub shortcuts() Application.OnKey "+^{C}", "test" End Sub
Sub test() Range("A1:A11").Select End Sub
Habe das dann als test.xlam gespeichert und über Add-in Verwaltung aktiviert. Wenn ich nun eine neue Excel-Datei aufmache und STRG+SHIFT+c drücke höre ich nur diesen "Error" - Ton. Nichts passiert. Wenn ich dann in die Entwicklertools gehe, das Makro einmal starte - dann STRG+SHIFT+c drücke wird im neuen Dokument a1:a11 markiert. Ich hatte aber doch verstanden, dass das add-in immer direkt geladen wird ohne das ich das Makro noch einmal ausführen muss? oder verstehe ich hier etwas falsch? was mache ich falsch? bzw. muss das Makro immer explizit gestartet werden? Ich bitte um Rückmeldung. DANKE
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
wenn Du Dir die erste Antwort anschaust, dann hast Du dort zweierlei Makros. Die aus dem ersten Teil laufen bei bestimmten Ereignissen - da steht was von Workbook_open und beforeclose…
Damit ein Makro etwas bewirkt, muss es erst mal gestartet werden. Das kann z.B. manuell oder auf Knopfdruck passieren oder eben bei bestimmten Ereignissen.
Egal ob AddIn oder Personl.xls(b), ich hätte an einigen Stellen, z.B. beim Zugriff auf Sheets, noch differenziert, wo genau ich was finde, z.B. ThisWorkbook.Worksheets("Stoppwörter").Range("A1:A3")
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• n8lauscher
Registriert seit: 18.10.2016
Version(en): 2016
Hallo, ich wollte mich noch einmal bezüglich Shortcut bei Excel Start zurückmelden: Code: '' Modul Shortcuts
Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey "+^{C}", "" End Sub
Private Sub Workbook_Open() ' STRG + SHIFT + C Application.OnKey "+^{C}", "test" End Sub
Code: '' Modul Test
Private Sub test() MsgBox "Hallo Forum" End Sub
Ich habe es jetzt genauso wie in "Flotten Feger"s Beispiel probiert. Auch hier nun - nach starten eines beliebigen Excel-Dokuments und drücken von STRG + SHIFT + C bekomme ich nach wie vor den "ERROR" - Ton. Wenn ich dann in die Entwicklertools gehe und das Makro "Shortcuts" einmal mit Play starte funktioniert alles wie es soll. Wieso kann der Shortcut immer noch nicht beim Öffnen eines beliebigen Excel-Dokuments geöffnet werden? Was mache ich falsch?
Registriert seit: 03.10.2018
Version(en): 2010 ProPlus / 2016 ProPlus
02.02.2019, 11:56
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2019, 11:56 von Flotter Feger.)
Hallo, Zitat:Ich habe es jetzt genauso wie in "Flotten Feger"s Beispiel probiert. Nein ... nicht wirklich ... Setze dich ganz ruhig hin ... lösche dann die geschweiften Klammern um das C und schon sollte es eigentlich gehen. Du kannst dir auch nochmal meinen Code ansehen, nur um sicher zu gehen. :17:
|