Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1744to1748
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

Typenkonflikt / WorksheetFunction.Index

Typenkonflikt / WorksheetFunction.Index
14.03.2020 22:03:54
YellOh77
Hallo zusammen,
in Tabelle1 stehen in Spalte A verschiedene Orte, diese können von der Anzahl mitunter variieren,
die Spalten daneben enthalten Monatswerte jeweils von Jan bis Dez.
In Tabelle2 erfolgt die Auswahl des gewünschten Orts in A1, in A2 wird nur als Prüfwert die Zeilennummer des Eintrags zurückgegeben, A3 soll die Jahressumme anzeigen.
Ich bekomme allerdings nur eine Typenunverträglichkeit zurück, habe aber leider keinen blassen Schimmer, wie ich den auflösen kann. Für etwaige Hilfe bin ich schon jetzt dankbar!
Marc
  • 
    Public Sub BedingtSummieren()
    Dim varArr As Variant
    Dim lngLastRow As Long
    Dim rngRowNum As Range
    Dim Suchwert As String
    Suchwert = Sheets("Tabelle2").Range("A1").Value
    lngLastRow = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
    varArr = Sheets("Tabelle1").Range("B1:M" & lngLastRow)
    With Worksheets("Tabelle1")
    Set rngRowNum = Sheets("Tabelle1").Range("A1:A" & lngLastRow).Find(what:=Suchwert, LookIn:= _
    xlValues, LookAt:=xlWhole, _
    SearchOrder:=xlByRows, SearchDirection:=xlNext)
    If Not rngRowNum Is Nothing Then
    Sheets("Tabelle2").Range("A2").Value = rngRowNum.Row 'wird hier nur zur Prüfung genutzt
    End If
    End With
    Sheets("Tabelle2").Range("A3").Value = _
    WorksheetFunction.Sum(WorksheetFunction.Index(varArr, rngRowNum)) ' hier taucht die Unverträ _
    glichkeit auf; Soll die Jahressumme für den Ort ausgeben
    End Sub
    

  • 6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Typenkonflikt / WorksheetFunction.Index
    14.03.2020 22:47:31
    YellOh77
    Hatte wohl 'nen Knick in der Optik, mit folgendem Kniff funktionierts:
    Neben der Range "rngRowNum" wird noch eine Long "lngRowNum" eingefügt, durch die Zwischenspeicherung des reinen Werts klappt's inzwischen. Bleibt noch die Frage, wie es ohne "Zwischenablage" in einer Zelle funktioniert...
  • Option Explicit
    Public Sub BedingtSummieren()
    Dim varArr As Variant
    Dim lngLastRow As Long
    Dim rngRowNum As Range
    Dim Suchwert As String
    Dim lngRowNum As Long
    Suchwert = Sheets("Tabelle2").Range("A1").Value
    lngLastRow = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
    varArr = Sheets("Tabelle1").Range("B1:M" & lngLastRow)
    With Worksheets("Tabelle1")
    Set rngRowNum = Sheets("Tabelle1").Range("A1:A" & lngLastRow).Find(what:=Suchwert, LookIn:= _
    xlValues, LookAt:=xlWhole, _
    SearchOrder:=xlByRows, SearchDirection:=xlNext)
    If Not rngRowNum Is Nothing Then
    Sheets("Tabelle2").Range("A2").Value = rngRowNum.Row 'wird hier nur zur Prüfung genutzt
    End If
    End With
    lngRowNum = Sheets("Tabelle2").Range("A2").Value
    Sheets("Tabelle2").Range("A3").Value = _
    WorksheetFunction.Sum(WorksheetFunction.Index(varArr, lngRowNum)) 'Soll die Jahressumme  _
    für den Ort ausgeben
    End Sub
    

  • Anzeige
    AW: Typenkonflikt / WorksheetFunction.Index
    15.03.2020 01:54:35
    Kuwer
    Hallo,
    WorksheetFunction.Sum(WorksheetFunction.Index(varArr, rngRowNum.Row)) 'Soll die Jahressumme für den Ort ausgeben
    
    Gruß Uwe
    AW: Typenkonflikt / WorksheetFunction.Index
    15.03.2020 02:15:25
    YellOh77
    Danke onur, danke Uwe!
    AW: Typenkonflikt / WorksheetFunction.Index
    15.03.2020 08:09:07
    Hajo_Zi
    warum Offen?

    AW: Typenkonflikt / WorksheetFunction.Index
    15.03.2020 00:42:06
    onur
    Index erwartet eine Zeilennummer, aber durch
    Set rngRowNum = Sheets....
    wird ein Range übergeben (d.h. der Variablenname müsste eigentlich rng lauten, und nicht rngRowNum).
    Versuche es mit
    Index(varArr, rngRowNum.ROW)
    AW: Typenkonflikt / WorksheetFunction.Index
    15.03.2020 01:56:19
    YellOh77
    Danke onur! Manchmal ist man einfach zu benagelt!
    Dein Tipp funktioniert einwandfrei, nachdem ich die Zeile wie folgt abgeändert habe: Sheets("Tabelle2").Range("A3").Value = WorksheetFunction.Sum(WorksheetFunction.Index(varArr, rngRowNum.Row))
    Aber was meinst du mit "der Variablenname müsste eigentlich rng lauten"? Nur "rng" ist zu kurz, weiss ja keiner, welche Range dann gemeint ist... Deshalb benutze ich die "ungarische Notation" (?) und erweitere sie um "sprechende" Bestandteile...
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige