Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
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

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

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

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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige