Allgemein [ Übersicht ] [ << ] [ >> ]
|
|
Erste leere Zelle einer bestimmten Tabellenblattspalte auswählen
Schriftfarbe von Zellen durch eine Zelleingabe ändern
Tabellenblätter einer Arbeitsmappe sortieren (aufsteigend/absteigend)
Zellinhalt als Zeichenkette in die Zwischenablage kopieren
|
|
|
|
Die Code-Beispiele dieser VBA-Makro-Seite beziehen sich auf die Objektbibliothek und Schlüsselwörter
von Microsoft® Excel ab Version 97 (Inkompatibilitäten zu höheren Excel-Versionen sind jedoch mög-
lich). Die Code-Beispiele sind innerhalb eines Themenbereichs unsortiert.
|
|
|
Erste leere Zelle einer bestimmten Tabellenblattspalte auswählen [ Top ]
|
|
|
|
Code-Beispiel
|
(Al_001)
|
Makro wählt beim Aktivieren eines Tabellenblattes die erste leere Zelle einer bestimmten Tabellen-
blattspalte (im Beispiel Spalte A) zur Eingabe aus.
Code-Modul: Klassenmodul Tabellenblatt
Private Sub Worksheet_Activate()
Dim nRow As Integer 'Dim nRow%
nRow = 1 'Spaltennummer: 1 = Spalte A, 2 = Spalte B ...
If IsEmpty(Cells(Cells.Rows.Count, nRow).End(xlUp)) Then _
GoTo Fehler
Cells(Cells.Rows.Count, nRow).End(xlUp).Select
ActiveCell.Offset(1, 0).Select
Exit Sub
Fehler:
Cells(Cells.Rows.Count, nRow).End(xlUp).Select
End Sub
Download (BAS-Datei als ZIP-Archiv, ca. x KB)
Quelle: wn
|
|
[ Übersicht ] [ << ] [ >> ] [ Top ]
|
|
|
Schriftfarbe von Zellen durch eine Zelleingabe ändern [ Top ]
|
|
|
|
Code-Beispiel
|
(Al_002)
|
Makro ändert nur durch Eingabe in eine x-beliebige leere Zelle einer bestimmten Tabellenblattspalte
(im Beispiel Spalte A) die Schriftfarbe dieser und weiterer Zellen der gleichen Tabellenblattzeile (im
Beispiel bis Spalte D) von schwarz in rot.
Code-Modul: Klassenmodul Tabellenblatt
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim aCell As Range
Set aCell = Application.Intersect(Target, Me.Range("A:A"))
If aCell Is Nothing Then
Exit Sub
Else
If IsEmpty(aCell) Then
Range(aCell, aCell.Offset(0, +3)).Font.ColorIndex = 0
Exit Sub
Else
Range(aCell, aCell.Offset(0, +3)).Font.ColorIndex = 3
End If
End If
End Sub
Download (BAS-Datei als ZIP-Archiv, ca. x KB)
Quelle: wn
|
|
[ Übersicht ] [ << ] [ >> ] [ Top ]
|
|
|
Tabellenblätter einer Arbeitsmappe sortieren (aufsteigend/absteigend) [ Top ]
|
|
|
|
Code-Beispiel
|
(Al_003)
|
Makro sortiert die Tabellenblätter einer Arbeitsmappe nach Namen. Sortiert wird in aufsteigender
Reihenfolge (für ein Sortieren in absteigender Reihenfolge ist > durch < zu ersetzen).
Code-Modul: Standardmodul
Public Sub Al_003()
Dim i As Integer , x As Integer 'Dim i%, x%
For i = 1 To Sheets.Count
For x = 1 To Sheets.Count - 1
If UCase$(Sheets(x).Name) > UCase$(Sheets(x + 1).Name) Then
Sheets(x).Move After:=Sheets(x + 1)
End If
Next x
Next i
End Sub
Download (BAS-Datei als ZIP-Archiv, ca. x KB)
Quelle: VBA Magazin
|
|
[ Übersicht ] [ << ] [ >> ] [ Top ]
|
|
|
Zellinhalt als Zeichenkette in die Zwischenablage kopieren [ Top ]
|
|
|
|
Code-Beispiel
|
(Al_004)
|
Bedauerlicherweise fehlt in VBA für Excel die Möglichkeit Daten (z. B. Zahlen, Zeichenketten etc.)
direkt in die Zwischenablage zu schreiben oder von dort zu lesen. Das in der Programmiersprache
Visual Basic zu diesem Zweck vorgesehene Clipboard-Objekt wird von Excel-VBA nicht unterstützt.
Makro kopiert den Inhalt der gewählten Zelle im aktiven Tabellenblatt als Zeichenkette (ohne Zell-
formate) in die Zwischenablage.
Code-Modul: Standardmodul
Private cTxt As DataObject
Public Sub Al_004()
Set cTxt = New DataObject
cTxt.SetText ActiveCell.Value
cTxt.PutInClipboard
End Sub
Download (BAS-Datei als ZIP-Archiv, ca. x KB)
Quelle: wn
|
|
[ Übersicht ] [ << ] [ >> ] [ Top ]
|
|