VBA-Beispiel 019
mail schreiben
mail schreiben

Beispiel für gute und schlechte Programmierung

Die beiden folgenden Makros führen jeweils zum gleichen Ergebnis. Beide überprüfen ob Spalte C und D leer sind. Wenn die Spalten keine Werte enthalten, werden die Werte von Spalte E-Y gelöscht.
Das erste Makro ist umständlich mit activate geschrieben. Der Cursor rödelt von einer Zelle zur anderen und ständig muß der Bildschirm aktualisiert werden.
Das zweite Makro erfüllt die Aufgabe wesentlich besser:
Der Cursor bleibt wo er ist und die Zellen werden direkt angesprochen.
Sub weg_schlecht()
Dim i As Integer

[c5].Activate
For i = 1 To 31

'wenn erste Zelle leer dann nach rechts gucken
If ActiveCell = "" Then
ActiveCell.Offset(0, 1).Activate
Else
ActiveCell.Offset(1, 0).Activate
GoTo weiter
End If

'wenn zweite Zelle auch leer dann rechts löschen
If ActiveCell = "" Then
    With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 21))
        .ClearContents
    End With
End If

ActiveCell.Offset(1, -1).Activate
weiter:
Next i
End Sub

Kürzer, schneller und besser ist dieses Makro:
Sub weg_gut()
Dim i As Integer

For i = 5 To 35
    If Cells(i, 3) = "" And Cells(i, 4) = "" Then
    With Range(Cells(i, 4).Offset(0, 1), Cells(i, 4).Offset(0, 21))
        .ClearContents
    End With
    End If
Next i
End Sub

Download:   vba019.zip