Registriert seit: 30.12.2021
Version(en): Microsoft 365
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
Registriert seit: 18.10.2020
Version(en): 365
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
Registriert seit: 30.12.2021
Version(en): Microsoft 365
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
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 30.12.2021
Version(en): Microsoft 365
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!