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

RowCount bis zu bestimmten Wert

RowCount bis zu bestimmten Wert
21.09.2020 11:33:10
Matthias
Hallo zusammen,
kann mir jemand den RowCount Befehl etwas detaillierter erklären?
Das zählen bis zur letzten Zeile ist kein Problem,
aber wie lasse ich nicht bis zur letzten Zeile, sondern bis zu einem bestimmten Wert die Zeilen zählen?
Beispiel:
  • 0
    1
    2
    3
    4
    5

  • Wert 3 Befindet sich in Zeile 4, Vba soll bis zu der 3 in dem Fall zählen.
    Vielen lieben Dank vorab für jede Antwort.
    Liebe Grüße
    Matthias

    13
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 11:41:09
    GerdL
    Moin Matthias!
    Beispielsweise so:
    Sub Unit()
    Dim L As Variant
    L = WorksheetFunction.Match(3, Columns("A"), 0)
    If IsError(L) Then
    MsgBox "Keine 3"
    Else
    MsgBox "Zeile " & L
    End If
    End Sub
    

    Gruß Gerd
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:31:29
    Matthias
    Hi Gerd,
    ich bekomme die Fehlermeldung "Die Match-Eigenschaft des WorksheetFuction-Objektes kann nicht zugeordnet werden"
    Mein Code sieht folgendermaßen aus:
    Sub Test()
    Dim koord1 As String
    Dim koord2 As String
    Dim koord1a As String
    Dim koord2a As String
    Dim koordB As String
    k = 3 '2
    kmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Do Until k > kmax
    koord1 = Cells(k - 1, 32).Value
    koord2 = Cells(k, 32).Value
    If Worksheets(2).Cells(k, 32).Value = "START" Then
    Cells(k, 34).Value = "0"
    Else
    'welche Matrix
    If Worksheets(2).Cells(k, 17).Value  32 Then
    Worksheets("Matrix E2").Select
    koord1a = WorksheetFunction.Match(koord1, Columns("A"), 0)
    MsgBox "Zeile " & koord1a
    koord2a = WorksheetFunction.Match(koord2, Rows(1), 0)
    koordB = Cells(koord1a, koord2a).Value
    Worksheets(2).Select
    Cells(k, 34).Value = koordB
    Else
    Worksheets("Matrix E3").Select
    koord1a = WorksheetFunction.Match(koord1, Columns("A"), 0)
    MsgBox "Zeile " & koord1a
    koord2a = WorksheetFunction.Match(koord2, Rows(1), 0)
    koordB = Cells(koord1a, koord2a).Value
    Worksheets(2).Select
    Cells(k, 34).Value = koordB
    End If 'welche Matrix
    End If
    k = k + 1
    Loop
    End Sub
    
    Hast du eine Idee wo der Fehler liegt?
    Danke und LG
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 15:21:39
    Matthias
    Grüß dich Gerd,
    ich habe das jetzt auf diese Art endlich hinbekommen,
    wollte aber den Code in der nächsten Zeile nochmals, nur diesmal für die erste Zeile verwenden.
    
    Sub Entfernungenziehen()
    Dim k As Long
    Dim kmax As Long
    Dim ko1 As Variant
    Dim ko2 As Variant
    Dim ko1h As Variant
    Dim ko2h As Variant
    Dim koord As Variant
    Worksheets(2).Select
    k = 2
    kmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Do Until k > kmax
    ko1 = Cells(k - 1, 32).Value
    ko2 = Cells(k, 32).Value
    If ko2 = "START" Then
    Cells(k, 34).Value = "0"
    Else
    Worksheets("Matrix E1").Select
    ko1h = WorksheetFunction.Match(ko1, Columns("A"), 0)
    ko2h = WorksheetFunction.Match(ko2, Rows("1"), 0) ''''''''''''' Sowohl mit "1" als auch nur 1  _
    probiert
    koord = Cells(ko1h, ko2h).Value
    Worksheets(2).Select
    Cells(k, 34).Value = koord
    End If
    k = k + 1
    Loop
    End Sub
    
    Die Zeile mit ko1h scheint problemlos zu funktionieren, bei der unteren meckert VBA.
    Kann mir jemand erklären was ich anders machen muss?
    Danke und LG
    Matthias
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 15:34:45
    Matthias
    Hat sich erledigt,
    ich hatte vergessen die Werte in der Zeile anzupassen
    Lieben Gruß
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 11:43:17
    Daniel
    Hi
    hier mal zwei Möglichkeiten. Der Wert sollte vorhanden sein.
    columns(?).Find(what:=DeinWert, lookat:=xlwhole, lookIn:=xlvalue).Row
    
    Application.match(DeinWert, Columns(?), 0)
    
    Gruß Daniel
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 12:57:09
    Matthias
    Hi Daniel,
    habe es auf deine Art probiert, jedoch klappt das noch nicht.
    Kannst du mal über den Code schauen?
  • Dim k As Long
    Dim kmax As Long
    Dim koord1 As String
    Dim koord2 As String
    Dim koord1a As String
    Dim koord2a As String
    Dim koordB As String
    Cells(1, 34).Value = "Laufweg"
    k = 2
    kmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    If Worksheets(2).Cells(k, 17).Value < 33 Then
    koord1a = Worksheets("Matrix E1").Columns(1).Find(what:=koord1, lookat:=xlWhole, LookIn:=xlValue).Row
    koord2a = Worksheets("Matrix E1").Row(1).Find(what:=koord2, lookat:=xlWhole, LookIn:=xlValue).Column
    koordB = Worksheets("Matrix E1").Cells(koord1a, koord2a).Value
    Cells(k, 34).Value = koordB
    ElseIf Worksheets(2).Cells(k, 17).Value < 65 And Worksheets(2).Cells(k, 17).Value > 32 Then
    koord1a = Worksheets("Matrix E2").Columns(1).Find(what:=koord1, lookat:=xlWhole, LookIn:=xlValue).Row
    koord2a = Worksheets("Matrix E2").Row(1).Find(what:=koord2, lookat:=xlWhole, LookIn:=xlValue).Column
    koordB = Worksheets("Matrix E2").Cells(koord1a, koord2a).Value
    Cells(k, 34).Value = koordB
    Else
    koord1a = Worksheets("Matrix E3").Columns(1).Find(what:=koord1, lookat:=xlWhole, LookIn:=xlValue).Row
    koord2a = Worksheets("Matrix E3").Row(1).Find(what:=koord2, lookat:=xlWhole, LookIn:=xlValue).Column
    koordB = Worksheets("Matrix E3").Cells(koord1a, koord2a).Value
    Cells(k, 34).Value = koordB
    End If
    End If
    k = k + 1
    Loop

  • Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:08:45
    Daniel
    und kannst du mal erläutern, was du da machst und wo genau das Problem steckt?
    auf den ersten Blick fällt auf, dass
    1. du die Variablen mit den Suchbegriffen (korrd1, koord2) nicht befüllst.
    2. das Rangeobjekt mit den Zeilen "Rows" heißt und nicht "Row" (analog zu "Columns")
    3. du die ermittelten Zeilen- und Spaltennummern in Textstrings schreibst obwohl es Zahlen sind
    damit funktionert das Cells dann nicht mehr, denn wenn der Wert für die Spalte (2. Parameter) ein Text ist, erwartet Cells den Spaltenbuchstaben und nicht die Spaltennummer.
    (bei der Zeile kann man das machen, weil eine Zeile immer als Zahl angegeben werden muss, daher kann VBA versuchen, einen Text in eine Zahl zuwandeln, bei der Spalte kann man jedoch Text (Spaltenbuchstaben) oder Zahl (Spaltennummer) verwenden, daher ist eine Umwandlung von Text in Zahl nicht möglich und es muss der Fehler ausgeben werden, dass es eine Spalte mit dem Spaltenbuchstaben "1" nicht gibt.
    Gruß Daniel
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:18:25
    Matthias
    Zu 1:
    Habe leider vergessen Teile des Codes zu kopieren...
    k = 2
    kmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Do Until k > kmax
    koord1 = Cells(k - 1, 32).Value
    koord2 = Cells(k, 32).Value
    If Worksheets(2).Cells(k, 32).Value = "START" Then
    Cells(k, 34).Value = "0"
    Else
    
    If Worksheets(2).Cells(k, 17).Value 
    Zu 2:
    Danke für den Hinweis, ist abgeändert.
    Allerdings kam der Code nicht bis dahin und hat schon vorher gemeckert.
    Zu 3:
    Als String ist es deklariert, da der Zellinhalt entsprechend Text beinhaltet, ist das falsch?
    Ich habe den Code mal mit ("A") anstelle der 1 ausprobiert, leider bringt mich das nicht weiter.
    An der Stelle zeigt er den Fehler:
    koord1a = Worksheets("Matrix E1").Columns("A").Find(what:=koord1, lookat:=xlWhole, LookIn:=xlValue).Row
    Danke und LG
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:28:18
    Daniel
    naja, du musst schon genau arbeiten.
    der Suchwert, nachdem du suchst, ist String.
    das Ergebnis von .Row oder .Column ist eine Zahl.
    wenn du einen Fehler bekommst und dazu im Forum eine Frage stellst, dann solltet du auch immer dazu sagen, welchen Fehler du hast.
    bekommst du beispielsweise den Laufzeitfehler 9, dann liegt es daran dass du den Blattnamen falsch geschrieben hast.
    deine aktuellen Codes sind noch nicht darauf ausgelegt, den Fall dass der Suchbegriff nicht vorhanden ist, sauber abzufangen und laufen dann auf einen Fehler.
    Solltest du nach Datumswerten suchen, wird's nochmal komplizierter.
    Gruß Daniel
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:42:22
    Matthias
    Hi Daniel,
    tatsächlich handelt es sich um einen Laufzeitfehler 9.
    Kann es weitere Gründe für diesen geben?
    Den Blattnamen habe ich nun rausgenommen, folgendermaßen:
    
    Worksheets("Matrix E1").Select
    koord1a = Columns("A").Find(what:=koord1, lookat:=xlWhole, LookIn:=xlValue).Row
    
    Ich kriege in der Einzelschrittausführung erst in der unteren Zeile den Fehler.
    Ob ich die 1 oder "A" hinter Columns stehen habe, ist es jedes mal der selbe Fehler.
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 15:26:00
    Daniel
    nur theoretisch ohne Datei zum Verproben kann ich da nichts zu sagen.
    Gruß Daniel
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 15:33:54
    Matthias
    Hi Daniel,
    danke dir für deine Beteiligung am Thema.
    Letztendlich habe ich den Fehler finden können,
    an deinem Code war alles in Ordnung.
    Ich hatte vor lauter Excel-Blindheit übersehen, dass ich die Start und die Ziel Zeilen noch falsch benannt hatte.
    Lieben Gruß
    Anzeige
    AW: RowCount bis zu bestimmten Wert
    21.09.2020 13:21:44
    Matthias
    Der Wert der ersten Koordinate soll angeben in welcher Zeile sich der richtige Wert findet, die Zweite Koordinate soll anzeigen welche Spalte.
    So das sich ergibt.
    Koordinate 1 zu Koordinate 2 = X Meter

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige