Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalte durchlaufen und multiplitzieren

Spalte durchlaufen und multiplitzieren
08.02.2009 23:55:26
Roland
Hi,
wie kann ich die Spalte S mit einem Makro von 5 bis 1000 durchlaufen und dabei jeden gefundenen Wert mit 5 multiplitzieren ?
Danke Roland
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte durchlaufen und multiplitzieren
09.02.2009 00:11:00
chris
Hallo Roland.
Diesen Code in ein Modul Kopieren.
Option Explicit

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 !

Anzeige
AW: Spalte durchlaufen und multiplitzieren
09.02.2009 00:20:56
Uwe
Hi Roland,
da hätte ich zwei Versionen:

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?

Anzeige
und noch eine Möglichkeit
09.02.2009 08:03:00
Tino
Hallo,
hier noch eine Möglichkeit die recht schnell ist.
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

Anzeige
Danke allen drei , oT
09.02.2009 09:27:58
Roland
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige