Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

WIe kann ich bei if 2 Bedingungen prüfen
#1
Hallo, 

Ich brauchen Hilfe von einen Profi!

Wie kann ich an einen If 2 Bedingungen verbinden das er nur einen Text schreibt wenn beide zutreffen! 
Anbei meine aktuelle Formel er nimmt immer nur eine und ich weiß nicht wo ran das liegt! ICH bin noch ganz frisch auf dem Gebiet :)

danke 

Sub formel_ex()

Dim i As Integer
Dim letzteZeile As Integer

Selection.SpecialCells(xlCellTypeLastCell).Select
letzteZeile = ActiveCell.Row

For i = 4 To letzteZeile
    If Cells(i, 1) = "EX" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "Expert Zentrale"
    End If
    
    If Cells(i, 1) = "RED" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "RED ZAC Zentrale"
    End If
    
    If Cells(i, 1) = "EP" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "EP Zentrale"
    End If
    
    If Cells(i, 1) = "" Then
        Cells(i, 6).FormulaLocal = "leer"
    End If
    
         If Cells(i, 1) = "EX" Then
        Cells(i, 6).FormulaLocal = "Expert"
    End If
    
    If Cells(i, 1) = "RED" Then
        Cells(i, 6).FormulaLocal = "RED ZAC"
    End If
    
    If Cells(i, 1) = "EP" Then
        Cells(i, 6).FormulaLocal = "EP"
    End If
    
Next i

End Sub
Antworten Top
#2
Hallo je_83,
in Deinem Code werden frühere Ergebnisse durch spätere IFs wieder aufgehoben (z.B. bei RED). Hier ein (oder 2) Vorschlag:
For i = 4 To letzteZeile
    If Cells(i, 1) = "" Then
      Cells(i, 6).FormulaLocal = "leer"
    ElseIf Cells(i, 1) = "EX" Then
      If Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "Expert Zentrale"
      Else
        Cells(i, 6).FormulaLocal = "Expert"
      End If
    ElseIf Cells(i, 1) = "RED" Then
      If Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "RED ZAC Zentrale"
      Else
        Cells(i, 6).FormulaLocal = "RED ZAC"
      End If
    ElseIf Cells(i, 1) = "EP" Then
      If Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "EP Zentrale"
      Else
        Cells(i, 6).FormulaLocal = "EP"
      End If
    Else
      Cells(i, 6).FormulaLocal = "nicht bekannt"
    End If
Next i

Übersichtlicher ist die Konstruktion
Dim mytext
Select Case Cells(i, 1)
Case ""
  mytext = "leer"
Case "EX"
  mytext = "Expert"
  If Cells(i, 2) = "Zentrale" Then mytext = mytext & " Zentrale"
Case "RED"
  mytext = "RED ZAC"
  If Cells(i, 2) = "Zentrale" Then mytext = mytext & "Zentrale"
Case "EP"
  mytext = "EP"
  If Cells(i, 2) = "Zentrale" Then mytext = mytext & " Zentrale"
Case Else 'alles sonstige
  mytext = "unbekannt"
End Select
Cells(i, 6) = mytext
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
[-] Folgende(r) 1 Nutzer sagt Danke an AlterDresdner für diesen Beitrag:
  • je_83
Antworten Top
#3
Hallo,

ich weiß nicht, was in dem ganzen Code das "formula local" soll. Außerdem hätte das auch funktioniert, wenn die Reihenfolge anders gewesen wäre:


Code:
Sub formel_ex()

Dim i As Long
Dim letzteZeile As Long

Selection.SpecialCells(xlCellTypeLastCell).Select
letzteZeile = ActiveCell.Row

For i = 4 To letzteZeile
If Cells(i, 1) = "" Then
        Cells(i, 6) = "leer"
    End If
    
         If Cells(i, 1) = "EX" Then
        Cells(i, 6) = "Expert"
    End If
    
    If Cells(i, 1) = "RED" Then
        Cells(i, 6) = "RED ZAC"
    End If
    
    If Cells(i, 1) = "EP" Then
        Cells(i, 6)= "EP"
    End If
    If Cells(i, 1) = "EX" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6) = "Expert Zentrale"
    End If
    
    If Cells(i, 1) = "RED" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6) = "RED ZAC Zentrale"
    End If
    
    If Cells(i, 1) = "EP" And Cells(i, 2) = "Zentrale" Then
        Cells(i, 6).FormulaLocal = "EP Zentrale"
    End If  
    
Next i

End Sub


oder so:


Code:
Sub formel_ex()

Dim i As Long
Dim letzteZeile As Long
Dim myText as string

Selection.SpecialCells(xlCellTypeLastCell).Select
letzteZeile = ActiveCell.Row

For i = 4 To letzteZeile
select case Cells(i,1)


    Case ""
       mytext="leer"
    Case "EX"
       mytext="Expert"
    Case "RED"
       mytext="Red Zac"
    Case "EP"
       mytext="EP"
     Case Else
       mytext="nix da"
 end select

If cells(i,2)="Zentrale" then mytext = mytext & " Zentrale"

Cells(i,6)=mytext

next

End sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Hallo BoskoBiati, & Alter Dresdner, 

vielen vielen danke funkt. beide ::) stimmt hätte ich die Reihenfolge geändert wäre es auch gegangen formula Local habe ich genommen weil da statt den Text eine Formel rein kommt und eben jeder Kriterium eine andere bekommt. 

Bei Case geht das auch mit der Formel? wäre wirklich ein wenig übersichtlicher! 

Danke  Danke Danke kann ich gar nicht oft genug sagen 5 Stunden versuchen ohne Erfolg und jetzt perfekt :) 
 
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste