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

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

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
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" ?
Anzeige
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
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
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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige