Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen

VBA: Application.Match

Betrifft: VBA: Application.Match von: Charly
Geschrieben am: 12.01.2020 15:01:30

Hallo

ich weiß nicht weiter.

Laufzeitfehler "13", Typen unverträglich
In der Zeile: n = Application.Match(VBA.CLng(UF4_Tab4_Ändern.CB_Zimmer.Value), sh.Range("A:A"), 0)

Sub Schreiben()
    ' Schreibe
    Dim sh As Worksheet, n As Long
    
    Set sh = ThisWorkbook.Sheets("Bewohner")

        n = Application.Match(VBA.CLng(UF4_Tab4_Ändern.CB_Zimmer.Value), sh.Range("A:A"), 0)

        sh.Range("B" & n).Value = UF4_Tab4_Ändern.TB_Name.Value
        sh.Range("C" & n).Value = UF4_Tab4_Ändern.TB_Vorname.Value
        sh.Range("E" & n).Value = UF4_Tab4_Ändern.TB_GebDate.Value
        sh.Range("F" & n).Value = UF4_Tab4_Ändern.ChB_Dia_ja.Value
        sh.Range("G" & n).Value = UF4_Tab4_Ändern.ChB_Dia_nein.Value
        sh.Range("H" & n).Value = UF4_Tab4_Ändern.ChB_Ins_ja.Value
        sh.Range("I" & n).Value = UF4_Tab4_Ändern.ChB_Ins_nein.Value
        sh.Range("J" & n).Value = UF4_Tab4_Ändern.TB_PEG.Value
        
    Set sh = Nothing
End Sub
Habe in dieser Zeile lediglich die unten stehenden sachen angepast
- UF, ComboBox, sh.Range

Suchen od. Schreiben
es müssen zuvor ein Bereich u. eine Zi.-Nummer per Combobox ausgewählt werden.
Die Suche Funktioniert nur das Schreiben z.B. ("WB1" "Zi.-Nr. 0.01") will nicht.
Nutze den Code in andere Mappen um ins Tabellenblatt zu Schreiben, dort Fuhnktioniert er.

Hier eine Bsp.-Mappe
https://www.herber.de/bbs/user/134340.xlsm

Gruß Charly

Betrifft: AW: VBA: Application.Match
von: Beverly
Geschrieben am: 12.01.2020 15:13:31

Hi Charliy,

der Fehler tritt auf, wenn der Suchbegriff nicht gefunden wird (z.B. wenn UF4_Tab4_Ändern.CB_Zimmer leer ist) - prüfe das also vorher:
Sub Schreiben()
    ' Schreibe
    Dim sh As Worksheet, n As Variant
    Set sh = ThisWorkbook.Sheets("Bewohner")
    n = Application.Match(VBA.CLng(UF4_Tab4_Ändern.CB_Zimmer.Value), sh.Range("A:A"), 0)
    If IsNumeric(n) Then
        sh.Range("B" & n).Value = UF4_Tab4_Ändern.TB_Name.Value
        sh.Range("C" & n).Value = UF4_Tab4_Ändern.TB_Vorname.Value
        sh.Range("E" & n).Value = UF4_Tab4_Ändern.TB_GebDate.Value
        sh.Range("F" & n).Value = UF4_Tab4_Ändern.ChB_Dia_ja.Value
        sh.Range("G" & n).Value = UF4_Tab4_Ändern.ChB_Dia_nein.Value
        sh.Range("H" & n).Value = UF4_Tab4_Ändern.ChB_Ins_ja.Value
        sh.Range("I" & n).Value = UF4_Tab4_Ändern.ChB_Ins_nein.Value
        sh.Range("J" & n).Value = UF4_Tab4_Ändern.TB_PEG.Value
    End If
    Set sh = Nothing
End Sub

GrußformelBeverly's Excel - Inn

Betrifft: AW: VBA: Application.Match
von: onur
Geschrieben am: 12.01.2020 15:18:59

VBA.CLng 

Was soll das denn deiner Meinung nach bedeuten ?

Betrifft: AW: VBA: Application.Match
von: Werner
Geschrieben am: 12.01.2020 15:24:01

Hallo Charly,

wie Beverly schon geschrieben hat tritt der Fehler dann auf, wenn der "Suchbegriff" aus der Combobox in Spalte A nicht gefunden wird.

Und bei dir wird der Fehler immer auftreten, weil du immer nichts finden wirst.

Warum:
Du wandelst mit CLng(... den Inhalt der Combobox in eine Zahl um und die willst du in Spalte A suchen. Dort wirst du aber nichts finden, weil in Spalte A Text steht und keine Zahl.

Also:
n = Application.Match(UF4_Tab4_Ändern.CB_Zimmer.Value, sh.Range("A:A"), 0)
Zudem würde ich in der Userform OptionButton verwenden und keine CheckBoxen.
Bei OptionButton innerhalb eines Frames kann immer nur einer der OptionButton aktiv sein und du brauchst dich nicht per Code darum zu kümmern, dass der andere OptionButton abgewählt wird, das ist Standard und passiert automatisch. Bei Checkboxen müsstest du das extra programmieren.

Gruß Werner

Betrifft: AW: VBA: Application.Match
von: Charly
Geschrieben am: 12.01.2020 16:10:46

Beverly u. Werner

Danke für eure Hilfe, es funktioniert jetzt.

Gruß Charly

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: Werner
Geschrieben am: 12.01.2020 16:14:15



Betrifft: Danke für die Rückmeldung. o.T.
von: Beverly
Geschrieben am: 12.01.2020 17:40:52


GrußformelBeverly's Excel - Inn