Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1556to1560
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If Else VBA

If Else VBA
23.05.2017 10:27:47
Bobby
Hallo,
ich habe eine If Else Funtkion geschrieben, die jedoch fehlerhaft ist. Im Forum habe ich zu diesem Thema nichts gefunden womit ich meine Fehler ausmärzen konnte.
In meiner Tabelle stehen in Spalte J verschiedene Aufträge. 20 dieser Auftragsarten werden in Spalte W mit einem Prozentsatz von 25 berechnet.
Bsp.:
Falls A1 = Sportanlage oder Baumarkt oder BBBB
dann
W1 = Wert aus X1 / 22 * 25
ansonsten
W1 = X1
Mein VBA soll nun nacheinander die Tabelle (Spalte A) durchgehen und jeweils den korrekten Wert in die zugehörige Zelle in Spalte W eintragen.
Sub Prozent25()
Dim i As hier bin ich nicht sicher
For i = 6 To last.Row                         Tabelle fängt ab Zeile 6 an
If Cells(i, 10) = "Sportplatz" Or _
"Baumarkt" Or "BBBB" Then
Cells(i, 23) = Cells(i, 24) / 22 * 25
Else: Cells(i, 23) = Cells(i, 24)
End If
Next
End Sub

Ihr würdet mir wirklich sehr weiterhelfen, egal ob es nur kleine Anpassungen an meinem VBA sind oder ein komplett anderer Ansatz.
Danke im voraus.
vG

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Else VBA
23.05.2017 10:34:30
yummi
Hallo Bobby,

Sub Prozent25()
Dim i As long
dim llast as long
llast = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 6 To llast '                        Tabelle fängt ab Zeile 6 an
with ActiveSheet
If .Cells(i, 10).value = "Sportplatz" Or .cells(i,10).value =_
"Baumarkt" Or  .cells(i,10).value = "BBBB" Then
.Cells(i, 23).value = .Cells(i, 24).value / 22 * 25
Else
.Cells(i, 23).value = .Cells(i, 24).value
End If
Next i
End Sub
Gruß
yummi
AW: If Else VBA
23.05.2017 10:35:46
Crazy
Hallo
i as Long
If Cells(i, 10) = "Sportplatz" Or Cells(i, 10) = "Baumarkt" Or Cells(i..... Then
MfG Tom
Anzeige
Prozentsatz bedingt berechnen
23.05.2017 10:40:48
EtoPHG
Hallo Bobby,
ausmärzen kannst du nichts mehr, denn es ist schon Mai ;-)
Versuch's mal so:
Sub Prozent25()
Dim lRow As Long
For lRow = 6 To Cells(Rows.Count, 1).End(xlUp).Row
If InStr("|Sportplatz|Baumarkt|BBBB|;", Cells(lRow, 10).Text) Then
Cells(lRow, 23) = Cells(lRow, 24) / 22 * 25
Else
Cells(lRow, 23) = Cells(lRow, 24)
End If
Next lRow
End Sub
Gruess Hansueli
AW: If Else VBA
23.05.2017 10:48:47
Bobby
Danke für die schnellen Rückmeldungen.
Werde die Lösungsvorschläge gleich mal testen :)
AW: If Else VBA
23.05.2017 10:51:15
Daniel
Hi
für solche Fälle bietet sich Select Case an:

For i = 6 To Cells(Rows.count, 10).end(xlup).Row
Select Case Cells(i, 10).value
Case "Sportplatz", "Baumarkt", "BBBB"
Cells(i, 23) = Cells(i, 24) / 22 * 25
Case Else
Cells(i, 23) = Cells(i, 24)
end Select
Next
wobei ich hier die Schleifenfreie Programmierung mit Hilfe einer Formel bevorzugen würde:

With Range("W6:W" & Cells(Rows.count, 10).end(xlup).Row)
.FormulaR1C1 = "=IF(OR(RC10=""Sportplatz"",RC10=""Baumarkt"",RC10=""BBBB""),RC[1]/22*25,RC[ _
1])"
.Formula = .Value
end with
bzw x / 22 * 25 entspricht einem Prozensatz von +13,6%
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige