Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

letzte beschriebene zelle wert kopieren

Forumthread: letzte beschriebene zelle wert kopieren

letzte beschriebene zelle wert kopieren
15.01.2019 12:39:45
Guesa
Hallo Forum
hoffe Ihr seid gut ins neue Jahr gekommen
Folgendes Problem: Ich lasse mir Zellen ins Tb1 einlesen (mal mehr mal weniger). Nun möchte ich mit diesen Daten im Tb2 weiter rechnen, dazu müssten die letzten Zellen der Spalten (dort stehen die Summen) als Wert ins Tb2 kopiert werden, z.B finde die letzte Zelle in B kopiere diese nach Tb2 C3, finde die letzte Zelle in C kopiere diese nach Tb2 D5 usw. Hoffe Ihr könnt mir dabei helfen, vor ab schon mal eine Danke
Gruß, Guesa
https://www.herber.de/bbs/user/126773.xlsx
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
per Formel
15.01.2019 12:53:15
UweD

Tabelle2
 BCDE
1    
2    
3Summe aus B:120  
4    
5 Summe aus C:160 
6    
7    
8    

verwendete Formeln
Zelle Formel Bereich N/A
C3,D5=SVERWEIS("Summe:";Tabelle1!$A:$J;SPALTE();0)  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit


LG UweD
Anzeige
AW: per Formel
15.01.2019 13:04:33
Guesa
Hallo Uwe
bräuchte das als VBA
Gruß, Guesa
AW: per Formel
15.01.2019 13:28:33
UweD
Hi
so?
Sub Summe()
    Dim TB1, TB2, LR As Long, S1 As Integer, SP As Integer, Z As Long
    Set TB1 = Sheets("Tabelle1")
    Set TB2 = Sheets("Tabelle2")
    S1 = 1 'Daten stehen in A 
    
    LR = TB1.Cells(TB1.Rows.Count, S1).End(xlUp).Row 'letzte Zeile der Spalte 

    'Beispiel: für B in TB2_ C3 anzeigen 
    SP = 2
    Z = 3
    
    TB2.Cells(Z, SP + 1).Value = TB1.Cells(LR, SP).Value
    
    
    
    'Beispiel: für C in TB2_ D5 anzeigen 
    SP = 3
    Z = 5
    
    TB2.Cells(Z, SP + 1).Value = TB1.Cells(LR, SP).Value

    
    
End Sub

LG UweD
Anzeige
AW: per Formel
15.01.2019 15:10:43
Guesa
Hallo Uwe
Danke für Deine schnellen Antworten
Wenn ich das richtig sehe, habe im Moment keine Zeit um das zu Testen, wird die ganze Summenzeile
ins Tb2 kopiert, da ich letztlich noch nicht weiß wo die einzelnen Summen im Tb2 platziert werden bräuchte ich das so, dass letzte Summe B kopieren in Tb2 Wert irgendwo z.B. C3 einfügen, mit den anderen Zellen genau so. Den Code kann ich mir dann so anpassen das es dann für die Vorlage in Tb2 passt.
Gruß, Guesa
Anzeige
AW: per Formel
15.01.2019 15:58:46
onur
"bräuchte ich das so, dass letzte Summe B kopieren in Tb2 Wert irgendwo z.B. C3 einfügen, mit den anderen Zellen genau so" ?
AW: per Formel
15.01.2019 20:20:08
Guesa
Hallo Onur
:-) Natürlich nicht irgendwo, ich weiß halt noch nicht wo die Summe in Tb2 eingefügt werden soll
Tb1 Letzte Zelle in Spalte B kopieren, einfügen als Wert in Tb2 z. B. in A1,
Tb1 Letzte Zelle in Spalte C kopieren, einfügen als Wert in Tb2 z. B. in B2,
Tb1 Letzte Zelle in Spalte D kopieren, einfügen als Wert in Tb2 z. B. in C6, usw. auf Jedenfall nicht die komplette letzte Zeile mit den Summen kopieren
Gruß, Guesa
Anzeige
AW: per Formel
16.01.2019 09:05:00
Werner
Hallo,
das ich weiß halt noch nicht wo die Summe in Tb2 eingefügt werden soll ist aber mal eine super Aussage.
Hier mal ein Code der die letzte Zeile und die letzte Spalte im Blatt 1 ermittelt. Aus der letzten Zeile werden dann ab Spalte B bis zur letzten belegte Spalte die Werte kopiert. Im Blatt 2 wird ab Spalte A eingefügt. In jeder Spalte wird vorher die letzte belegte Zeile ermittelt und dort im Anschluß als Wert eingefügt.
Option Explicit
Public Sub Test()
Dim loLetzte As Long, loLetzteZiel As Long, loSpalte As Long, i As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
loSpalte = .Cells(loLetzte, .Columns.Count).End(xlToLeft).Column
For i = 2 To loSpalte
.Cells(loLetzte, i).Copy
With Worksheets("Tabelle2")
loLetzteZiel = .Cells(.Rows.Count, i - 1).End(xlUp).Offset(1).Row
.Cells(loLetzteZiel, i - 1).PasteSpecial Paste:=xlPasteValues
End With
Next i
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige
AW: per Formel
16.01.2019 21:33:49
Guesa
Danke für die Antworten
Danke für die Rückmeldung, auch wenn...
16.01.2019 21:56:49
Werner
Hallo,
...deine Antwort mir jetzt nicht unbedingt erhellt, ob das Makro gepasst hat oder nicht.
Gruß Werner
AW: Danke für die Rückmeldung, auch wenn...
17.01.2019 19:56:27
Guesa
Hallo Werner
Nein hat nicht gepasst, da die ganze Zeile kopiert wird. Das liegt aber wohl höchst wahrscheinlich an meine nicht so glücklich formulierte Frage. Habe mir jetzt selber was gebastelt, ist ja doch ein wenig hängen geblieben von VBA, zwar ein wenig umständlich aber es läuft. Den Code habe ich momentan noch auf meinem Arbeitsrechner, diesen werde ich dann mal am Wochenende, mit einer neuen
Anfrage, zwecks Codevereinfachung, hier hochladen. Kannst du dir ja mal angucken und dann eventuell vereinfachen.
Gruß, Guesa
Anzeige
AW: Danke für die Rückmeldung, auch wenn...
17.01.2019 20:44:47
Werner
Hallo,
was erwartest du denn eigentlich? Einen Code der aufgrund deiner Angaben funktioniert?
Beispiele:
dazu müssten die letzten Zellen der Spalten (dort stehen die Summen)
Das heißt für mich alle Spalten. Du schreibst nirgendwo von bestimmten Spalten und schon gar nicht davon, um welche Spalten es sich handeln soll.
z.B finde die letzte Zelle in B kopiere diese nach Tb2 C3, finde die letzte Zelle in C kopiere diese nach Tb2 D5 usw
Das beginnt mit z.B. und mir ist nicht bekannt, an was ich das festmachen soll. Heute Spalte B und C, morgen Spalte A und F, je nach Außentemperatur, oder weshalb.
da ich letztlich noch nicht weiß wo die einzelnen Summen im Tb2 platziert werden
Und wenn du das nicht weißt, dann soll ich das wissen oder der Code soll es erraten?
Konkrete Angaben, was, wann, warum, wohin, dann kann man dir auch einen konkreten Code schreiben, so nicht.
ist ja doch ein wenig hängen geblieben von VBA
Sei mir nicht böse, aber das zweifel ich an. Ansonsten würdest du nicht behaupten, der Code würde die ganze Zeile kopieren. Der Code kopiert jeweils die letzte Zeile (deinen Angaben zufolge die Summen) einzeln, Spalte für Spalte.
Und wenn du nicht die Werte von allen Spalten benötigst, dann hättest du nur die For - Next Schleife entsprechend anpassen müssen.
Gruß Werner
Anzeige
AW: Danke für die Rückmeldung, auch wenn...
18.01.2019 20:23:14
Guesa
Hallo Werner
Das ich die Frage nicht richtig formuliert habe, hatte ich bereits geschrieben. Noch weiter drauf rum hauen bringt jetzt auch nichts mehr. So habe ich dieses Problem erarbeitet
Sub letzte_zelle_in_Spalte()
Application.ScreenUpdating = False
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 4)), Cells(Rows.Count, 4).End(xlUp).Row, Rows. _
Count)
Cells(LoLetzte, 4).Copy
Sheets("Tabelle2").Select
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Tabelle1").Select
'    Application.CutCopyMode = False
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 6)), Cells(Rows.Count, 6).End(xlUp).Row, Rows.Count)
Cells(LoLetzte, 6).Copy
Sheets("Tabelle2").Select
Range("F8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Tabelle1").Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Falls du noch den Nerv hast, wie dieser Code einfacher zu schreiben ist, würdest du mir sehr helfen.
Gruß, Guesa
Anzeige
AW: Danke für die Rückmeldung, auch wenn...
18.01.2019 21:43:27
Werner
Hallo,
zum Beispiel so:
Public Sub Test()
Dim i As Long, y As Long, z As Long
With Worksheets("Tabelle1")
z = 4: y = 1
For i = 4 To 6 Step 2
Worksheets("Tabelle2").Cells(z, i - y) = _
.Cells(.Cells(.Rows.Count, i).End(xlUp).Row, i)
z = z + 4
y = y - 1
Next i
End With
End Sub
Gruß Werner
Anzeige
AW: Danke für die Rückmeldung, auch wenn...
18.01.2019 22:04:23
Werner
Hallo,
oder natürlich wesentlich einfacher so:
Public Sub Test()
With Worksheets("Tabelle1")
Worksheets("Tabelle2").Range("C4") = .Cells(.Cells(.Rows.Count, 4).End(xlUp).Row, 4)
Worksheets("Tabelle2").Range("F8") = .Cells(.Cells(.Rows.Count, 6).End(xlUp).Row, 6)
End With
End Sub
Bei der anderen Version hatte ich nur Bock mal meine Schleife einfach umzubauen. Ist bei lediglich zwei Zellen natürlich völlig unnötiger Aufwand.
Gruß Werner
Anzeige
AW: Danke für die Rückmeldung, auch wenn...
19.01.2019 15:01:06
Guesa
Hallo Werner
Danke Dir, perfekt
Gruß, Guesa
Gerne u. Danke für die Rückmeldung. o.w.T.
19.01.2019 15:50:41
Werner
;
Anzeige
Anzeige

Infobox / Tutorial

Letzte beschriebene Zelle Wert kopieren


Schritt-für-Schritt-Anleitung

Um den Wert der letzten beschriebenen Zelle in Excel zu kopieren, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" und wähle Einfügen > Modul.
  3. Füge den folgenden VBA-Code ein:

    Sub LetzteZelleKopieren()
       Dim TB1 As Worksheet, TB2 As Worksheet
       Dim LR As Long
    
       Set TB1 = Sheets("Tabelle1")
       Set TB2 = Sheets("Tabelle2")
    
       ' Letzte beschriebene Zelle in Spalte B finden
       LR = TB1.Cells(TB1.Rows.Count, 2).End(xlUp).Row
       TB2.Cells(3, 3).Value = TB1.Cells(LR, 2).Value ' Kopiere nach C3
    
       ' Letzte beschriebene Zelle in Spalte C finden
       LR = TB1.Cells(TB1.Rows.Count, 3).End(xlUp).Row
       TB2.Cells(5, 4).Value = TB1.Cells(LR, 3).Value ' Kopiere nach D5
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle LetzteZelleKopieren und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Problem: Die gesamte Zeile wird kopiert.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass nur der spezifische Zellwert, nicht die gesamte Zeile kopiert wird.
  • Problem: Fehler beim Ausführen des Makros.

    • Lösung: Stelle sicher, dass die Tabellennamen (Tabelle1 und Tabelle2) korrekt sind und die Zellen existieren.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die SVERWEIS-Funktion verwenden, um die letzten Werte zu finden. Ein Beispiel wäre:

=SVERWEIS("Summe:";Tabelle1!$A:$J;SPALTE();0)

Diese Formel kann in den entsprechenden Zellen deines Zielblatts eingefügt werden, um die Werte automatisch abzurufen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die letzten Zellen in verschiedenen Spalten kopieren kannst:

  • Für Spalte B nach C3:

    TB2.Cells(3, 3).Value = TB1.Cells(LR, 2).Value
  • Für Spalte C nach D5:

    TB2.Cells(5, 4).Value = TB1.Cells(LR, 3).Value
  • Für Spalte D nach F8:

    LR = TB1.Cells(TB1.Rows.Count, 4).End(xlUp).Row
    TB2.Cells(8, 6).Value = TB1.Cells(LR, 4).Value

Tipps für Profis

  • Verwende Durchschnittszeichen in Excel, um die Daten zu formatieren und lesbarer zu machen.
  • Teste deinen VBA-Code mit verschiedenen Daten, um sicherzustellen, dass er robust ist.
  • Regelmäßige Sicherung deiner Excel-Dateien ist wichtig, besonders wenn du mit Makros arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer Zelle schnell nach unten bis zur letzten Zeile mit Daten kopieren?
Verwende die Füllfunktion, indem du die Zelle mit dem gewünschten Inhalt auswählst und den kleinen Quadratgriff in der unteren rechten Ecke nach unten ziehst.

2. Kann ich den Wert der letzten Zelle auch ohne VBA kopieren?
Ja, du kannst die INDEX und VERGLEICH Funktionen in Excel verwenden, um die letzten Werte in einer Spalte zu ermitteln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige