Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1316to1320
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

Zeile kopieren, wenn Wert in Spalte K gegeben ist

Zeile kopieren, wenn Wert in Spalte K gegeben ist
26.06.2013 08:55:47
Sascha
Hallo,
ich möchte ab Zeile 2 die Zeilen von A bis L ausschneiden und
in die nächste freie Zeile im Tabellenblatt Archiv einfügen.
Leider bekomme ich es nicht via Makro hin, geht das eventuell
via VBA?
LG
Sascha

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile kopieren, wenn Wert in Spalte K gegeben ist
26.06.2013 09:02:40
Klaus
Hallo Sascha,
das ist nicht möglich, denn:
von A bis L sind es keine Zeilen, sondern Spalten. Immer noch!
Davon ausgehend, dass du Spalten meintest:

Sub KopiereInsArchiv()
With Sheets("Archiv")
ActiveSheet.Range("A2:L2").Cut
.Range("A" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial
End With
End Sub
Anmerkung: Ich bin mir ZIEMLICH sicher, dass der Code tatsächlich nicht das macht, was du WILLST. Allerdings macht er genau das, wonach du GEFRAGT hast. Ich habe mich wörtlich an deine Aufgabe gehalten, da ich mit "Zeilen statt Spalten" schon genug Gedankenleserei betreiben musste.
Merke: Eine korrekt formulierte Frage ist meisten schon die halbe Lösung :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Zeile kopieren, wenn Wert in Spalte K gegeben ist
26.06.2013 09:17:27
Sascha
Hallo Klaus,
richtig. Ich hoffe, dass ich das mit den Spalten noch hinbekomme. ;-)
Auch war die sonstige Aufgabenstellung verkehrt.
Ich möchte gerne ab Zeile 2 die Spalten von A bis L ausschneiden welche
in K einen SVERWEIS einen Wert zurückgeben.
Und anschließend sollen die Daten in die nächste freie Zeile im Tabellenblatt Archiv
eingefügt werden.
Beispiel:
https://www.herber.de/bbs/user/86052.xlsm
LG
Sascha

AW: Zeile kopieren, wenn Wert in Spalte K gegeben ist
26.06.2013 09:34:07
Klaus
Hi Sascha,
ich habe das ganze jetzt mit AUSSCHNEIDEN gelöst, wie du verlangt hast. Obwohl es mir vorkommt, als ob KOPIEREN + INHALTE EINFÜGEN hier die bessere Wahl wäre ...
Sub KopiereInsArchiv()
Const CheckCol = 11     'Spalte K = 11
Dim lRow As Long
Dim lRowArchiv As Long
Dim r As Range
With Sheets("Archiv")
'freie Zeile in Archiv feststellen
lRowArchiv = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
End With
With Sheets("Tabelle1")
lRow = .Cells(.Rows.Count, CheckCol).End(xlUp).Row
For Each r In .Range(.Cells(2, CheckCol), .Cells(lRow, CheckCol))
If r.Value = "" Then
'wenn leer, dann nix!
Else
'Spalte A-L der aktuellen Zeile AUSSCHNEIDEN und ins Archiv einfügen
.Range(.Cells(r.Row, 1), .Cells(r.Row, 12)).Cut _
Sheets("Archiv").Range("A" & lRowArchiv & ":L" & lRowArchiv)
lRowArchiv = lRowArchiv + 1
End If
Next r
End With
End Sub
Eine Merkregel für Zeilen und Spalten, weil man sich schmutzige Sachen einfach merken kann:
Frauen haben Spalten. Von Oben nach Unten.
Grüße,
Klaus M.vdT.

Anzeige
AW: Zeile kopieren, wenn Wert in Spalte K gegeben ist
26.06.2013 09:39:43
Tino
Hallo,
bin mir nicht sicher ob Ausschneiden das richtige ist was Du suchst,
weil dadurch in der Quelle die Formatierung gelöscht wird.
Habe beide Varianten eingebaut, kannst die nicht gewollte löschen.
Sub Daten_Ins_Archiv()
Dim rngCut As Range, NextRow&

On Error Resume Next
    Set rngCut = Tabelle1.Columns("K:K").SpecialCells(xlCellTypeFormulas, 1)
On Error GoTo 0

If Not rngCut Is Nothing Then
    Application.EnableEvents = False
    Set rngCut = rngCut.EntireRow
    If MsgBox("Sollen die Daten ins Archiv?", vbYesNo) = vbYes Then
        With Sheets("Archiv")
            NextRow = FindLetzteZeile(Sheets(.Name))
            For Each rngCut In rngCut.Areas
                NextRow = NextRow + 1
                
                'Ausschneiden und einfügen 
                rngCut.Cut .Cells(NextRow, 1)
                
                'oder kopieren und Format und Werte Übertragen 
                rngCut.Copy
                .Cells(NextRow, 1).PasteSpecial xlPasteValuesAndNumberFormats
                rngCut.ClearContents

            Next rngCut
        End With
    End If
    Application.EnableEvents = True
End If
End Sub

Function FindLetzteZeile(mySH As Worksheet) As Long
Dim LRow As Long
 
With mySH.UsedRange
  On Error Resume Next
       'Finde Zeile 
       LRow = .Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
       LRow = Application.Max(LRow, .Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
       If LRow = 0 Then LRow = 1
End With
FindLetzteZeile = LRow
End Function
Gruß Tino
Anzeige

350 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige