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
'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
Tabellenblätter verstecken
Blätter einer Excel-Tabelle über VBA ein/ausblenden.
Makro des Monats der PC-Praxis von Ulrich Knoch
Euro-Symbol unter Excel
wird auch nach der Installation des Euro-Patches 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.
Undo-Schritte erhöhen
die vorgegebenen 16 Rücknahm-Schritte beliebig 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.
Seitennummerierung
nicht mit der Zahl 1 beginnen
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"

In Excel 2010 funktioniert der Tipp nicht mehr, hier hat Stephan eine neue Lösung "&[&[Seite]+1&]" - Vielen Dank dafür!
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.
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
Dieses Makro übernimmt die Breite der Spalten 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
Systemdatum bei Änderung
bei Änderung des Tabellenblattes wird automatisch das aktuelle Systemdatum in die vorgegebene Zelle eingesetzt.
'Systemdatum in Zelle A1 übernehmen
Private Sub Worksheet_Change(ByVal ziel As Excel.Range)
Range("a1") = Date
End Sub
Zellinhalt als Dateiname
dieses Makro übernimmt als Dateiname beim Abspeichern einer Excel-Datei den Inhalt der vorgegebenen Zelle
'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
Tabellenblätter sortieren
durch ein Makro werden in einem Excel-Arbeitsblatt sämtliche Tabellenblätter sortiert.
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
Arbeitsmappenweite Suche
die Suche beschränkt sich nicht nur auf ein Tabellenblatt sondern über die gesamte Excel-Arbeitsmappe
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
Telefonnummer automatisch wählen
Wählt die eingetragenen Telefonnummern in einer Excel-Tabelle automatisch per Doppelklick.
Vorraussetzung: Das Programm 'Wählhilfe' ist installiert.
'Die Bezeichnung "adressen" entspricht dem Tabellenblatt-Name'

Private Declare Function tapiRequestMakeCall Lib "Tapi32.dll" _
(ByVal Nummer As String, ByVal AppName As String, _
ByVal AnruferName As String, ByVal Kommentar As String) As Long
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:
Rückgabewert = tapiRequestMakeCall(Nr, "", "", "")
ActiveCell.Value = TelNr
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

Suchergebnis farbig hervorheben
Das Makro markiert bei Such-Aktionen in Excel die komplette Trefferzeile und erleichtert so die Zuordnung der Suchergebnisse
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.
Zellinhalte vertauschen
von Spalten nach Zeilen und umgekehrt durch einfaches kopieren in Excel97
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.
Neuberechnung
funktioniert nicht, auch nicht mit Taste F9 - Excel-Bug
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.
Maßeinheiten umwandeln
AddIn Manager aufrufen, Analyse-Funktionen auswählen.
Umwandeln steht zur Verfügung
Formeln in mehreren Zellen
Arbeitsschritte sparen und gleichzeitig eingeben
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.
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.
» [1][2][3]