VBA - USER DEFINED FUNCTIONS

OBJEKTE:   BEREICHE


Public b1 As Range
Public Zeilenzahl As Integer

Sub LeereZellen()
Set b1 = Selection.SpecialCells(xlEnd)
Zeilenzahl = Selection.Rows.Count
End Sub

' Bereiche markieren
Sub BereichMarkieren()
Range("A1").Select
Selection.SpecialCells(xlLeereZellen).Select
Selection.CurrentRegion.Select
End Sub

' Formeln durch berechnete Werte ersetzen
Sub FormelErsetzen()
Range("A1").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlFormulas, _
Operation:=xlNone, SkipBlanks:=True, Transpose:=True
End Sub

Sub Kopieren()
'Abfrage eines Zellbereiches und kopieren mit Zwischenablage
'Kopierter Bereich wird anschließend formatiert
Dim ZB As Variant
ZB = InputBox("Bitte Zellbereich eingeben")
Range(ZB).Select
Selection.Kopieren
ergebnis = MsgBox("Kopieren erfolgreich", 64, "Titel")
Range("A4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection.Font
    .Name = "Arial"
    .FontStyle = "Fett"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlNone
    .ColorIndex = xlAutomatic
End With
End Sub


Sub ZeileAuswählen()
Dim AktuelleZelle As Object, Zelle1 As Object, Zelle2 As Object
Dim Zeile As Integer, Spalte As Integer
Set AktuelleZelle = ActiveCell
Zeile = AktuelleZelle.Row: Spalte = AktuelleZelle.Column
If IsEmpty(AktuelleZelle) Then Exit Sub
    ' linkes Zeilenende suchen, Endzelle in zelle1 speichern
    For Spalte = AktuelleZelle.Column To 1 Step -1
        If IsEmpty(Cells(Zeile, Spalte).Value) Then
        Set Zelle1 = Cells(Zeile, Spalte + 1)
    Exit For
End If
Next Spalte
If Zelle1 Is Nothing Then Set Zelle1 = Cells(Zeile, 1)
    ' rechtes Zeilenende suchen, Endzelle in Zelle1 speichern
    For Spalte = AktuelleZelle.Column To MaxSpalteen
        If IsEmpty(Cells(Zeile, Spalte).Value) Then
        Set Zelle2 = Cells(Zeile, Spalte - 1)
    Exit For
End If
Next Spalte
If Zelle2 Is Nothing Then Set Zelle2 = Cells(Zeile, 256)
' den Bereich zwischen Zelle1 und Zelle2 markieren
Range(Zelle1, Zelle2).Select
End Sub