Archiv

Archiv für die Kategorie ‘Technik’

File Thingie – Syntax-Highlighting mit Ace-Editor

20. März 2017 Keine Kommentare

Als webbasierter Dateimanager kommt bei mir nach wie vor aufgrund seiner Einfachheit bevorzugt File Thingie zum Einsatz (Download Version 2.5.7). Diesen nutze ich auch gerne, um mal kurz was am Code bestimmter Dateien zu ändern, wenn ich grade keinen FTP-Zugang zum Server habe. Aber leider besteht der Standard-Editor nur aus einem Textfeld, und die im vorigen Beitrag angesprochenen Editor-Plugins wollte ich nicht nutzen, da ich WYSIWYG-Editoren nicht mag und für Code auch gar nicht gebrauchen kann.

Mit Ace gibt es aber auch einen reinen Code-Editor mit sehr gutem Funktionsumfang wie Syntax Highlighting für mehr als 110 Sprachen, verschiedene Themes sowie jede Menge weiterer Anpassungsmöglichkeiten. Dieser muss allerdings erst in File Thingie integriert werden. Nachfolgend möchte ich die dafür nötigen Änderungen aufzeigen.

Anforderungen
– Alle in File Thingie zur Bearbeitung freigegebenen Dateitypen sollen mit Ace dargestellt werden.
– Es soll je nach geöffneter Datei die korrekte Sprache für Syntax Highlighting geladen werden.
– Möglichst wenig Änderungen an der Funktionsweise von File Thingie selbst

Umsetzung
Zuerst müssen in der config.php die Dateitypen festgelegt werden, welche mit File Thingie bearbeitet werden sollen. Dafür sind an 2 Stellen Anpassungen erforderlich:

$ft["settings"]["FILETYPEBLACKLIST"] = ""; // File types that are not allowed for upload.

Nicht vom Kommentar irritieren lassen, diese Option gilt nicht nur für den Upload, sondern die hier eingegebenen Dateitypen werden generell nicht angezeigt.

$ft["plugins"]["edit"] = array(
  "settings" => array(
    "editlist" => "txt html htm css php js xml",
    "converttabs" => FALSE
  )
);

Danach geht es weiter mit der Datei edit.plugin.php im plugins-Verzeichnis. Der Editor in File Thingie ist eine einfache textarea. Diese kann von Ace aber nicht direkt verarbeitet werden. Ace ist für die Nutzung mit Containern wie div oder pre ausgelegt. Daher ist es erforderlich, ein neues div anzulegen.

In dieser Datei ist zusätzlich noch die Ermittlung des Dateityp erforderlich. Dazu wird ein zusätzliches verstecktes Eingabefeld angelegt, in welchem nur die Dateiendung der aktuell geladenen Datei gespeichert wird.

// Make form or show lock message.
$split_file = explode(".",$_REQUEST['file']);
$file_ext = $split_file[sizeof($split_file)-1];
$str .= '<form id="edit" action="'.ft_get_self().'" method="post">
  <div>
    <textarea cols="76" rows="20" name="filecontent" id="filecontent">'.$filecontent.'</textarea>
    <div name="ace_editor" id="ace_editor">'.$filecontent.'</div>
  </div>
  <div>
    <input type="hidden" name="file_ext" id="file_ext" value="'.strtolower($file_ext).'"</>
    <input type="hidden" name="file" id="file" value="'.$_REQUEST['file'].'" />
    <input type="hidden" name="dir" id="dir" value="'.$_REQUEST['dir'].'" />
    <input type="hidden" name="act" value="savefile" />
    <button type="button" id="save">'.t('Save').'</button>
    <input type="submit" value="'.t('Save &amp; exit').'" name="submit" />
    <input type="submit" value="'.t('Cancel').'" name="submit" />
    <input type="checkbox" name="convertspaces" id="convertspaces"'.($ft['plugins']['edit']['settings']['converttabs'] == TRUE ? ' checked="checked"' : '').' /> <label for="convertspaces">'.t('Convert spaces to tabs').'</label>
    <div id="savestatus"></div>
  </div>
</form>';				  

Zu guter Letzt muss in der Datei ft2.php der Ace-Editor eingebunden, aktiviert und der Inhalt des neuen Editor-div in die „alte“ textarea übertragen werden, damit die Änderungen auch gespeichert werden. Die textarea selbst wird ausgeblendet, damit nicht zwei Eingabebereiche ausgegeben werden. Zusätzlich wird geprüft, um welchen Dateityp es sich handelt, um die Syntax Highlighting Regeln für die entsprechende Sprache zu laden.

	<style type="text/css">
	  @import "css/ft.css";
    <?php echo implode("\r\n", ft_invoke_hook('add_css'));?>
	</style>
    <style type="text/css" media="screen">
      .ace_editor {
        position: relative !important;
        border: 1px solid lightgray;
        margin: auto;
        height: 600px;
        width: 800px;
      }
    </style>
    </head>
<body>

	<?php echo $str;?>
  <?php echo ft_make_scripts_footer();?>
  <?php echo implode("\r\n", ft_invoke_hook('destroy'));?>
<script src="./js/ace-builds/src/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
  var editor = ace.edit("ace_editor");
  editor.setTheme("ace/theme/twilight");
  var file_ext = document.getElementById("file_ext").value;
  switch(file_ext) {
    case "php":
      editor.session.setMode("ace/mode/php");
      break;
    case "js":
      editor.session.setMode("ace/mode/javascript");
      break;
    case "htm":
    case "html":
      editor.session.setMode("ace/mode/html");
      break;
    case "css":
      editor.session.setMode("ace/mode/css");
      break;
    case "xml":
      editor.session.setMode("ace/mode/xml");
      break;
    default:
      editor.session.setMode("ace/mode/text");
  }
  var textarea = $('textarea[name="filecontent"]').hide();
  editor.getSession().setValue(textarea.val());
  editor.getSession().on('change', function(){
    textarea.val(editor.getSession().getValue());
  });
  editor.setPrintMarginColumn(false);
  </script>
</body>
</html>

Die erforderlichen Dateien für Ace kann man von der Webseite beziehen und beispielsweise im Unterverzeichnis js ablegen (wie im Code dargestellt). Möchte man weitere Dateitypen zur Bearbeitung freigeben, müssen die neuen Endungen wieder in der config.php freigegeben und in der ft2.php als neuer case ergänzt werden.

MoWeS Portable startet nicht unter Windows 10 Version 1607

15. Oktober 2016 Keine Kommentare

Habe zum Ende der kostenlosen Wechselphase noch schnell das Upgrade von Windows 7 auf Windows 10 durchgeführt. Kurz darauf folgte dann auch das Anniversary Update (Version 1607).

Nun wollte ich mal wieder MoWeS starten, da ich es trotz veralteter Apache und PHP Version dennoch gerne als schnell verfügbares Testsystem für einige Sachen nutze.

Nun musste ich leider feststellen, dass der Apache Dienst nicht mehr startet.

MoWeS-Status

Nach ein wenig Recherche war der Grund schnell gefunden: der WWW-Publishingdienst ist in Windows 10 standardmäßig aktiviert und blockiert den Port 80. Somit kann Apache in der Default-Konfiguration nicht starten.

Vorübergehend Abhilfe kann man sich über die Konsole verschaffen. CMD mit Admin-Rechten starten und folgendes eingeben:

net stop w3svc

Anschließend MoWeS bzw. die Server neu starten. Nun sollte alles wieder laufen.

Dies hilft aber nur temporär. Nach dem nächsten Neustart von Windows ist der WWW-Publishingdienst wieder aktiviert. Wer ihn dauerhaft abschalten möchte, muss den Dienst deaktivieren. Dazu gibt man in der Windows Suche bzw. Cortana das Wort Dienste ein und sollte eine passende Desktop-App finden. Diese öffnen und nach dem Eintrag WWW-Publishingdienst suchen. Mit der rechten Maustaste in die Eigenschaften wechseln und dort den Dienst von Starttyp Automatisch auf Deaktiviert ändern.

WWW-Dienst

Nach dem nächsten Neustart von Windows bleibt der Dienst abgeschaltet und man kann sofort mit MoWeS oder anderen WAMP-Installationen loslegen.

Mehrere Verzeichnisse in einzelne Archive verpacken

7. Januar 2015 1 Kommentar

Stapelverarbeitung ist ne feine Sache. Die Anforderung war gleichermaßen einfach wie lästig, sollte man sie händisch durchführen müssen: Auf einem Gruppenlaufwerk liegen viele Dateien in verschiedenen Verzeichnissen. Aus Platzgründen kam nun die Idee auf, diese Unterlagen verzeichnisweise zu komprimieren, um Platz zu sparen. Jedes Verzeichnis eine ZIP-Datei mit gleichem Namen. Bei mehreren Hundert Verzeichnissen eine sehr undankbare Aufgabe, wenn man sich nicht zu helfen weiß.

Die kostenlose Lösung heißt 7-Zip, ein schnelles und einfaches Kompressionsprogramm. Das Vorhaben ginge zwar auch mit WinZIP oder WinRAR, diese standen aber nicht zur Verfügung, wohingegen 7-Zip auch als Portable zu erhalten ist.

Man erstellt sich also mit dem Editor eine Batch-Datei (*.bat) und kopiert die folgende Zeile hinein:

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip "%%X.zip" "%%X\

Wenn statt Verzeichnissen Dateien einzeln gepackt werden sollen, sieht der Befehl wie folgt aus:

for %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip "%%X.zip" "%%X"

In der jetzigen Form muss die Batch-Datei im selben Hauptverzeichnis liegen wie die Verzeichnisse / Dateien, welche komprimiert werden sollen. Evtl. muss noch der Installationspfad zu 7-Zip angepasst werden.

Scrobbeln ohne den offiziellen Last.fm Client mit VLC, foobar2000 oder WinAmp

3. Juli 2014 Keine Kommentare

Ich wollte nach langer Zeit mal wieder ein wenig Musik scrobbeln. Der offizielle Last.fm Client kam nicht in Frage, da ich auf dem Rechner keine Adminrechte habe und die Software ohnehin nicht mag. Es musste also eine Alternative her.

In der Vergangenheit hatte ich zu diesem Zweck zeitweilig WinAmp in Kombination mit dem Plugin gen_audioscrobbler.dll (v1.1.1.0) im Einsatz. Aber WinAmp ist mir seit langem zu aufgebläht und auch nicht als vernünftige Portable Version erhältlich und somit keine Option mehr.

Die nächste Variante wäre foobar2000 mit dem Plugin foo_audioscrobbler (v1.4.7). Das funktioniert auch sehr gut und ist schnell und einfach eingerichtet. Einfach die ZIP-Datei speichern, in foobar2000 importieren und anschließend die Zugangsdaten eintragen.

Aber der einzige Player mit direkt integriertem Scrobbler, den ich finden konnte, scheint der VLC zu sein. Hier müssen keine alten, nicht mehr weiterentwickelte Plugins installiert werden, sondern der VLC bringt die Funktion standardmäßig mit. Nur deren Aktivierung scheint manchmal etwas zu haken, deshalb auch dieser Beitrag für alle, die auch ihre Probleme mit der Einrichtung haben.

Eins sei noch gesagt: ich beziehe mich hier auf die Portable Version des VLC. Nach einigen Versuchen kam ich auf die folgende Vorgehensweise:

Zuerst öffnet man das Verzeichnis der Portable Version (bei der normalen Version %appdata%). Unter Data => Settings einfach die Datei vlcrc löschen. Diese wird nach dem Start von VLC mit Standardwerten neu erstellt. Dann öffnet man in VLC unter Werkzeuge die Einstellungen. Man kann erstmal in den einfachen Einstellungen bleiben und klickt auf Audio. Der letzte Punkt muss aktiviert werden, damit sich die Anmeldefelder einblenden. Hier trägt man nun seinen Last.fm Benutzernamen und das Passwort ein und speichert anschließend.

vlc1

Anschließend öffnet man erneut die Einstellungen, diesmal allerdings die erweiterten Einstellungen. Nun muss kontrolliert werden, ob unter Interface => Kontroll-Interfaces auch die nötige Option aktiviert ist. Und unter Interface => Kontroll-Interfaces => Audioscrobbler nochmals kontrollieren, ob hier auch hier Benutzername und Passwort eingetragen sind.

vlc2

Man sollte meinen, dass es damit erledigt wäre, aber in den Meldungen (CTRL + M) mit Ausführlichkeit 2 tauchten dennoch keine Einträge des Scrobblers auf. Den VLC schließen und wieder zurück in den Explorer. Jetzt öffnet man die Datei vlcrc mit einem Editor und sucht nach scrobbler-url. Dieser Eintrag ist auskommentiert, die # muss weg, danach speichern und den VLC erneut starten. Jetzt sollte es auch mit dem scrobbeln klappen, in den Meldungen tauchten bei mir jetzt auch die passenden Einträge auf.

 
Auf einem System ohne Proxy sollte nun alles klappen. Leider habe ich eine fest vorgegebene Pac-Proxy Datei, welche den Internetzugang steuert. Ich schrieb zwar bereits, wie man mit benutzerdefinierten Umgebungsvariablen solchen Fällen begegnen kann, aber mittlerweile wurde der Rechner von XP auf Win 7 umgestellt und die Zugriffsbeschränkungen auf das System deutlich verschärft, womit diese Möglichkeit entfällt.

Und alle hier aufgeführten Scrobbler-Lösungen haben die selbe Schwachstelle: Sie ignorieren den eingetragenen Proxy in der Anwendung und versuchen eine direkte Verbindung zum Internet aufzubauen, was natürlich nicht funktioniert. Die Anmeldung klappt meistens sogar noch, aber die Übermittlung der gespielten Tracks will den direkten Weg…

Das ist zwar schade, aber auch nicht weiter tragisch, dann wird eben weiterhin nicht gescrobbelt. Aber zumindest hab ich mal wieder was hier gepostet 😀

 
Nachtrag:
Wer oft Musik bei Youtube, Pandora, Google Play Musik oder ähnlichen Diensten hört, kann ja mal einen Blick auf die Chrome Erweiterung Last.fm Scrobbler werfen. Unterstützt viele Webseiten und arbeitet nach ersten Probeläufen recht zuverlässig, wenngleich die Titelerkennung zumindest bei Youtube nicht unbedingt glänzen kann.

MoWeS Portable II Installationspakete

4. März 2013 9 Kommentare

MoWes Portable II ist für mich schon lange eine unverzichtbare portable Softwareperle auf meinem USB-Stick. Der zuverlässige Webserver to go hat mich noch nie im Stich gelassen, ganz im Gegensatz zu seinem hoch gelobten Verwanten XAMPP, welcher zwar auch als Portable Edition zu haben ist, mir aber in der Vergangenheit mehr Ärger bereitete als Nutzen brachte.

Mit Bedauern musste ich vor einigen Monaten dann feststellen, dass die Firma hinter MoWeS ohne Vorankündigung ihre Geschäftstätigkeit eingestellt hat und im selben Zuge auch die Webseite offline genommen wurde. Somit war kein rankommen an die Installationspakete mehr möglich. Hätte man das vorher bekannt gegeben, ich hätte mir noch schnell eine Sicherung der aktuellsten Pakete gemacht.

Heute hatte ich mal ein wenig Zeit und Lust, mich auf die Suche nach einer dezentralen Sicherungskopie zu begeben und wurde schnell bei Softpedia fündig. Dort gibt es aber „nur“ die Serverkomponenten, die vorgefertigten Softwarepakete haben sie nicht im Angebot, was aber nicht weiter tragisch ist, die kann man schließlich selbst installieren.

Falls jemand nur einzelne Pakete benötigt, habe ich mal alles bei uploaded.to hochgeladen. Enthalten sind die folgenden Pakete:

  • MoWeS Portable II (Version 2.2.3)
  • Apache 2 (Version 2.2.11) + SE
  • MySQL 5 (Version 5.5.8) + SE
  • ImageMagick (Version 4.2.9)
  • PHP 4 (Version 4.4.9) + SE
  • PHP 5 (Version 5.3.5) + SE
  • PHP 5.2 (Version 5.2.17)

mowes_portable.zip ist ein Pflichtdownload und muss nur entpackt werden. Die anderen Pakete werden im Stammverzeichnis von MoWeS gespeichert und anschließend das Programm gestartet. Es beginnt mit der Einrichtung, installiert die einzelnen Pakete und startet anschließend den portablen Server. Fertig 🙂

Ich hoffe, der Download hilft dem einen oder anderen Fan von MoWeS.

 
Update 06.01.2015

Da Uploaded nun wirklich nicht die beste Wahl war, hier noch eine zusätzliche Download-Quelle: Google Drive. Zwar auch nicht optimal, aber zumindest schneller und keine Mengen- bzw Zeitbegrenzung.

Es sind auch ein paar Pakete dazu gekommen, für weitere Infos einfach mal dem Link folgen.

File Thingie – Ein web-basierter Dateimanager auf PHP-Basis

4. Januar 2013 2 Kommentare

Es kann sehr störend sein, wenn man nicht jederzeit via FTP auf seinen Webspace zugreifen kann. Tagsüber sitze ich hinter einem Proxy, der nur HTTP Verbindungen zulässt. Und ohne eigenen WebFTP-Server meide ich derartige Angebote auch lieber, wer kann schon mit Sicherheit sagen, was mit den Zugangsdaten passiert, die man auf solchen Seiten eingibt.

Um dieses Manko ein wenig zu entschärfen, habe ich mich daher nach einem Script umgesehen, welches es mir ermöglichen soll, alle relevanten Dateien (html, php, css, xml, etc.) auf dem Server direkt im Browser zu bearbeiten. Ein CMS kommt bisher nicht zum Einsatz (WordPress mal ausgenommen, aber darin verwalte ich nicht meine eigenen Scripte). Und ich muss sagen, ich bin überrascht, wie schwer es ist, ein passendes Helferlein zu finden.

Online Dateimanager gibt es zu Hauf, aber viele davon lassen sich nicht auf dem eigenen Server installieren, sondern wollen wieder wie schon WebFTP die Zugangsdaten von einem wissen. Und sehr viele der verbleibenden Lösungen lassen sich nicht auf das root-Verzeichnis des Servers anwenden, sondern bringen ihre eigene, geschlossene Verzeichnisstruktur mit. Ich will aber keine ausgeklügelte Multi-User Unterstützung, sondern einfach nur jederzeit Zugriff auf alle meine Daten.

Fündig geworden bin ich schließlich mit File Thingie. Dabei handelt es sich um einen kleinen, überschaubaren Dateimanager mit Editier-Funktionalität und der Möglichkeit, ZIP-Archive zu entpacken. Und er muss nicht mal im Root-Verzeichnis abgelegt werden, sondern kann in einem beliebigen Unterverzeichnis seine Dienste verrichten.

In der config.php müssen zuvor aber noch ein paar Änderungen vorgenommen werden: Benutzername und Passwort sollten vergeben werden, Anpassung des Standardverzeichnisses, Bearbeiten der Blacklists und letztlich unter den Plugin Settings die Ergänzung weiterer zugelassener Dateiendungen für den Editor.

Wer möchte, kann sich auch einen WYSIWYG-Editor hinzufügen. Im Installationspaket enthalten sind bereits Plugins für TinyMCE, CKEditor und FCKEditor, eigene Plugins können aber ebenfalls hinzugefügt werden.

Eine einfache, eingebaute Möglichkeit für Syntax Highlighting im normalen Texteditor gibt es hingegen leider nicht… oder ich hab sie bisher nur noch nicht gefunden, denn ein WYSIWYG-Editor hilft mir in den meisten Fällen nicht weiter.

Update:
Da das Projekt auf den offiziellen Seiten nicht mehr erreichbar ist, hier die letzte Version zum Download: File Thingie 2.5.7

Excel – Blattschutz aufheben bei unbekanntem Passwort

3. Januar 2013 23 Kommentare

Grade in die Situation gekommen, ein altes Makro sezieren zu müssen. Bei der Gelegenheit ist mir aufgefallen, dass ich in der Datei vor ca. 4 Jahren einen Blattschutz mit Passwort eingerichtet habe. Und wie es der Zufall so will, viel mir selbiges natürlich auch nicht mehr ein.

Also musste schnell eine Lösung her, und die lieferte mir Google überraschend schnell. Ich hätte gedacht, dass die Schutzmechanismen von Office etwas ausgeklügelter wären, aber man kann den Blattschutz mit einem kleinen Makro sehr leicht und relativ schnell aushebeln.

Eine Videoanleitung dazu habe ich bei Youtube gefunden und spare mir daher an dieser Stelle die weiteren schriftlichen Ausführungen und verweise einfach auf das Tutorial.

 
Und hier noch der benötigte Makro-Code, einfach als Modul in dem Dokument speichern, dessen Blattschutz man entfernen möchte, und anschließend auf dem Blatt ausführen.

Sub Blattschutz_Entfernen()
  On Error Resume Next
  For i = 65 To 66
   For j = 65 To 66
    For k = 65 To 66
     For l = 65 To 66
      For m = 65 To 66
       For n = 65 To 66
        For o = 65 To 66
         For p = 65 To 66
          For q = 65 To 66
           For r = 65 To 66
            For s = 65 To 66
             For t = 32 To 126

ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & _
Chr(n) & Chr(o) & Chr(p) & Chr(q) & Chr(r) & Chr(s) & Chr(t)

             Next t
            Next s
           Next r
          Next q
         Next p
        Next o
       Next n
      Next m
     Next l
    Next k
   Next j
  Next i
  MsgBox "Der Blattschutz sollte jetzt deaktiviert sein."
End Sub

Funktioniert mit Excel 2003 ganz hervorragend, nach knappen 2 Minuten konnte ich das Dokument wieder vollständig nutzen und bearbeiten. Laut Video soll das Makro auch in Excel 2007 nutzbar sein.

Calibre trotz PAC Proxy voll nutzen

19. Oktober 2012 Keine Kommentare

Heute kommt endlich mein Kindle, und in weiser Vorahnung habe ich rechtzeitig begonnen, mich schon mal ein wenig mit Calibre anzufreunden. Das Programm hat schon vor der Installation dadurch gepunktet, dass es als Portable Version verfügbar ist. Also gleich mal rauf damit auf die externe Festplatte.

Aber fast ebenso schnell stieß ich auch schon auf die ersten Hürden. Daheim läuft alles reibungslos, aber tagsüber kann ich wenn überhaupt nur über einen Proxy-Server auf das Internet zugreifen. Calibre kann zwar den Default-Proxy aus den IE-Einstellungen herauslesen, das funkioniert aber nur, wenn der Proxy dort als HTTP-Proxy fest eingetragen ist. In meinem Fall wird aber eine recht umfangreiche PAC-Datei zur Konfiguration eingelesen, und damit kommt Calibre nicht klar. Ergebnis: gar kein Inet-Zugriff mit dem Programm.

Zur Lösung: Zuerst öffnet man eine oder besser gleich 2 oder 3 beliebige Webseiten im Browser. Anschließend öffnet man die Kommandozeile (Start => Ausführen => cmd) und startet dort das Programm netstat. In den Ergebnissen sucht man nun nach einem großen, zusammenhängenden Block von TCP-Verbindungen, die alle an die gleiche Remoteadresse gestellt wurden und im Status wartend oder hergestellt stehen.

Nun öffnet man die Systemeigenschaften (Rechten Mausklick auf Arbeitsplatz und dann Eigenschaften oder Start => Einstellungen => Systemsteuerung => System), wechselt dort auf den Reiter Erweitert und wählt den Button Umgebungsvariablen.

Nun legt man eine neue Benutzervariable an. Als Name trägt man http_Proxy ein, und als Wert den zuvor mit netstat ermittelten Server mit vorangestelltem http://

Fertig. Startet man nun Calibre, hat man vollständigen Internetzugriff und kann alle Funktionen wie gewohnt nutzen. Und das beste an der ganzen Geschichte, man benötigt noch nicht einmal Admin-Rechte dafür, man kann diese Vorgehensweise also auf jedem Rechner selbst vornehmen.

Sollte der Zugriff irgendwann mal nicht mehr funktionieren, ist der Server evtl. aus der PAC-Datei geflogen und ein anderer aktiv. In dem Fall wieder mit netstat den neuen Proxy ermitteln und den Eintrag bei den Umgebungsvariablen anpassen.

Excel – Inhalte als Plain Text einfügen

17. August 2012 Keine Kommentare

Wer oft mit Excel arbeitet, dürfte das folgende Problem nur zu gut kennen. Man kopiert Daten aus der einen Tabelle, fügt sie in der nächsten ein und siehe da, die Formatierung ist hinüber. Also entweder manuell nachbessern oder aber Bearbeiten => Inhalte einfügen… verwenden.

Dieses Fenster erscheint, wenn man innerhalb von Excel Daten kopiert. Bei mir kommt das täglich beruflich vor. Und da es sehr nervig sein kann, sich jedes mal durch das Menü zu klicken, hab ich mir die Funktion Werte einfügen auf die Symbolleiste gezogen.

Mit dieser kleinen Anpassung kann man schon ein gutes Stück schneller arbeiten. Aber was tun, wenn Daten von einer externen Anwendung in Excel eingefügt werden sollten, beispielsweise ein Link aus dem Browser. Werte einfügen funktioniert in diesem Fall nicht. Also erstmal wieder Bearbeiten => Inhalte einfügen…

Excel blendet ein völlig anderes Menü auf, sobald die Zwischenablage Daten enthält, die nicht aus einer Excel-Tabelle stammen. Leider gibt es für diesen Fall keine vorgefertigte Funktion, die man sich einfach so auf die Symbolleiste legen kann. Aber hier kann man mit einem Makro Abhilfe schaffen. Und da man diese Funktion ständig brauchen kann, wird sie auch gleich gloabl verfügbar gemacht.

Es wird also in der PERSONAL.XLS ein Modul angelegt und darin folgender Makro-Code gespeichert:

Sub AlsTextEinfuegen()
   ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub

Das war es im Grunde auch schon. Das Makro macht genau das selbe, was man vorher manuell erledigt hat. Es fügt beliebige Inhalte aus der Zwischenablage als reinen Text ein. Jetzt kann man dem Makro wahlweise eine Tastenkombination zuweisen oder es auf die Symbolleiste legen. Ich habe letzteres gemacht.

Das Symbol hab ich gleich neben Werte einfügen abgelegt, somit sind beide immer schnell zu erreichen. Solange der Anpassen-Modus noch aktiv ist, kann mit einem Rechtsklick auf das Symbol selbiges geändert werden und dem Symbol auch ein Makro zugewiesen werden.

Jetzt hat man 2 Buttons in der Symbolleiste, mit deren Hilfe man deutlich schneller und komfortabler Inhalte ohne Formatierung einfügen kann.

 
Btw… um in Word das gleiche Ergebnis zu erzielen, muss folgender Makro-Code genutzt werden:

Sub AlsTextEinfuegen()
    Selection.PasteAndFormat (wdFormatPlainText)
End Sub

Gespeichert wird das Makro in der Normal.dot, was der PERSONAL.XLS entspricht. Angelegt wird diese nach dem selben Schema, erstmal ein Dummy-Makro erstellen und dann wie oben beschrieben fortfahren.

PERSONAL.XLS(B) – Die Excel Arbeitsmappes für globale Makros

17. August 2012 4 Kommentare

Makros können einem das tägliche Arbeiten mit Excel ein gutes Stück vereinfachen. Einige Makros sind anwendungsspezifisch und daher nur in einer bestimmten Datei nutzbar, andere hingegen sind universell einsetzbar. Da liegt es Nahe, diese auch global für alle geöffneten Dateien verfügbar zu machen, ohne den Code in jede Datei kopieren zu müssen oder immer eine zusätzliche Datei geöffnet zu haben, die man ansonsten für die Arbeit gar nicht benötigt.

Für genau diesen Fall gibt es die PERSONAL.XLS (ab Office 2007 PERSONAL.XLSB). Sie wird automatisch im Hintergrund geladen, wenn Excel geöffnet wird. Somit gibt es zwar kein Fenster für diese Datei, durch das man auf die Arbeitsblätter zugreifen könnte, aber die Makros sind dennoch jederzeit aufrufbar.

Hinweis: Alle nachfolgenden Erläuterungen beziehen sich auf Office 2003!

 
Anlegen der PERSONAL.XLS

Die Datei sollte durch Excel angelegt werden. Hierzu wird einfach ein beliebiges Dummy-Makro aufgezeichnet. Extras => Makro => Aufzeichnen…

Im Feld Makro speichern in: muss Persönliche Makroarbeitsmappe ausgewählt sein.

Anschließend eine beliebige Aktion aufzeichnen, beispielsweise das Einfärben einer Spalte und die Aufzeichnung beenden. Nun Excel beenden und die Sicherheitsabfrage mit Ja bestätigen.

Fertig. Nachdem Excel erneut geöffnet wurde, ist das Dummy-Makro jederzeit ausführbar.

 
Und nun ein sinnvolles Makro erstellen

Je komplexer ein Makro sein soll, umso geringer die Wahrscheinlichkeit, dass es sich mit dem Rekorder erstellen lässt. Also öffnet man mit ALT + F11 den VBA-Editor. In der linken Baumstruktur befindet sich ein Eintrag für die Datei PERSONAL.XLS. Dieser am besten als erstes einen ordentlichen Namen geben: Rechte Maustaste => Eigenschaften von … und dann unter Projektname die Beschriftung ändern.

Da bereits ein Dummy-Makro erzeugt wurde, hat Excel ein Modul angelegt, welches den Code des Makros enthält. Diesen kann man nun mit beliebigem eigenen Code ersetzen.

 
Speicherort herausfinden

Je nach verwendeter Office Version und Systemkonfiguration kann sich der Speicherort der PERSONAL.XLS unterscheiden. Es gibt aber einen schnellen Weg, dennoch an den Speicherpfad zu gelangen. Dazu öffnet man wieder den VBA-Editor.

  1. Excel öffnen
  2. Mit ALT + F11 den VBA Editor öffnen
  3. Mit STRG + G den Direktbereich öffnen
  4. Mit STRG + A den gesamten Inhalt des Direktbereich markieren
  5. ?Application.StartupPath eingeben
  6. Mit ENTER bestätigen

Jetzt bekommt man den Pfad der PERSONAL.XLS angezeigt. In meinem Fall ist das

D:\Dokumente und Einstellungen\Schmidt.M\Anwendungsdaten\Microsoft\Excel\XLSTART

oder kurz und universell nutzbar

%APPDATA%\Microsoft\Excel\XLSTART