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

warum "Typen unverträglich?

warum "Typen unverträglich?
21.04.2023 13:49:32
Fred


Hallo Excel Experten,
ich habe von MCO ein Makro, welches mir die "10-0" Ergebnisse von Heim,- und Gastspielen eines Teams (aus Sheet "Listen" zählt,- FUNZT!
Wenn ich aber nun die Ergebnisse "10-0" oder "0-10" suche kommt die Meldung; "Typen unverträglich" Laufzeitfehler 13
Das Original Makro:

Sub zaehle_10_0_alleSpiele_ersten4()
    Dim listenSheet As Worksheet
    Dim importSheet As Worksheet
    Dim listenRange As Range
    Dim importRange As Range
    Dim listenCell As Range
    Dim importCell As Range
    Dim count As Integer
    Dim count2 As Integer
    
    ' Set references to the worksheets and ranges
    Set listenSheet = ThisWorkbook.Worksheets("Listen")
    Set importSheet = ThisWorkbook.Worksheets("Import")
    Set listenRange = listenSheet.Range("A:A").SpecialCells(xlCellTypeConstants)
    Set importRange = importSheet.Range("G:G").SpecialCells(xlCellTypeConstants)
    
    ' Loop through the names in the Listen sheet
    For Each listenCell In listenRange
        count = 0
        count2 = 0
        For Each importCell In importRange
            If importCell = listenCell Or importCell.Offset(0, 1) = listenCell Then
                count = count + 1
                If importSheet.Cells(importCell.Row, "I") = "10-0" Then count2 = count2 + 1
            End If
            If count = 4 Then listenCell.Offset(0, 4).Value = count2: Exit For
        Next importCell
    Next listenCell
End Sub

meine Änderung:
If importSheet.Cells(importCell.Row, "I") = "10-0" Or "0-10" Then count2 = count2 + 1

was ist hier falsch???

Gruss
Fred

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum "Typen unverträglich?
21.04.2023 13:55:26
onur
Mit OR kannst du nur AUSSAGEN verknüpfen und nicht WERTE.
IF a= 3 OR 4 >>>>> FEHLER
IF a=3 OR a=4 >>>> OK


AW: warum "Typen unverträglich?
21.04.2023 14:05:55
Fred
Danke Onur;
If importSheet.Cells(importCell.Row, "I") = "10-0" Or importSheet.Cells(importCell.Row, "I") = "0-10" Then count2 = count2 + 1
funzt!

Gruss
Fred


Gerne !
21.04.2023 14:10:51
onur
Google doch auch mal "WITH - END WITH".


Onur, meintest du so?
21.04.2023 16:20:29
Fred
Hallo Onur,
meintest du so:
Sub zaehle_10_0_0_10_alleSpiele_ersten4b()
Dim listenSheet As Worksheet
Dim importSheet As Worksheet
Dim listenRange As Range
Dim importRange As Range
Dim listenCell As Range
Dim importCell As Range
Dim count As Integer
Dim count2 As Integer

With ThisWorkbook
    Set listenSheet = .Worksheets("Listen")
    Set importSheet = .Worksheets("Import")
End With

With listenSheet
    Set listenRange = .Range("A:A").SpecialCells(xlCellTypeConstants)
End With

With importSheet
    Set importRange = .Range("G:G").SpecialCells(xlCellTypeConstants)
End With

For Each listenCell In listenRange
    count = 0
    count2 = 0
    For Each importCell In importRange
        If importCell = listenCell Or importCell.Offset(0, 1) = listenCell Then
            count = count + 1
            If importSheet.Cells(importCell.Row, "I") = "10-0" Or importSheet.Cells(importCell.Row, "I") = "0-10" Then count2 = count2 + 1
        End If
        If count = 4 Then
            listenCell.Offset(0, 21).Value = count2
            Exit For
        End If
    Next importCell
Next listenCell
End Sub

und hier meine Original:
Sub zaehle_10_0_0_10_alleSpiele_ersten4()
    Dim listenSheet As Worksheet
    Dim importSheet As Worksheet
    Dim listenRange As Range
    Dim importRange As Range
    Dim listenCell As Range
    Dim importCell As Range
    Dim count As Integer
    Dim count2 As Integer
    
    Set listenSheet = ThisWorkbook.Worksheets("Listen")
    Set importSheet = ThisWorkbook.Worksheets("Import")
    Set listenRange = listenSheet.Range("A:A").SpecialCells(xlCellTypeConstants)
    Set importRange = importSheet.Range("G:G").SpecialCells(xlCellTypeConstants)
    
    For Each listenCell In listenRange
        count = 0
        count2 = 0
        For Each importCell In importRange
            If importCell = listenCell Or importCell.Offset(0, 1) = listenCell Then
                count = count + 1
                If importSheet.Cells(importCell.Row, "I") = "10-0" Or importSheet.Cells(importCell.Row, "I") = "0-10" Then count2 = count2 + 1
            End If
            If count = 4 Then listenCell.Offset(0, 20).Value = count2: Exit For
        Next importCell
    Next listenCell
End Sub


Anzeige
AW: Onur, meintest du so?
21.04.2023 18:28:10
onur
Lohnt sich nur, wenn etwas MEHRMALS genannt wird (um sich das zu ersparen und wg der Lesbarkeit):
Sub zaehle_10_0_0_10_alleSpiele_ersten4()
    Dim listenSheet As Worksheet
    Dim importSheet As Worksheet
    Dim listenRange As Range
    Dim importRange As Range
    Dim listenCell As Range
    Dim importCell As Range
    Dim count As Integer
    Dim count2 As Integer
    
    Set listenSheet = ThisWorkbook.Worksheets("Listen")   'Hier lohnt es sich
    Set importSheet = ThisWorkbook.Worksheets("Import")    'Hier lohnt es sich
    Set listenRange = listenSheet.Range("A:A").SpecialCells(xlCellTypeConstants)
    Set importRange = importSheet.Range("G:G").SpecialCells(xlCellTypeConstants)
    
    For Each listenCell In listenRange
        count = 0
        count2 = 0
        For Each importCell In importRange
            If importCell = listenCell Or importCell.Offset(0, 1) = listenCell Then
                count = count + 1
                If importSheet.Cells(importCell.Row, "I") = "10-0" Or importSheet.Cells(importCell.Row, "I") = "0-10" Then count2 = count2 + 1   'Hier lohnt es sich (entw. importCell oder importSheet)
            End If
            If count = 4 Then listenCell.Offset(0, 20).Value = count2: Exit For
        Next importCell
    Next listenCell
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige