Sahanya

Sonntag, 17. 12. 2006

Makro zeitlich einschränken

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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

Abgelegt unter: — 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…)

 

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