Führt if Anweisung nicht korrekt aus

Hallo.
Ich habe folgendes Problem:
Eine If Anweisung funktioniert nicht so wie sie soll.
Hier der Auszug vom Prg: (Weiter unten habe ich das ganze Prg gelistet)

'Zum nächsten BigBAG raufzählen
Sheets(„Tabelle1“).Select
Dim wfneu As Integer

wfneu = Range(„C14“).Value
If wfneu = 1 Then
Range(„f5“).Select
Selection.Copy
Range(„f4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

If wfneu = 2 Then
Range(„g5“).Select
Selection.Copy
Range(„g4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

Es ist egal, was ich für eine Zahl in der Zelle C14 stehen habe, er führt mir jedesmal die If Anweisung mit der 1 aus (Normalerweise sollte er sie ja nur ausführen, wenn eine 1 dort steht.

Ich danke euch schon mal für die Zeit die Ihr euch genommen habt.

Sub Blattdrucken()

’ Blattdrucken Makro
’ Makro am 12.07.2007 von aufgezeichnet

’ ÜbertraginFertigmaterial Makro
’ Makro am 12.07.2007 von aufgezeichnet

Sheets(„Tabelle1“).Select
Dim inhalt, wf
inhalt = Range(„K3“).Value
wf = Range(„B14“).Value '1 ist WF ---- 2 ist WF/O

If inhalt > 0 Then

'In Liste Fertigmaterial eintragen
'Datum übertrag
Sheets(„BigBag Beschriftung“).Select
Range(„B6:smiley:6“).Select
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„A5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Uhrzeit
Sheets(„Tabelle1“).Select
Range(„E10“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„B5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„C5“).Select
'BB Nummer
Sheets(„Tabelle2“).Select
Range(„B4:E4“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Farbe
Sheets(„Tabelle2“).Select
Range(„B7“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„D5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„E5“).Select
'WF oder WF/O
Sheets(„Tabelle2“).Select
Range(„D7“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F5“).Select
'Los 1 oder 2
Sheets(„Tabelle2“).Select
Range(„B6“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Charge
Sheets(„Tabelle2“).Select
Range(„A11“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„G5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Sortierbetrieb
Sheets(„Tabelle2“).Select
Range(„A9“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„H5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Datum
Sheets(„BigBag Beschriftung“).Select
Range(„E6:G6“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Range(„I5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„J5“).Select
'Namen des Arbeiters
Sheets(„BigBag Beschriftung“).Select
Range(„K5:L5“).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(„Fertigmaterial“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Zeile einfügen
Rows(„5:5“).Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Sheets(„BigBag Beschriftung“).Select
Range(„K8“).Select

’ Drucken

Sheets(„Tabelle2“).Select
ActiveWindow.SmallScroll Down:=0
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWindow.SmallScroll Down:=0
Sheets(„Tabelle1“).Select
Range(„F5“).Select
Selection.Copy
Range(„F4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(„BigBag Beschriftung“).Select
Range(„K8“).Select
Application.CutCopyMode = False
Selection.ClearContents
End If

'Zum nächsten BigBAG raufzählen
Sheets(„Tabelle1“).Select
Dim wfneu As Integer

wfneu = Range(„C14“).Value
If wfneu = 1 Then
Range(„f5“).Select
Selection.Copy
Range(„f4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

If wfneu = 2 Then
Range(„g5“).Select
Selection.Copy
Range(„g4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

'Zur nächsten Charge wächseln bei den WF
inhaltneu = Range(„K3“).Value

If inhaltneu = 0 And wf = 1 Then

Sheets(„Tabelle1“).Select
Range(„D4“).Select
Selection.Copy
Range(„D1“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F4“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = „1“
Range(„F6“).Select
Sheets(„BigBag Beschriftung“).Select
Range(„K8“).Select
End If

If inhaltneu = 0 And wf = 2 Then

Sheets(„Tabelle1“).Select
Range(„D4“).Select
Selection.Copy
Range(„D2“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„G4“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = „1“
Range(„F6“).Select
Sheets(„BigBag Beschriftung“).Select
Range(„K8“).Select
End If

End Sub

Hallo.
Ich habe folgendes Problem:
Eine If Anweisung funktioniert nicht so wie sie soll.
Hier der Auszug vom Prg: (Weiter unten habe ich das ganze Prg
gelistet)

'Zum nächsten BigBAG raufzählen
Sheets(„Tabelle1“).Select
Dim wfneu As Integer

wfneu = Range(„C14“).Value
If wfneu = 1 Then
Range(„f5“).Select
Selection.Copy
Range(„f4“).Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

If wfneu = 2 Then
Range(„g5“).Select
Selection.Copy
Range(„g4“).Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

Es ist egal, was ich für eine Zahl in der Zelle C14 stehen
habe, er führt mir jedesmal die If Anweisung mit der 1 aus
(Normalerweise sollte er sie ja nur ausführen, wenn eine 1
dort steht.

Ich danke euch schon mal für die Zeit die Ihr euch genommen
habt.

ich habe mir das programm unten nicht angeschaut, aber habe folgende idee:
Ist das Feld C14 als Text formatiert?
Probier mal, es als Zahl zu formatieren (ich weiß aber nicht, ob dann range().value einen Integer zurückgibt)
ODer probier folgendes:
if cint(wfneu) = 1 then …
oder
if wfneu = „1“ then …

Gruß,
AlexR

hallo.

hab’s jetzt nicht komplett durchgetestet, aber die if-anweisungen funktionieren (wäre ja auch fatal, wenn nicht!).

erwartest du evtl., daß er den inhalt der zellen f4 ung g4 beim nächsten durchlauf wieder löscht? das mußt du schon selber machen :smile:
das überschreiben der zellen mit „1“ geschieht ja auch nur bedingt (abhängig von K3 und B14).

gruß

michael

'Zum nächsten BigBAG raufzählen
Sheets(„Tabelle1“).Select
Dim wfneu As Integer

wfneu = Range(„C14“).Value
If wfneu = 1 Then
Range(„f5“).Select
Selection.Copy
Range(„f4“).Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

If wfneu = 2 Then
Range(„g5“).Select
Selection.Copy
Range(„g4“).Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

Es ist egal, was ich für eine Zahl in der Zelle C14 stehen
habe, er führt mir jedesmal die If Anweisung mit der 1 aus
(Normalerweise sollte er sie ja nur ausführen, wenn eine 1
dort steht.

Hi Krisam,

kann ich nicht nachvollziehen. Wie schon gesagt funktionieren die If-Abfragen. Die Umformatierung würde nur dann was bringen wenn man in C14 eine 1 sieht aber der If-Zweig nicht durchlaufen wird.
Das liegt ja grad bei dir nicht vor.

Und schmeiß die ganzen Selects usw. raus, dann wirds kürzer und übersichtlicher.

Sub tt1()
Sheets("Tabelle1").Select
Dim wfneu As Integer
wfneu = Range("C14").Value
If wfneu = 1 Then
 Range("f5").Copy Destination:=Range("f4")
End If
If wfneu = 2 Then
 Range("g5").Copy Destination:=Range("g4")
End If
End Sub



Sub tt2()
Sheets("Tabelle1").Select
Select Case Range("C14").Value
 Case 1
 Range("f5").Copy Destination:=Range("f4")
 Case 2
 Range("g5").Copy Destination:=Range("g4")
 Case Else
 'Msgbox "Falscher Wert (nicht 1 oder 2) in C14"
End If
End Select
End Sub



Sub tt3()
Sheets("Tabelle1").Select
Dim wfneu As Integer
wfneu = Range("C14").Value
If wfneu = 1 Or wfneu = 2 Then Cells(5, 5 + wfneu).Copy Destination:=Cells(4, 5 + wfneu)
End Sub

Gruß
Reinhard