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

VBA: i = 0 wenn Zelle 0 sonst 3

VBA: i = 0 wenn Zelle 0 sonst 3
07.04.2021 17:01:58
Guest
Hallo,
ich habe folgenden Code:
   With Worksheets("Import")
z = 1
For q = 3 To letztZeile
i = Cells(q, letztSpalte)
For i = 1 To i
z = z + 1
Range("A" & q & ":C" & q).Copy .Range("A" & z)
Next i
Next q

Nun möchte ich

i = Cells(q, letztSpalte) 
an eine Bedingung knüpfen.
Wenn der Wert in Cells(q, letztSpalte) >0 ist, dann i = 3 sonst i = 0.
Kann jemand helfen?
LG

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: i = 0 wenn Zelle 0 sonst 3
07.04.2021 17:06:45
ralf_b

i = iif(Cells(q, letztSpalte).value > 0 ,3 ,0)

AW: VBA: i = 0 wenn Zelle 0 sonst 3
07.04.2021 17:42:24
Guest
Danke! Allerdings klappt das nicht, nachdem ich die Variable verändert habe.
Dim letztSpalte As Integer
letztSpalte = Sheets("Nfr.").Rows(3).Find(what:="QTY", LookIn:=xlValues, lookat:=xlWhole)
Hier erscheint bereits der Fehler: Objektvariable oder With-Blockvariable nicht festgelegt.
Zuvor sah das ganze so aus:

letztSpalte = Sheets("Nfr.").Cells(2, Columns.Count).End(xlToLeft).Column + 1
Ideen?
Anzeige
AW: VBA: i = 0 wenn Zelle 0 sonst 3
07.04.2021 18:16:45
GerdL
Hallo,
die Find-Methode gibt ein Rangeobjekt zurück, keinen Zahlenwert.
Dim letztSpalte As Long
On Error Resume Next
letztSpalte = Sheets("Nfr.").Rows(3).Find(what:="QTY", LookIn:=xlValues, lookat:=xlWhole). _
Column
On Error GoTo 0
Gruß Gerd
AW: VBA: i = 0 wenn Zelle 0 sonst 3
08.04.2021 09:28:23
Guest
Danke Gerd, das funktioniert nun. Allerdings erhalte ich dann einen Anwendungs- oder objektorientierten Fehler hier:
i = IIf(Cells(q, letztSpalte).Value > 0, 3, 0)
Weißt Du, wo das Problem liegen könnte?
AW: VBA: i = 0 wenn Zelle 0 sonst 3
08.04.2021 10:03:37
ralf_b
wenn die Änderung so erfolgte wie sie Gerd angeregt hat, dann letztSpalte.Column
aber es wäre natürlich sehr hilfreich den geänderten Code zu zeigen.
Anzeige
AW: VBA: i = 0 wenn Zelle 0 sonst 3
08.04.2021 10:21:01
Guest
Ja, du hast Recht. Hier der vollständige Code.
Sub Import()
Application.CutCopyMode = False
Dim SpalteQTY As Long
On Error Resume Next
SpalteQTY = Sheets("Nfr.").Rows(3).Find(what:="QTY", LookIn:=xlValues, lookat:=xlWhole). _
Column
On Error GoTo 0
'#Copy: wenn QTY >0 dann 3 sonst 0
With Worksheets("Import")
z = 1
For q = 3 To letztZeile 'von Zeile 3 bis letzte beschriebene Zeile
i = IIf(Cells(q, SpalteQTY).Value > 0, 3, 0)
For i = 1 To i
z = z + 1
Range("A" & q & ":C" & q).Copy .Range("A" & z)
Next i
Next q
z = 1
For q = 3 To letztZeile
i = IIf(Cells(q, SpalteQTY ).Value > 0, 3, 0)
For i = 1 To i
z = z + 1
Range("AX" & q & ":AX" & q).Copy .Range("D" & z)
Next i
Next q
z = 1
For q = 3 To letztZeile
i = IIf(Cells(q, SpalteQTY).Value > 0, 3, 0)
For i = 1 To i
z = z + 1
Range("H" & q & ":H" & q).Copy .Range("E" & z)
Next i
Next q
End With
End Sub
Anzeige
AW: VBA: i = 0 wenn Zelle 0 sonst 3
08.04.2021 11:26:16
ralf_b
naja dann kann das auch nicht gehen
ic ehrkläre es, auch wenn das schon passiert ist.
 Dim SpalteQTY As Long   '  du erstellst eine Variable vom Typ Long
SpalteQTY = Sheets("Nfr.").Rows(3).Find(what:....    ' hier wird das Ergebnis der Suche in  _
der Variable gepeichert
'der Rückgabewert von find ist aber ein Objekt vom Typ Range
'somit sollte das oben so aussehen
Dim SpalteQTY as Range
und im weiteren Verlauf  sollte als Erstes geprüft werden ob find überhaupt etwas gefunden hat.  _
if SpalteQTY  is nothing then exit sub
'dann benutzt du ja nur die SpaltenNr und nicht die ganze gefundene Zelle.
i = IIf(Cells(q, SpalteQTY.Column).Value > 0, 3, 0)
gruß
rb
Anzeige
AW: VBA: i = 0 wenn Zelle 0 sonst 3
08.04.2021 14:43:23
Guest
Danke, das hat funktioniert! :) Lieben Dank auch für die Erklärung, das hilft ernorm weiter!
danke für die rückmeldung -owT
08.04.2021 15:13:29
ralf_b

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige