dritte Seite mit Makros und Tipps für Excel
» [1][2][3]










Dateiname mit Pfad in der Fußzeile
der komplette Pfad wird in der Fußzeile angezeigt

Tabellenblätter verstecken
Blätter einer Excel-Tabelle über VBA ein/ausblenden.
Makro des Monats der PC-Praxis von Ulrich Knoch
(12KB)

Euro-Symbol unter Excel
wird auch nach der Installation des Euro-Patches nicht gedruckt

Undo-Schritte erhöhen
die vorgegebenen 16 Rücknahm-Schritte beliebig erhöhen

Seitennummerierung
nicht mit der Zahl 1 beginnen

Zeilenhöhe in cm
Hier können Sie die exakte Höhe der ausgewählten Zeilen in cm und nicht wie vorgegeben in Pixel eingeben.

Spaltenbreite in cm
Dieses Makro übernimmt die Breite der Spalten in cm

Systemdatum bei Änderung
bei Änderung des Tabellenblattes wird automatisch das aktuelle Systemdatum in die vorgegebene Zelle eingesetzt.

Zellinhalt als Dateiname
dieses Makro übernimmt als Dateiname beim Abspeichern einer Excel-Datei den Inhalt der vorgegebenen Zelle

Tabellenblätter sortieren
durch ein Makro werden in einem Excel-Arbeitsblatt sämtliche Tabellenblätter sortiert.

Arbeitsmappenweite Suche
die Suche beschränkt sich nicht nur auf ein Tabellenblatt sondern über die gesamte Excel-Arbeitsmappe

Telefonnummer automatisch wählen
Wählt die eingetragenen Telefonnummern in einer Excel-Tabelle automatisch per Doppelklick.
Vorraussetzung: Das Programm 'Wahlhilfe' ist installiert.

Suchergebnis farbig hervorheben
Das Makro markiert bei Such-Aktionen in Excel die komplette Trefferzeile und erleichtert so die Zuordnung der Suchergebnisse

Zellinhalte vertauschen
von Spalten nach Zeilen und umgekehrt durch einfaches kopieren in Excel97

Neuberechnung
funktioniert nicht, auch nicht mit Taste F9 - Excel-Bug

Maßeinheiten umwandeln

Formeln in mehreren Zellen
Arbeitsschritte sparen und gleichzeitig eingeben

Punktdiagramme
mit Cliparts statt mit Punkten anzeigen

» [1][2][3]




Punktdiagramme mit Cliparts statt mit Punkten anzeigen

kopieren Sie das gewünschte Clipart in die Zwischenablage. Nachdem
Sie das Diagramm aufgerufen haben, markieren Sie einen Punkt und
fügen das Clipart mit Strg+V ein.
Das Clipart wird automatisch für alle Punkte übernommen.


Formeln in mehreren Zellen gleichzeitig

man markiert die benötigten Zellen, gibt die Formel ein und bestätigt das ganze mit STRG und Return.
Die Formeln werden fortlaufend in den markierten Bereich eingegeben.


Maßeinheiten umrechnen

AddIn Manager aufrufen, Analyse-Funktionen auswählen.
Umwandeln steht zur Verfügung


Neuberechnung (Bug in Excel97)

wird nicht ausgeführt, auch nicht mit Taste F9

Patch unter http://www.microsoft.com/germany/office/excel/download.htm
Datei  heißt x8p2.exe ca. 47kB groß

Oder Excel wie folgt veranlassen, eine Neuberechnung durchzuführen:
suchen/ersetzen aufrufen und das Zeichen = durch = ersetzen.


Zellinhalte vertauschen

markieren und kopieren Sie den gewünschen Bereich, gehen anschließend in eine leere Zelle und wählen 'Inhalte einfügen'. Bei dem nun geöffneten Dialogfeld darauf achten, dass 'transponieren' ausgewählt ist.

Suchergebnis einfärben

Makro des Monats von Ulrich Knoch aus der Zeitschrift PC-Praxis 7/99 Dieses Makro habe ich zum >Download< (1KB) in eine Datei gepackt.
Es wurde davon ausgegangen, daß in Spalte "A:B" gesucht wird und das Ergebnis vier Spalten breit eingefärbt wird.
Bitte entpacken und im Visual-Basic-Editor in Excel "Datei importieren" wählen.

Telefonnummern per Doppelklick wählen

'Die Bezeichnung "adressen" entspricht dem Tabellenblatt-Name'
Sub Auto_open()
Worksheets("adressen").OnDoubleClick = "Telefon"
End Sub
Sub Telefon()
Dim Pos As Integer
Dim Nr, Vorwahl, Suchzeich, TelNr
On Error GoTo fehlerPrüfen
TelNr = ActiveCell.Value
For Vorwahl = 1 To 7
Suchzeich = Mid(ActiveCell, Vorwahl, 1)
If Suchzeich < "0" Or Suchzeich > "9" Then GoTo umwandeln
Next Vorwahl
umwandeln:
Nr = ActiveCell
Pos = InStr(1, Nr, Suchzeich, 0)
Mid(Nr, Pos, 1) = ")"
Nr = "+49(" + Nr
ActiveCell.Value = Nr
wählen:
ActiveCell.Select
Selection.Copy
Rückgabewert = Shell("dialer.exe", 1)
warten
Application.SendKeys keys:="^{v}"
warten
Application.SendKeys keys:="%{w}"
warten
ActiveCell.Value = TelNr
Exit Sub
fehlerPrüfen:
If Err = 5 Then MsgBox "Es wurde keine gültige Zelle(Tel.-Nummer) gewählt!" + Chr$(13) + "Beispiele 0123 4567, 0123/4567, 0123-4567 usw."
End Sub
Sub warten()
wartezeit = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 1)
Application.Wait wartezeit
End Sub

Arbeitsmappenweite Suche

Sub MappenWeiteSuche()
Dim t As Worksheet, z As Range, SuchW As String, counter As Integer, ausgabe As String, knopf As Integer
'Zähler null setzen
counter = 0
'Suchbegriff beim Anwender erfragen
SuchW = InputBox("Geben Sie bitte einen Suchbegriff ein. Groß- oder Kleinschreibung ist dabei unwichtig:", "Eingabe Suchbegriff", "PC Praxis")
'wurde kein Begriff eingegeben oder "Abbrechen" geklickt, Makro verlassen
If SuchW = "" Then Exit Sub
'jedes Worksheet (Tabellenblatt) aufrufen
For Each t In Worksheets
'Sheet aktivieren
t.Activate
'z für erstes Auffinden des Suchbegriffes setzen
Set z = t.Cells.Find(SuchW)
'wenn Begriff auf Blatt, dann Adresse merken und Loop starten
If Not z Is Nothing Then
erste = z.Address
'Schleife: jedes Vorkommen auf Tabellenblatt
Do
z.Activate
counter = counter + 1
'Anwender fragen: Weiter oder abbrechen?
i = MsgBox("Auf diesem Blatt weitersuchen?", vbYesNo + vbQuestion)
If i = vbNo Then Exit Do
'Nächstes Vorkommen prüfen
Set z = Cells.FindNext(after:=ActiveCell)
Loop Until erste = z.Address
End If
'Nächstes Tabellenblatt aufrufen
Next t
'Mappe durchsucht, Abschlußmeldung vorbereiten und ausgeben
ausgabe = "Ende der Suche nach " & SuchW & "!" & Chr(13) & "Der Suchebegriff wurde " & counter & "mal gefunden!"
If counter = 0 Then knopf = 16 Else knopf = 64
MsgBox prompt:=ausgabe, Buttons:=knopf, Title:="Information"
End Sub

Tabellenblätter alphabetisch sortieren

Sub TabellenblätterSortieren()
Dim i As Integer, j As Integer
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count - 1
If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move after:=Sheets(j + 1)
End If
Next j
Next i
End Sub

Zellinhalt als Dateiname

'Speichername ist hier z.B. A1 - kann jederzeit angepaßt werden
Sub dateiname()
ort = Range("a1")
If Len(ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
ActiveWorkbook.SaveAs FileName:=ort & ".xls"
End If
End Sub


Systemdatum bei Änderung

'Systemdatum in Zelle A1 übernehmen
Private Sub Worksheet_Change(ByVal ziel As Excel.Range)
Range("a1") = Date
End Sub

Zeilenhöhe in cm

Sub zeilenhoehe()
Dim hoehe As Single, aktuell As Single, text As String, antwort As String
aktuell = Selection.RowHeight / 29.5
text = "Aktuelle Zeilenhöhe: " & Format(aktuell, "###0.00 cm") & Chr(13) & "Geben Sie die gewünschte Zeilenhöhe für die aktuelle Zeile oder Markierung in cm ein:"
antwort = InputBox(text, "Neue Zeilenhöhe festlegen", Format(aktuell, "###0.00"))
If antwort <> "" Then
hoehe = CSng(antwort)
Selection.RowHeight = hoehe * 29.5
End If
End Sub

Spaltenbreite in cm

Sub spaltenbreite()
Dim breite As Single, aktuell As Single, text As String, antwort As String
aktuell = (Selection.ColumnWidth + 0.71) / 5.1425
text = "Aktuelle Spaltenbreite: " & Format(aktuell, "###0.00 cm") & Chr(13) & "Geben Sie die gewünschte Spaltenbreite für die aktuelle Spalte oder Markierung in cm ein:"
antwort = InputBox(text, "Neue Spaltenbreite festlegen", Format(aktuell, "###0.00"))
If antwort <> "" Then
breite = CSng(antwort)
Selection.ColumnWidth = -0.71 + 5.1425 * breite
End If
End Sub

Seitennummerierung

Soll der erste Ausdruck z.B. mit der Seitenzahl 10 beginnen, ändern
Sie den Platzhalter in der Kopf-bzw. Fußzeile wie folgt ab:
"&[Seite]+9"

Undo-Schritte erhöhen

um die rückgängig zu machenden Aktionen zu erhöhen wird die Registry wie folgt verändert:
unter
HKEY_Current_User\software\microsoft\office\8.0\excel\Microsoft Excel
einen neuen Dword-Wert einfügen - UndoHistory - nennen.
Den Wert in Dezimal mit z.B. 50 eingeben.

Euro-Symbol wird nicht gedruckt

haben Sie auch nach der Installation des Euro-Patches immer noch Probleme mit dem Ausdruck, liegt es eventuell an Ihrem Drucker. Folgende Änderung in der Registry durchführen:
HKEY_Current_User/software/microsoft/office/8.0/excel/microsoftExcel aufrufen und einen Wert vom Typ DWORD neu eingeben. Dem neu eingegeben Wert den Namen NoWideTextRendering geben, doppelt anklicken, Hexadezimal aktivieren und eine 4 eingeben.

Dateiname mit Pfad in der Fußzeile

'Der Pfad und Dateiname wird nicht automatisch aktualisiert, wenn die Mappe erneut unter einem anderen Namen abgespeichert wird. In diesem Fall das Makro neu aufrufen.
Sub Fußzeile()
ActiveSheet.PageSetup.LeftFooter = ActiveWorkbook.FullName
End Sub