Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: If größer als 1, dann

If größer als 1, dann
29.07.2018 18:55:46
Luki
Hallo,
ich habe eine Excel Liste in der man mit diesen Code prüfen sollte, ob die Zeilen D36 oder D37 größer als 1 sind oder. "überhaupt einen Wert haben", meistens sind diese leer. Ist eines der beiden größer als 1 "oder nicht leer" dann 31 sonst 38.
Es wird mir immer nur 38 oder 31 ausgegeben.
Ich wollte es nurmal mit größer als 1 versuchen denn "" hätt ich auch schon versucht aber funktioniert auch nicht.
If Range("D36") > 1 Then
wksDaten.Cells(i, 11) = "31"
Else
wksDaten.Cells(i, 11) = "38"
End If
If Range("D37") > 1 Then
wksDaten.Cells(i, 11) = "31"
Else
wksDaten.Cells(i, 11) = "38"
End If
Bitte um Hilfe, weil diesen code muss ich dann auch noch erweitern.
danke
lg Luki
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If größer als 1, dann
29.07.2018 18:58:54
Hajo_Zi
Hallo Luki,
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Vielleicht ist es Text?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: If größer als 1, dann
29.07.2018 19:03:25
Sepp
Hallo Luki,
so?
  If Range("D36") & Range("D37") = "" Then
    wksDaten.Cells(i, 11) = "38"
  ElseIf Range("D36") > 1 Or Range("D37") > 1 Then
    wksDaten.Cells(i, 11) = "31"
  End If

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: If größer als 1, dann
29.07.2018 19:38:41
Luki
Hallo,
danke für die Hilfe.
Sepp wenn ich bei D36 20 reinschreibe kommt trotzdem 38 raus.
Das Format hätt ich jetzt auch auf zahlen umgeschrieben, aber wie bereits gedacht trotzdem keine änderung. Alles Andere Funktioniert ja. Kann er mir da evtl. auf meine Zelle nicht zugreifen?
Lg Luki
Anzeige
AW: If größer als 1, dann
29.07.2018 19:50:44
Sepp
Hallo Luki,
der Code bezieht sich auf das aktive Tabellenblatt! Vielleicht liegt es daran.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: If größer als 1, dann
29.07.2018 19:56:31
Luki
Hallo Sepp,
hier mein code.
unter wksdaten sollte der Code dann stehen
wksDaten.Cells(i, 8) = "Mail"
Sub setBestellEntry()
Dim Datum As String
Dim Lieferdatum As String
Datum = Range("E9")
Lieferdatum = Range("E11")
'öffne Excel BestellbuchListe
Workbooks.Open "C:\Users\\Desktop\\001_Bestellbuch_Technik.xls"
Set wkbDaten = Workbooks("001_Bestellbuch_Technik.xls")
Set wksDaten = wkbDaten.Sheets("Bestellbuch")
'Inhalte einfügen
i = "3"
While wksDaten.Cells(i, 3) ""
i = i + 1
Wend
wksDaten.Cells(i, 5) = Datum
wksDaten.Cells(i, 6) = Lieferdatum
wksDaten.Cells(i, 7) = Range("I12")
wksDaten.Cells(i, 8) = "Mail"
'BestellbuchListe speichern
wkbDaten.Close (True)
Bitte nochmal um Hilfe.
Danke-
Anzeige
AW: If größer als 1, dann
29.07.2018 20:45:31
Sepp
Hallo Luki,
dein Code enthält undefinierte Variablen! Das schau ich mir normalerweise gar nicht an!
Und ich weiß immer noch nicht, wo die zu prüfenden zellen stehen.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

If größer als 1: So funktioniert es in Excel


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob die Werte in den Zellen D36 oder D37 größer als 1 sind, kannst du den folgenden VBA-Code verwenden. Dieser Code gibt 31 zurück, wenn eines der beiden Felder den Wert über 1 hat oder nicht leer ist, andernfalls 38.

If Range("D36") > 1 Or Range("D37") > 1 Then
    wksDaten.Cells(i, 11) = "31"
Else
    wksDaten.Cells(i, 11) = "38"
End If

Achte darauf, dass du den Code in das richtige Modul deiner Excel-Datei einfügst, und dass wksDaten korrekt definiert ist.


Häufige Fehler und Lösungen

  1. Falscher Zellbezug: Stelle sicher, dass du den richtigen Bezug zu den Zellen D36 und D37 hast. Wenn der Code auf das falsche Tabellenblatt verweist, könnte dies die Ausgabe beeinflussen.

  2. Leere Zellen: Wenn Zellen D36 oder D37 leer sind, wird der Code immer 38 zurückgeben. Du kannst dies durch Hinzufügen einer Überprüfung auf leere Zellen verhindern:

    If IsEmpty(Range("D36")) And IsEmpty(Range("D37")) Then
        wksDaten.Cells(i, 11) = "38"
    ElseIf Range("D36") > 1 Or Range("D37") > 1 Then
        wksDaten.Cells(i, 11) = "31"
    Else
        wksDaten.Cells(i, 11) = "38"
    End If
  3. Format der Zellen: Stelle sicher, dass die Zellen im richtigen Format (Zahlenformat) sind. Wenn sie als Text formatiert sind, wird die Bedingung möglicherweise nicht korrekt ausgewertet.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du die folgende Formel direkt in einer Excel-Zelle verwenden:

=IF(OR(D36>1, D37>1), 31, 38)

Diese Formel gibt ebenfalls 31 zurück, wenn eines der beiden Kriterien erfüllt ist, und 38, wenn beide Bedingungen nicht zutreffen.


Praktische Beispiele

Angenommen, du hast die folgenden Werte in D36 und D37:

  • D36: 5
  • D37: 0

Die Ausgabe des Codes oder der Formel wäre 31, weil D36 größer als 1 ist.

Wenn du jedoch die Werte:

  • D36: 0
  • D37: 0

hast, wäre die Ausgabe 38.


Tipps für Profis

  • Verwendung von Variablen: Wenn du oft auf dieselben Zellen zugreifst, kann es nützlich sein, Variablen für die Zellwerte zu erstellen, um die Lesbarkeit des Codes zu verbessern. Beispiel:

    Dim valD36 As Variant
    Dim valD37 As Variant
    valD36 = Range("D36").Value
    valD37 = Range("D37").Value
    
    If valD36 > 1 Or valD37 > 1 Then
        wksDaten.Cells(i, 11) = "31"
    Else
        wksDaten.Cells(i, 11) = "38"
    End If
  • Debugging: Nutze die Debug.Print-Anweisung, um den Wert der Zellen während der Ausführung des Codes zu überprüfen. Dies kann helfen, Probleme zu identifizieren.


FAQ: Häufige Fragen

1. Warum gibt mein Code immer 38 zurück?
Überprüfe, ob die Zellen D36 und D37 Werte haben und ob sie korrekt formatiert sind. Wenn sie leer oder als Text formatiert sind, wird die Bedingung nicht erfüllt.

2. Kann ich diese Logik auch für mehr als zwei Zellen verwenden?
Ja, du kannst die OR-Bedingung erweitern, um mehr Zellen zu überprüfen, oder eine Schleife verwenden, um durch einen Zellbereich zu iterieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige