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

Typenunverträglichkeit

Typenunverträglichkeit
20.06.2021 21:03:38
Thomas
Hallo Excelfreunde,
ich möchte gern alle Werte aus Spalte A zählen und in der MSGBOX ausgeben.
Dazu habe ich ein Beispiel von Sepp gefunden
https://www.herber.de/forum/archiv/908to912/911854_VBA_Werte_zaehlen.html
Sobald in der Spalte A nur ein Wert vorhanden ist erhalte ich jedoch die Fehlermeldung " Typen unverträglich"

Sub Namen_Zaehlen()
Dim vVal As Variant, vRes() As Variant
Dim rng As Range
Dim lngI As Long
Dim strMsg As String
Set rng = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
vVal = rng
Redim vRes(0)
vRes(0) = "###"
For lngI = 1 To UBound(vVal, 1)
If Not IsNumeric(Application.Match(vVal(lngI, 1), vRes, 0)) Then
strMsg = strMsg & vVal(lngI, 1) & vbTab & vbTab & Application.CountIf(rng, vVal(lngI, 1)) & vbLf
Redim Preserve vRes(UBound(vRes) + 1)
vRes(UBound(vRes)) = vVal(lngI, 1)
End If
Next
If Len(strMsg) > 0 Then MsgBox strMsg
End Sub
https://www.herber.de/bbs/user/146681.xlsb
Hat jemand eine Idee wie ich dieses Problem Lösen kann?
habt schon mal rechtvielen dank für euer interesse.
mfg thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typenunverträglichkeit
20.06.2021 21:29:41
Mullit
Hallo,
mit nur einem Wert hast Du kein Array mehr am Wickel, mach mal so:

Option Explicit

Private Sub CommandButton1_Click()
Dim vVal As Variant, vRes() As Variant
Dim rng As Range
Dim lngI As Long
Dim strMsg As String
Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

vVal = rng
ReDim vRes(0)
vRes(0) = "#####################"
If IsArray(vVal) Then
    For lngI = 1 To UBound(vVal, 1)
        If Not IsNumeric(Application.Match(vVal(lngI, 1), vRes, 0)) Then
            strMsg = strMsg & vVal(lngI, 1) & vbTab & vbTab & Application.CountIf(rng, vVal(lngI, 1)) & vbLf
            ReDim Preserve vRes(UBound(vRes) + 1)
            vRes(UBound(vRes)) = vVal(lngI, 1)
        End If
    Next
ElseIf Not IsEmpty(vVal) Then
    strMsg = vVal & vbTab & vbTab & 1
End If
If Len(strMsg) > 0 Then MsgBox strMsg
Set rng = Nothing
End Sub
Gruß, Mullit
Anzeige
das passt Mullit risen dank
20.06.2021 21:53:51
Thomas
Hallo Mullit,
hab rechtvielen dank. Das funktioniert super.
mfg thomas
AW: prima, alles klar...owT
20.06.2021 23:29:01
Mullit

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige