Sahanya

Sonntag, 17. 12. 2006

Makro zeitlich einschrÀnken

Filed under: — Sahanya @ 09:42

Manchmal möchte man ein Makro zeitlich einschrĂ€nken, also ein Datum angeben ab oder bis wann das Makro aktiviert werden soll, eventuell auch einen bestimmten Zeitraum. DafĂŒr umschließt man die Prozedur einfach mit einer DatumseinschrĂ€nkung:

Ab einem bestimmten Datum:

StartDatum = #12/31/2006#
If Now() > StartDatum Then
    ...
End If

Bis zu einem bestimmten Datum:

EndDatum= #12/31/2006#
If Now() < EndDatum Then
    ...
End If

WĂ€hrend eines bestimmten Zeitraumes:

StartDatum = #12/1/2006#
EndDatum = #1/1/2007#
If Now() >= StartDatum And Now() < EndDatum Then
    ...
End If

Via ExcelTips

Sonntag, 26. 02. 2006

FaceID

Filed under: — Sahanya @ 15:19

FaceID Viewer

Wer beim Schreiben von Makros seine selbst erstellten MenĂŒleisten mit kleinen Bildchen oder Symbolen aufpeppen möchte, muss dafĂŒr auf die sog. FacIDs zurĂŒckgreifen. In der einschlĂ€gigen Literatur findet man dazu seitenweise Listen. Das Excel-Addin FaceID Viewer von Doug Glancy erleichtert da die Arbeit sehr und hat auch noch die komfortable Funktion, dass die letzten benutzten IDs in einer separaten Liste abgelegt werden, wo man sie dann einfach wiederfinden kann. Zudem kann man sich die IDs auch thematisch auflisten lassen.

Samstag, 24. 12. 2005

Versteckte Zeilen und Spalten

Filed under: — Sahanya @ 12:04

Versteckte bzw. ausgeblendete Zeilen und Spalten in Excel-Dokumenten können, insbesondere nach der Speicherung als Textdatei zu unschönen Überraschungen fĂŒhren. Oft werden diese Zellen nĂ€mlich versteckt, weil ihr Inhalt nicht mehr benötigt wird. Dabei wird entweder die Excel-interne Methode „Ausblenden” benutzt oder aber (alles schon gesehen) Zeilen bzw. Spalten manuell verkleinert, so dass ihr Inhalt nicht mehr sichtbar ist.

Bei umfangreichen Dokumenten, die man nun weiterverarbeiten möchte, können solche Zeilen und Spalten leicht ĂŒbersehen werden oder aber das Einblenden und anschließende Löschen zu einer Sisyphusarbeit ausarten. Ein VBA-Makro kann diese Arbeit allerdings leicht ĂŒbernehmen:

Sub versteckte_loeschen()
    Dim r As Range
    For Each r In Rows(1).Cells
        If r.Width < 1 Then r.EntireColumn.Delete
    Next
    For Each r In Columns(1).Cells
        If r.Height < 1 Then r.EntireRow.Delete
    Next
End Sub

Versteckte löschen

Mittwoch, 02. 11. 2005

Index fĂŒr Excel

Filed under: — Sahanya @ 19:19

Index Gerade bei umfangreichen Excel-Dokumenten kann es schnell passieren, dass man bei einer hohen Anzahl von TabellenblĂ€ttern den Überblick verliert. Ein Makro kann da Abhilfe schaffen. Es erstellt ein neues Tabellenblatt mit dem Namen „Index” als erstes Tabellenblatt und listet dort die Namen der anderen TabellenblĂ€tter auf. Diese sind verlinkt, so dass man mit einem Klick auf dem gewĂŒnschten Tabellenblatt landet. Auf den einzelnen TabellenblĂ€ttern wird ein Link zum Index-Tabellenblatt eingefĂŒgt. Hier sollte man allerdings aufpassen, denn dieser wird (hier im Beispiel) in die Zelle „H1” eingefĂŒgt und ĂŒberschreibt somit den ursprĂŒnglichen Inhalt. Man sollte dies also evtl. anpassen. Das Makro selbst habe ich bei Lockergnome gefunden und erweitert um die Mitteilung, dass bereits ein Index existiert. Außerdem habe ich das ganze ergĂ€nzt um ein Makro, das den Index und sĂ€mtliche Links dorthin wieder löscht.

(weiterlesen…)

Samstag, 16. 07. 2005

Leere Zellen

Filed under: — Sahanya @ 14:14

Leere Tabellenzellen in Word

Wenn man in Word viel mit Tabellen arbeitet, bzw. diese bearbeiten muss, kann es manchmal nötig sein alle leeren Zellen zu entfernen. Der Trick dabei ist, dass die leeren Tabellenzellen in Wahrheit ĂŒberhaupt nicht leer sind, sondern zwei Zeichen beinhalten: Chr(13) und Chr(7). Deswegen muss man dies beim Löschen per VBA berĂŒcksichtigen. Ein Makro, das die leeren Zellen der Tabelle löscht, in der sich gerade der Cursor befindet könnte dann so aussehen:

(weiterlesen…)

Sonntag, 05. 06. 2005

Suche/Ersetze nach Abfrage

Filed under: — Sahanya @ 12:11

Fußnoten Aufgabe: In einem Word-Dokument sind verschiedene Fußnoten (keine „echten” Fußnoten, sondern einfacher Text), die unterschiedliche Tags bekommen sollen. Also, die Fußnote 1) soll einen Tag mit der ID f1 bekommen, die Fußnote 2) einen Tag mit der ID f2, die Fußnote * soll den Tag mit der ID f3 bekommen usw. Dies kann durch einen simplen Suche/Ersetze-Vorgang in Word erreicht werden:

Suche: 1), ersetze mit: <FnR RefID=f1>1)</FnR>

Um diesen Vorgang auch fĂŒr Benutzer, die im Umgang mit Word sehr unerfahren sind komfortabel zu gestalten und um sich das lĂ€stige Eintippen des kompletten Tags zu ersparen, habe ich ein Makro erstellt.

(weiterlesen…)

Freitag, 06. 05. 2005

TabellenblÀtter speichern

Filed under: — Sahanya @ 08:54

TabellenblĂ€tter in Excel Wenn man in einem Excel-Dokument Tabellen auf mehreren TabellenblĂ€ttern eingefĂŒgt hat, kann man diese zwar im Gesamten ausdrucken, doch man kann sie nicht in einem anderen Format (z. B. als Textdatei) speichern, denn Excel speichert bei so einem Vorgang nur das erste Tabellenblatt. Um also den kompletten Dateiinhalt in eine Textdatei zu bekommen, muss man sich die Inhalte der TabellenblĂ€tter auf ein einzelnes Tabellenblatt kopieren. Mit Hilfe von VBA kann man dies automatisieren:

Sub Tabellenblaetter()
Dim TabellenBlatt As Byte
Dim FreieZeile As Integer

Worksheets(1).Activate

For TabellenBlatt = 2 To Sheets.Count

FreieZeile = Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Worksheets(TabellenBlatt).UsedRange.Copy _
Destination:=Worksheets(1).Cells(FreieZeile + 1, 1)

Next TabellenBlatt

End Sub

Montag, 18. 04. 2005

Makro in Word rĂŒckgĂ€ngig machen

Filed under: — Sahanya @ 20:01

RĂŒckgĂ€ngig Gerade bei umfangreichen Makros kann das RĂŒckgĂ€ngigmachen der einzelnen Schritte recht mĂŒhsam werden. Bei der Suche nach einer Lösung, die es ermöglicht ein komplettes Makro oder aber auch mehrere Makros, die in einem Schritt ablaufen, die man aber aus GrĂŒnden der Übersichtlichkeit im Code auf mehrere Makros verteilt hat, bin ich auf eine Lösung von Roemer Lievaart gestoßen. Diese ist zwar fĂŒr Word97 ausgewiesen, funktioniert aber auch in Word2003.

Dazu setzt man die Zeile StartUndoSaver einfach an den Beginn eines Makros und die Zeile EndUndoSaver an das Ende, so dass man folgendes erhÀlt:

Sub Irgendwas
StartUndoSaver

Hier kommt der Code.
EndUndoSaver
End Sub

ZusĂ€tlich muss man noch folgende Makros haben, die man am Besten in einem eigenen Modul einfĂŒgt:

(weiterlesen…)

Mittwoch, 06. 04. 2005

FreeWheel

Filed under: — Sahanya @ 19:34

MausNichts ist nerviger als festzustellen, dass das Scrollrad der Maus in bestimmten Anwendungen nicht funktioniert, z. B. im VBA-Editor und in Excel wÀhrend man Zellen markiert hat. FreeWheel kann ich daher allen empfehlen!

Versalschrift

Filed under: — Sahanya @ 19:18

Wenn man mit Dokumenten arbeitet, die Text enthalten, der nicht mit der Shift-Taste GROSS geschrieben wurde, sondern mittels Formatierung in Word (Format – Zeichen – Schrift) in Großbuchstaben umgewandelt wurde, kann es zu ĂŒberraschenden bzw. Ă€rgerlichen Ergebnissen kommen, wenn man zusĂ€tzlichen Text einfĂŒgen möchte, der nicht in Versal geschrieben sein soll.

Außerdem kann es zu Problemen kommen, wenn man diesen Text in eine andere Anwendung exportieren oder kopieren möchte, wenn unterwegs die Formatierung verloren geht.

Das folgende Makro wandelt alle AbsĂ€tze deren Text die Formatierung Großbuchstaben enthĂ€lt in „richtige” Großbuchstaben um:

(weiterlesen…)

Montag, 10. 01. 2005

Blindtext

Filed under: — Sahanya @ 22:09

Wenn man fĂŒr VBA (aber auch fĂŒr andere Gelegenheiten, z. B. um ein Schriftbild zu beurteilen) auf die Schnelle einen Blindtext benötigt, bietet es sich an, die dafĂŒr in Word vorhandene Funktion zu nutzen: einfach =rand() eingeben und Word schreibt in das geöffnete Dokument:

Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.

FĂŒllt man die Klammer (wie o. a.) nicht aus, erscheinen 3 Absatze mit jeweils 5 SĂ€tzen dieses Textes. Man kann aber auch die Anzahl der AbsĂ€tze und der darin enthaltenen SĂ€tze bestimmen, wobei die erste Zahl die Anzahl der AbsĂ€tze und die zweite Zahl die Anzahl der in einem Absatz vorkommenden SĂ€tze bestimmt: =rand(1.2) ergibt also einen Absatz mit zwei SĂ€tzen.

Eine umfangreiche Sammlung von Blindtexten findet man bei Newmediadesigner. Mein persönlicher Favorit:

Blind von Geburt an

Ich bin Blindtext. Von Geburt an. Es hat lange gedauert, bis ich begriffen habe, was es bedeutet, ein blinder Text zu sein: Man macht keinen Sinn. Man wirkt hier und da aus dem Zusammenhang gerissen. Oft wird man gar nicht erst gelesen. Aber bin ich deshalb ein schlechter Text? Ich weiss, dass ich nie die Chance haben werde, im Stern zu erscheinen. Aber bin ich darum weniger wichtig? Ich bin blind! Aber ich bin gerne Text. Und sollten Sie mich jetzt tatsĂ€chlich zu Ende lesen, dann habe ich etwas geschafft, was den meisten “normalen” Texten nicht gelingt.

Samstag, 25. 12. 2004

Shapes

Filed under: — Sahanya @ 09:17

Wenn man in einem Office-Dokument via VBA einzelne Objekt-Formen ansprechen möchte, die z. B. ĂŒber das MenĂŒ „EinfĂŒgen” eingefĂŒgt wurden, muss man die jeweilige Shape bzw. Form einzeln ansprechen, da sonst sĂ€mtliche Formen betroffen wĂ€ren.

Hier zwei Beispiele:

(weiterlesen…)

Sonntag, 12. 12. 2004

doc-Text in HTML konvertieren

Filed under: — Sahanya @ 19:31

Möchte man einen lĂ€ngeren Text in einem Word-Dokument HTML-tauglich machen, mĂŒssen mehrere Schritte unternommen werden:

  1. ÜberflĂŒssige Leerzeilen, -zeichen u. Ă€. löschen
  2. Sonderzeichen maskieren
  3. Internet- und E-Mail-Adressen „umsetzen”
  4. AbsĂ€tze mit Tags umschließen
  5. Ungeordnete und Geordnete Listen kennzeichen

Um all diese Schritte automatisch vornehmen zu können, habe ich ein Makro zusammengestellt, das dies alles erledigt.

(weiterlesen…)

Freitag, 12. 11. 2004

ASCII

Filed under: — Sahanya @ 20:08

Word hat einige Stolpersteine eingebaut, die das Suchen und Ersetzen von mehreren aufeinander folgenden Absatzmarken etwas erschweren. Durch das Ersetzen mit ASCII-Code und der Umwandlung eines Kommas in ein Semikolon wird es allerdings wieder machbar.

(weiterlesen…)

Freitag, 22. 10. 2004

Suche und Ersetzen

Filed under: — Sahanya @ 18:01

Mal was ganz einfaches zum Anfang. Wenn man Suche-Ersetze-Routinen mit dem Makro-Rekorder aufzeichnet, bekommt man einen Code, der ganz leicht ins uferlose wÀchst, insbesondere dann wenn man in Dokumenten sehr viel suchen und ersetzen möchte.

KĂŒrzer geht es, wenn man sich ein Makro erstellt, das nur die Suchroutine enthĂ€lt und dann ein Extra-Makro, innerhalb dessen dann die Suche-Ersetze-Begriffe „aufgelistet” sind, die dann auf das Suche-Ersetze-Makro zugreifen. Noch ĂŒbersichtlicher wird das ganze, wenn man das Suche-Ersetze-Makro in ein eigenes Modul einfĂŒgt.

(weiterlesen…)

Dienstag, 12. 10. 2004

VBA

Filed under: — Sahanya @ 20:12

Da ich mich in den letzten Monaten sehr intensiv mit VBA (insbesondere fĂŒr Word) beschĂ€ftigt habe, ist mir aufgefallen, dass es relativ wenige gute und ausfĂŒhrliche Quellen (im Gegensatz zu VBA in Verbindung mit Excel) dazu im Netz gibt, insbesondere deutschsprachige.

FĂŒr alle, die auch auf der Suche sind, hier eine kleine, persönliche Linkliste (und in KĂŒrze auch etwas „Code”):

Word FAQ
Eine sehr umfangreiche Sammlung mit Lösungen (auch ohne VBA) fĂŒr Word und eine wahre Fundgrube, obwohl man natĂŒrlich das richtige Stichwort kennen muss.

Word MVP
Eine sehr umfangreiche Seite mit allen möglichen Lösungen fĂŒr Word (auch ohne VBA). Die VBA-Tipps befinden sich unter dem MenĂŒpunkt FAQs. Leider auf englisch, aber wie ich finde ein Muss.

VB Tips
Linkliste zu verschiedenen VBA-Lösungen.

Google-Newsgroup
deutschsprachige Newsgroup

 

Powered by WordPress | Angepasst von: www.vlad-design.de