wie kann ich die Spalte S mit einem Makro von 5 bis 1000 durchlaufen und dabei jeden gefundenen Wert mit 5 multiplitzieren ?
Danke Roland
Sub lauf()
Dim x As Integer
Application.ScreenUpdating = False
For x = 1 To Cells(Rows.Count, 19).End(xlUp).Row
If Application.IsNumber((Cells(x, 19))) Then
Cells(x, 19) = Cells(x, 19) * 5
End If
Next
Application.ScreenUpdating = True
End Sub
gruß Chris
P.s Rückmeldung wäre nett !
Sub MalFünf()
Range("IV1") = 5
Range("IV1").Copy
Range("S5:S1000").PasteSpecial Paste:=xlAll, Operation:=xlMultiply, SkipBlanks:= _
False, Transpose:=False
Range("IV1").Delete
End Sub
Sub MalFünfSchleife()
Dim Zelle As Range
For Each Zelle In Range("S5:S1000")
Zelle.Value = Zelle.Value * 5
Next Zelle
End Sub
Die erste ist die schnellere, ohne Schleife, dafür muss aber die Zelle IV1 frei sein (oder irgendeine andere). Das entspricht der manuellen Vorgehensweise:
5 in die Zelle IV1 schreiben;
IV1 kopieren;
S5:S1000 auswählen;
Rechte Maustaste/ Inhalte einfügen/ Vorgang: Multiplizieren.
Das zweite ist eine Schleife, die aber um einiges langsamer ist.
Auf Fehlerbehandlung und Ausschalten des ScreenUpdatings habe ich erst mal verzichtet.
Hilft Dir das?
Sub Multiblizieren_mit_5()
Dim Bereich As Range
Dim meAr
Dim LCount As Long
Set Bereich = Range("S1", Cells(Rows.Count, 19).End(xlUp))
If Bereich.Cells.Count > 1 Then
meAr = Bereich
For LCount = 1 To Ubound(meAr)
If IsNumeric(meAr(LCount, 1)) And Not IsEmpty(meAr(LCount, 1)) Then
meAr(LCount, 1) = meAr(LCount, 1) * 5
End If
Next LCount
Bereich = meAr
ElseIf Not IsEmpty(Bereich) And IsNumeric(Bereich) Then
Bereich = Bereich * 5
End If
End Sub
Gruß Tino