Daten kopieren + einfügen (neben letzer verwendete

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Daten kopieren + einfügen (neben letzer verwendete
von: Anja Schnappauf
Geschrieben am: 21.10.2015 19:41:27

Hallo Excelaner,
ich brauche Eure Hilfe.
Ich habe eine Tabelle wo Daten eingetragen werden. Rechts neben der Tabelle stehen Formeln.
Da die Tabelle sehr rechenintensiv ist, will ich, dass die Formeln erst berechnet werden, wenn man einen Button klickt. Da ich nie weiß wie viele Daten eingetragen werden, sollen die Formeln auch nur bis zum Ende der letzen eingetragenen Daten eingefügt werden. Ich habe in meiner Tabelle eine sogenannte „Notfallformelzeile“, die ich unter die Überschrift platziere, damit der Anwender darauf zurückgreifen kann, wenn er mal versehentlich etwas gelöscht oder überschrieben hat.
Die Daten stehen in Spalte A-P ab Zeile 16
Die Formeln stehen in Spalte Q-V ab Zeile 16
Die Notfallformelzeile steht in Zeile 14
Der nachfolgende Code funktioniert gut. Leider weiß ich nicht wie ich es da einbasteln soll, das er erst in Spalte A (ab A16) prüft bis wohin Daten eingetragen wurden und dann die Formel aus der Notfallzeile Q14-V14 kopiert und in Spalte (Q-V ab Q16) einfügt.
Sheets("Tabelle1").Range("Q14:V14").Copy Sheets("Tabelle1").Range("Q16:V800")
Ich weiß dass es da die Möglichkeit mit End(xlUp) gibt, aber ich weiß nicht, wo ich es einfügen soll. Alle im Internet gefunden Codes, die ich versucht habe umzuwandeln, setzen die Formeln immer unter die vorhandenen Daten und nicht daneben.
Vielen Dank für Euer Kopfzerbrechen im Voraus.
Anja

Bild

Betrifft: AW: Daten kopieren + einfügen (neben letzer verwendete
von: fcs
Geschrieben am: 21.10.2015 22:50:56
Hallo Anja,
es gibt Probleme, wenn Datenmüll mit Leerstrings/Leerzeichen oder Formel mit Ergebnis="" im Zellbereich stehen.
Der Zellbereich scheint leer, aber verschiedene Methode zur Suche der letzten sichtbar ausgefüllten Zeile bleiben an diesem Datenmüll hängen.
In neueren Excelversionen, stoppen einige der bewährten Methoden auch an den außeren Zellen von Tabellen-Objekten/Listobject.
Die beiden folgenden Methoden haben sich bei mir bewährt zur Suche der letzten Datenzeile.
Gruß
Franz

Sub Formeln_Tabelle1_1()
    Dim Zeile_1 As Long, Zeile_L As Long
    Dim wks As Worksheet
    Set wks = Sheets("Tabelle1")
    With wks
        Zeile_1 = 16
        'Letzte Zeile mit Inhalt in Spalte A
        Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
        'Weiter hochzählen bis Zelle <> ""
        Do
            If Zeile_L < Zeile_1 Then Exit Do
            If Trim(.Cells(Zeile_L, 1)) <> "" Then
                .Range("Q14:V14").Copy .Range(.Cells(Zeile_1, 17), .Cells(Zeile_L, 22))
                Exit Do
            End If
            Zeile_L = Zeile_L - 1
        Loop
    End With
    MsgBox "Letzte Zeile: " & Zeile_L, _
        vbOKOnly, "Makro - Formeln_Tabelle1_1" 'Testzeile
End Sub
Sub Formeln_Tabelle1_2()
    'Diese Methode übergeht Zellen mit Leerstrings, _
        bleibt aber an Leerzeichen in Zellen hängen.
    Dim Zeile_1 As Long, Zeile_L As Long
    Dim wks As Worksheet, Zelle As Range
    Set wks = Sheets("Tabelle1")
    With wks
        Zeile_1 = 16
        'Letzte Zeile in A:P mit Wert <> "" finden
        Set Zelle = .Range("A:P").Find(After:=.Cells(1, 1), _
            What:="*", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, _
            searchdirection:=xlPrevious)
        If Zelle Is Nothing Then
            'keine Daten im Bereich
            Zeile_L = 1
        Else
            
            Zeile_L = Zelle.Row
            If Zeile_L >= Zeile_1 Then
               .Range("Q14:V14").Copy .Range(.Cells(Zeile_1, 17), .Cells(Zeile_L, 22))
            End If
        End If
    End With
    MsgBox "Letzte Zeile: " & Zeile_L, _
            vbOKOnly, "Makro - Formeln_Tabelle1_2" 'Testzeile
End Sub


Bild

Betrifft: AW: Daten kopieren + einfügen (neben
von: Anja Schnappauf
Geschrieben am: 22.10.2015 00:07:52
Hey Franz,
danke! Klappt super!!!!
In der Suchtelle gibt es gottseidank keinen "Datenmüll", weil dort Werte eingetragen werden.
Aber Danke für den Hinweis. Dann wissen andere "Suchende" auch Bescheid, wenn es Probleme gibt.
Super Idee mit der Testzeile.

Dicken Kuss durchs Netz!
Anja

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten kopieren + einfügen (neben letzer verwendete"