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
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen