Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ElseIf wird umgangen ?!

Forumthread: ElseIf wird umgangen ?!

ElseIf wird umgangen ?!
26.06.2015 08:42:09
Lukas
Hallo zusammen,
komme bei folgendem Problem nicht weiter.
Das Makro durchläuft immer nur die IF-Bedingung (MAe5) und springt dann direkt auf die Else-Bedingung (Puffer).
Liegt es am Code, dass die Elseif-Bedingung nicht durchlaufen wird?
Sub Eingabe()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Typ As String
Dim suche As Range
Dim SapNr As String
Dim Menge As Integer
Dim Ende As Long
Dim Bereich As Range, zelle As Range
Sheets("Zwischenspeicher").Activate
Typ = Range("B2").Value     'Typ Variable zuweisen
Menge = Range("C2").Value   'Menge Variable zuweisen
SapNr = Range("A2").Value   'SapNr Variable zuweisen
'Abfrage auf Vorgabeliste, ob MAE5 freie Kapazität hat
Sheets("Vorgabeliste").Activate
'MAE5
If Range("C3").Value = 3000 Then
Korrekturwert = Range("C3").Value
Übertrag = Korrekturwert - 3000
'letzte benutzte Zelle im Puffer finden
With ActiveSheet
Ende = .Cells(Rows.Count, 23).End(xlUp).Row
End With
'Werte in Puffer eintragen
Cells(Ende + 1, 22).Value = SapNr
Cells(Ende + 1, 23).Value = Typ
Cells(Ende + 1, 24).Value = Übertrag
'Wert MAE5 korrigieren
With ActiveSheet
Ende = .Cells(Rows.Count, 3).End(xlUp).Row
End With
Korrektur = Cells(Ende, 3).Value - Übertrag
Cells(Ende, 3).Value = Korrektur
End If
End If
'Umstieg auf MAE4
ElseIf Range("C3").Value >= 3000 And Range("G3").Value = 3000 Then
Korrekturwert = Range("G3").Value
Übertrag = Korrekturwert - 3000
'letzte benutzte Zelle im Puffer finden
With ActiveSheet
Ende = .Cells(Rows.Count, 23).End(xlUp).Row
End With
'Werte in Puffer eintragen
Cells(Ende + 1, 22).Value = SapNr
Cells(Ende + 1, 23).Value = Typ
Cells(Ende + 1, 24).Value = Übertrag
'Wert MAE5 korrigieren
With ActiveSheet
Ende = .Cells(Rows.Count, 3).End(xlUp).Row
End With
Korrektur = Cells(Ende, 3).Value - Übertrag
Cells(Ende, 3).Value = Korrektur
End If
End If
'Umstieg auf Puffer
Else
'In Vorgabeliste eintragen
Sheets("Vorgabeliste").Activate
'letzte benutzte Zelle in Spalte 2 finden
With ActiveSheet
Ende = .Cells(Rows.Count, 23).End(xlUp).Row
End With
'Werte eintragen
Cells(Ende + 1, 22).Value = SapNr
Cells(Ende + 1, 23).Value = Typ
Cells(Ende + 1, 24).Value = Menge
'Zwischenspeicher leeren für nächsten Wert
Sheets("Zwischenspeicher").Activate
Rows("2:2").Select
Selection.Delete Shift:=xlUp
Sheets("Vorgabeliste").Activate
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ElseIf wird umgangen ?!
26.06.2015 09:58:29
Rudi
Hallo,
trifft And Range("G3").Value < 0 denn zu?
Außerdem ist der erste Teil der ElseIf-Bedingung überflüssig.
Es reicht
ElseIf Range("G3").Value < 0 Then
denn wenn C3 nicht kleiner als 3000 ist, muss es ja größer sein.
Es gibt noch andere Unlogiken.
z.B. hast du im Zweig
'MAE5
If Range("C3").Value 

eine Abfrage
If Range("C3").Value >= 3000 Then
Gruß
Rudi

Anzeige
AW: ElseIf wird umgangen ?!
26.06.2015 10:24:48
Lukas
Super! Vielen Dank!
Man sieht manchmal den Wald vor lauter Bäumen nicht.
Gruß
Lukas
;

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