HERBERS Excel-Forum - die Beispiele

Thema: Anzeige, wenn Listenwerte gefunden werden

Home

Gruppe

Funktion

Problem

Wenn Werte aus Spalte A in den Bereichen F5:F15 oder K5:K10 enthalten sind, soll in Spalte B der Wert AKTIV angezeigt werden.

Lösung
Formel in Spalte B: =WENN(UND(ISTNV(VERGLEICH(A1;$F$5:$F$15;0));ISTNV(VERGLEICH(A1;$K$5:$K$10;0)));"";"AKTIV")
ClassModule: Tabelle1

Private Sub cmdDialogAufruf_Click()
   frmZahlwort.Show
End Sub

ClassModule: frmZahlwort

Private Sub cmdWeiter_Click()
   Unload Me
End Sub

Private Sub txtNumber_Change()
   txtWord.Text = ZahlWort(CDbl(txtNumber.Text))
End Sub

StandardModule: basMain

Sub CallForm()
   frmZahlwort.Show
End Sub

Function ZahlWort(dblZahl As Double, Optional bolArt As Variant)
   Dim arrArt As Variant
   Dim intCounter As Integer, intCts As Integer
   Dim strWert As String, strTmp As String, strSuffix As String
   On Error Resume Next
   If bolArt = 1 Then
      If Err = 0 Then
         intCts = (dblZahl - Fix(dblZahl)) * 100
         strSuffix = " " & Format(CStr(intCts), "00") & "/100"
      Else
         bolArt = 0
      End If
   End If
   On Error GoTo 0
   dblZahl = Fix(dblZahl)
   strTmp = Right(CStr(dblZahl), 3)
   strWert = Part(strTmp)
   For intCounter = 1 To 4
      strTmp = CStr(dblZahl)
      Select Case Len(strTmp)
         Case Is < 1 + 3 * intCounter
            ZahlWort = strWert & strSuffix
            Exit Function
         Case Is < 4 + 3 * intCounter
            strTmp = Left(strTmp, Len(strTmp) - intCounter * 3)
         Case Else
            strTmp = Left(Right(strTmp, 3 + intCounter * 3), 3)
      End Select
      Select Case intCounter
         Case 1: arrArt = Array("tausend", "eintausend")
         Case 2: arrArt = Array("millionen", "einemillion")
         Case 3: arrArt = Array("milliarden", "einemillarde")
         Case 4: arrArt = Array("billionen", "einebillion")
      End Select
      If Right(CStr(dblZahl), 3) = "000" Then
         strWert = Part(strTmp) & arrArt(0)
      ElseIf CInt(strTmp) = 1 Then
         strWert = arrArt(1) & strWert
      Else
         strWert = Part(strTmp) & arrArt(0) & strWert
      End If
   Next intCounter
   ZahlWort = strWert & strSuffix
End Function

Private Function Part(strPart As String) As String
   Dim arrA As Variant, arrB As Variant, arrC As Variant
   Dim strTmp As String
   arrA = Array("null", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun")
   arrB = Array("elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn")
   arrC = Array("zehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig")
   If Len(strPart) = 1 Then
      strTmp = arrA(CInt(Right(strPart, 1)))
   ElseIf Right(strPart, 2) = "00" Then
      If Left(strPart, 1) = "1" Then
         Part = "einhundert"
      Else
         Part = arrA(CInt(Left(strPart, 1))) & "hundert"
      End If
      Exit Function
   ElseIf Mid(strPart, Len(strPart) - 1, 1) = "0" Then
      strTmp = arrA(CInt(Right(strPart, 1)))
   ElseIf Mid(strPart, Len(strPart) - 1, 1) = "1" Then
      If CInt(Right(strPart, 1)) <> 0 Then
         strTmp = arrB(CInt(Right(strPart, 2)) - 11)
      Else
         strTmp = arrC(CInt(Mid(strPart, Len(strPart) - 1, 1)) - 1)
      End If
   ElseIf CInt(Mid(strPart, Len(strPart) - 1, 1)) > 1 Then
      Select Case Right(strPart, 1)
         Case "0"
            strTmp = arrC(CInt(Mid(strPart, Len(strPart) - 1, 1)) - 1)
         Case "1"
            strTmp = "einund" & _
               arrC(CInt(Mid(strPart, Len(strPart) - 1, 1)) - 1)
         Case Else
            strTmp = arrA(CInt(Right(strPart, 1))) & "und" & _
               arrC(CInt(Mid(strPart, Len(strPart) - 1, 1)) - 1)
      End Select
   End If
   If Len(strPart) = 3 Then
      Select Case Left(strPart, 1)
         Case "0"
         Case "1"
            strTmp = "einhundert" & strTmp
         Case Else
            strTmp = arrA(CInt(Left(strPart, 1))) & "hundert" & strTmp
      End Select
   End If
   Part = strTmp
End Function

Beiträge aus dem Excel-Forum zu den Themen Funktion und WENN

Copy funktioniert nur einmal Schreibschutz prüfen funktioniert nicht
Wenn Feld leer, dann Auswahlliste VBA - Wochentage, zählenwenn
Split-Funktion beim Einlesen TXT-Datei Match Funktion spinnt (?)
Bed. Formatierung, wenn alle Beding. erfüllt. summewenn verbessern
IF / WENN / Englisch / Deutsch Windows SVerweis funktioniert nicht
PasteSpecial funktioniert nicht. Formel wenn Wert gefunden überschreiben
MITTELWERTWENN ohne die aktuelle Zeile WENN WAHR dann Wert
Zelle färben wenn Wert in Liste vorkommt Zellen auslesen,wenn im Blattnamen 2019
Zählenwenn Formel ODER/WENN
Objektvariable nicht definierte (wenn...) Löschen Zeilen wenn zwei Bedinungen nicht vorhande
VBA-Code funktioniert nicht mit anderem Office Hilfe bei der INDEX Funktion
Wenn Formel SVERWEIS mit Zählenwenn
MAX wenn mit Indirekt in Matrixformel wenn . in Zelle darf kein OK geschrieben sein
Zelladressen von FunktionsParametern ermitteln Nach erfolgter Eingabe Makro nicht ausführen wenn
Wenn Dann nicht ausfüllen Zellen sperren wenn Bedingung in anderer Zelle erf
Matrixformel mit Summenfunktion SUMMEWENN über mehrere
Formel funktioniert nicht, SVerweis Summewenn mit Bezug auf ein Datum
Zellen einfärben wenn Bedingung erfüllt Wenn alle Zellen unter einer Zelle leer sind, dann
wenn-dann mit 2 Bedingungen aus Spalte/Zeile Makro funktioniert nach Beenden von Excel nicht
Nochmal WENN mit mehreren Bedingungen VLOOKUP auf Links funktioniert offline
SUM in erste leere Zeile von Oben WENN @DAVID Zwei SUMMEWENN funktionen verknüpfen
Zählen wenn als VBA Zwei SUMMEWENN funktionen verknüpfen
Polynomfunktion Summe bilden wenn zwei Kriterien übereinstimmen
Summewenn mit meheren Kriterien/Blaettern Mit vba Funktionen in Excel Zellen
Abfrage mit WENN Wenn 3, dann eins dazu