Letzte beschriebene Zeile in einem Bereich ermitteln und in anderes Tabellenblatt
#1
Hallo zusammen,

ich möchte aus einem Bereich in Tabellenblatt1 (B3:B15 - enthält auch Leere Zellen) die letzte beschriebene Zelle ermitteln und den
Wert in die Zelle A1 in Tabellenblatt2 eintragen (per VBA und dann per Klick auf einen Button).

Wie kann ich das bewerkstelligen?

Grüße
Fabian
Antworten Top
#2
Ist das eine Anforderung auf eine fertige Gesamtlösung?

So kann man z.B. in B3:B15 die letzte beschriebene Zelle finden

Code:
    Dim wks As Worksheet
    Set wks = ActiveSheet
   
    Dim rg As Range
    Set rg = wks.Range("B3:B15")
   
    Dim lastRow As Long, lastColumn As Long
   
    lastRow = rg.Cells.Find(What:="*" _
        , Lookat:=xlPart _
        , LookIn:=xlFormulas _
        , searchOrder:=xlByRows _
        , searchDirection:=xlPrevious).Row
   

    lastColumn = rg.Cells.Find(What:="*" _
        , Lookat:=xlPart _
        , LookIn:=xlFormulas _
        , searchOrder:=xlByColumns _
        , searchDirection:=xlPrevious).Column
   
    Debug.Print wks.Cells(lastRow, lastColumn).Value
Antworten Top
#3
Hallo,

Danke für die Hilfe. Wenn du mir jetzt noch sagst, wie ich den gefundenen Wert in die zweite Tabelle eintragen kann, wäre ich dir wirklich sehr verbunden.

Grüße
Fabian
Antworten Top
#4
Hallo

der Code des Kollegen ist hohes VBA Wissen, setzt aber voraus das man sich mit VBA auskennt.  Hier reicht eine einfache, auch für Anfänger zu verstehende For Next Schleife.

mfg  Gast 123

Code:
Sub Wert_übertragen()
With Worksheets("Tabelle1")
    For j = 15 To 1 Step -1
       If .Cells(j, 2) <> "" Then
           Worksheets("Tabelle2").Range("A1") = .Cells(j, 2)
           Exit Sub
       End If
    Next j
End With
End Sub
Antworten Top
#5
Hallo und vielen Dank für eure Hilfe,

habe es jetzt mit der Hilfe von @Warkings so gelöst und den Rest durch Google Suche rausgefunden:

Code:
' Strom auslesen und in Tabelle Strom eintragen

Dim wks As Worksheet
    Set wks = ActiveSheet
   
    Dim rg As Range
    Set rg = wks.Range("B3:B15")
   
    Dim lastRow As Long, lastColumn As Long
   
    lastRow = rg.Cells.Find(What:="*" _
        , Lookat:=xlPart _
        , LookIn:=xlFormulas _
        , searchOrder:=xlByRows _
        , searchDirection:=xlPrevious).Row
   

    lastColumn = rg.Cells.Find(What:="*" _
        , Lookat:=xlPart _
        , LookIn:=xlFormulas _
        , searchOrder:=xlByColumns _
        , searchDirection:=xlPrevious).Column
   
    Sheets("Strom").Range("B21").Value = wks.Cells(lastRow, lastColumn).Value
    Sheets("Strom").Range("G21").Value = Format(Now, "YYYY-MM-DD hh:mm")
 
Vielen Dank nochmal für eure Hilfe!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste