Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wert von Tabellenblatt kopieren
#1
Hallo,

ich möchte beim Betätigen einer Schaltfläche in dem Tabellenblatt "E get" den letzten Wert von Tabellenblatt "Werte" Spalte3, in das Tabellenblatt "E get" Spalte 57, 2 Zeilen unter dem letzten Eintrag kopieren. Erste Zeile ist "Zeile 5". 
Ich habe bei meiner ersten Beitrag falsch formuliert.  So ist es nun richtig.Wer kann mir helfen?


Vielen Dank  und Grüße Empo

Ich habe von Crazy Tom folgenden Code erhalten.
.
Sub test()
   Dim lngLetzteQuelle As Long
   Dim lngZiel As Long
   lngLetzteQuelle = Cells(Rows.Count, 1).End(xlUp).Row
   With Sheets("E get")
       lngZiel = .Cells(.Rows.Count, 57).End(xlUp).Row + 2
       .Cells(lngZiel, 57).Value = Cells(lngLetzteQuelle, 1).Value
   End With
End Sub
 
So wie ich es formuliert habe war es richtig. Der Fehler liegt bei mir (ich möchte beim Betätigen einer Schaltfläche den letzten Wert von Tabellenblatt "Werte" Spalte1, in das Tabellenblatt "E get" Spalte 57 2 Zeilen unter denm letzten Eintrag kopieren. )
Antworten Top
#2
Hallo

na denn ebenst soherum Wink
diesmal zu starten aus Tabellenblatt "E get"


Code:
Sub test()
   Dim lngLetzteQuelle As Long
   Dim lngZiel As Long
   lngZiel = Cells(Rows.Count, 57).End(xlUp).Row + 2
   If lngZiel < 5 Then lngZiel = 5
   With Sheets("Werte")
       lngLetzteQuelle = .Cells(.Rows.Count, 3).End(xlUp).Row
       Cells(lngZiel, 57).Value = .Cells(lngLetzteQuelle, 3).Value
   End With
End Sub


MfG Tom
Antworten Top
#3
Hallo Crazy Tom,
 
vielen Dank für deinenCode. Er funktioniert prima, nur ist die "Spalte 3" in Tabellenblatt "Werte" nicht leer sondern mit folgender Formel belegt: =WENN(A9="";"";WENN(A9<>"";A9)). Damit verteile ich Werte von "Spalte 1" auf "Spalte 2"
und "Spalte 3". Wenn "Spalte 3" die Formel enthält funtioniet das Makro nicht, wenn ich alle Formeln in Spalte "3" lösche funktiniert das Makro. Das heist für mich, daß vor dem Ausführen von Makto "Test()" noch ein Kopieren von dem letzten Wert "Spalte 1" in die gleiche Zeile "Spalte 3" stattfinden müßte und in Spalte "3" alle Formeln gelöscht werden. Ist dies im gleichen Makro möglich?


Viele Grüße Empo
Antworten Top
#4
Hallo

dann probiere es mal so

Code:
Sub test()
   Dim c As Range
   Dim lngZiel As Long
   lngZiel = Cells(Rows.Count, 57).End(xlUp).Row + 2
   With Sheets("Werte")
       Set c = .Columns(3).Find("*", searchdirection:=xlPrevious, LookIn:=xlValues)
       If Not c Is Nothing Then
           If lngZiel < 5 Then lngZiel = 5
           Cells(lngZiel, 57).Value = c.Value
       End If
   End With
End Sub
MfG Tom
Antworten Top
#5
Hallo Crazy Tom,

vielen Dank. Das Makro funktioniert prima. Letzte Bitte köntest Du mir eine Erklärung unter den Code schreiben was der Code macht. Nochmals vielen Dank.

Viele Grüße Empo
Antworten Top
#6
Hallo


Code:
Sub test()
   Dim c As Range
   Dim lngZiel As Long
   'Zielzelle in Spalte 57 ermitteln
   lngZiel = Cells(Rows.Count, 57).End(xlUp).Row + 2
   With Sheets("Werte")
       'in Werte mit .Find von unten die erste nicht leere Zelle suchen
       Set c = .Columns(3).Find("*", searchdirection:=xlPrevious, LookIn:=xlValues)
       'wenn gefunden
       If Not c Is Nothing Then
           'wenn die Zielzelle kleiner 5 dann Zielzelle 5
           If lngZiel < 5 Then lngZiel = 5
           'in die Zielzelle wird der gefundene Wert(Value) eingetragen
           Cells(lngZiel, 57).Value = c.Value
       End If
   End With
End Sub


MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • empo
Antworten Top


Gehe zu:


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