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
ZIP-ArchivDownload (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
ZIP-ArchivDownload (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
ZIP-ArchivDownload (BAS-Datei als ZIP-Archiv, ca. x KB)

Quelle: WWW-LinkVBA 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
ZIP-ArchivDownload (BAS-Datei als ZIP-Archiv, ca. x KB)

Quelle: wn
[ Übersicht ] [ << ] [ >> ] [ Top ]  

Top
Copyright © 1999 - 2004 www.XL-net.de (Werner Nagel)
Alle Rechte vorbehalten. Hinweise zum Haftungsausschluss finden Sie hier.
Letzte Aktualisierung: 01. Mai 2004