Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile Tabellenblatt kopieren, wenn Spalte mit Wert gefüllt

Forumthread: Zeile Tabellenblatt kopieren, wenn Spalte mit Wert gefüllt

Zeile Tabellenblatt kopieren, wenn Spalte mit Wert gefüllt
03.08.2024 18:15:43
Ooppai
Guten Tag zusammen,

vorab ich besitze leider nicht allzuviel Kenntnis im Bereich VBA.

Ich suche eine Möglichkeit eine Zeile eines Tabellenblattes per Makro in ein anderes Tabellenblatt zu kopieren, wenn die Spalte mit einem beliebigen Wert gefüllt ist.

Bislang habe ich etwas gefunden was auch funktioniert, allerdings lediglich wenn eine Spalte mit dem einem bestimmten Wert gefüllt ist.



Public Sub Move_Done_Transactions()
Dim objCell As Range
Dim lngRowsArray() As Long, lngRowCounter As Long, lngCopyRow As Long
Dim strAddress As String
With Worksheets("Tabelle1")
Set objCell = .Columns(13).Find(what:="x", _
After:=.Columns(13).Cells(.Rows.Count), LookIn:=xlValues, LookAt:=xlWhole)
If Not objCell Is Nothing Then
strAddress = objCell.Address
Do
lngRowCounter = lngRowCounter + 1
ReDim Preserve lngRowsArray(1 To lngRowCounter)
lngRowsArray(lngRowCounter) = objCell.Row
Set objCell = .Columns(13).FindNext(objCell)
Loop While Not objCell Is Nothing And objCell.Address > strAddress
With Worksheets("Tabelle2")
lngCopyRow = .Cells(.Rows.Count, 6).End(xlUp).Row
End With
For lngRowCounter = UBound(lngRowsArray) To 1 Step -1
lngCopyRow = lngCopyRow + 1
.Rows(lngRowsArray(lngRowCounter)).Cut
Worksheets("Tabelle2").Rows(lngCopyRow).Insert Shift:=xlDown
.Rows(lngRowsArray(lngRowCounter)).Delete
Next
End If


End With



End Sub




Über eine positive Rückkmeldung würde ich mich freuen.

Gruß

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile Tabellenblatt kopieren, wenn Spalte mit Wert gefüllt
03.08.2024 19:17:07
Marc
Aber wenn es ein beliebiger Wert ist, müsste er doch alle kopieren, denn in jeder spalte ist ein beliebiger Wert drin..

Oder meinst du einen Wert, den du beliebig auswählen kannst?

Den kannst du mit Eingabebox abfragen..

also am Anfang des Scripts kommt sowas



Dim gesuchterWert as String

gesuchterWert = Inputbox("Bitte den gesuchten Wert eingeben:",vbOKCancel)



und nach diesem Wert lässt du dann statt
what:"x" dann mit what: gesuchterWert

suchen
Anzeige
AW: Zeile Tabellenblatt kopieren, wenn Spalte mit Wert gefüllt
03.08.2024 21:21:27
Ooppai
Guten Tag,

tatsächlich sollen alle Zeilen, die in dieser Spalte einen Wert beinhaltet in das neue Tabellenblatt wandern. Ausgenommen die Kopfzeilen der Tabelle.

Beispiel
Im Tabellenblatt1 befinden sich die offenen Vorgänge. Wenn der Vorgang abgeschlossen ist trägt der zuständige Sachbearbeiter seinen Namen in die Spalte. Sobald der Name eingetragen wurde soll das Makro über eine Schaltfläche den Vorgang in das Tabellenblatt2 (geschlossene Vorgänge) verschieben.

Gruß
Anzeige
Dafür braucht es kein VBA …
04.08.2024 09:18:37
RPP63
Moin!
… sondern lediglich eine einzige Formelzelle:
 ABCDEFGHIJKLM
1#ArtMengePreisWerterl. #ArtMengePreisWerterl.
21B835,94287,52  2C824,45195,6Müller
32C824,45195,60Müller 4E530,44152,2Meier
43D585,42427,10  7H950,77456,93Schulze
54E530,44152,20Meier       
65F620,29121,74        
76G823,82190,56        
87H950,77456,93Schulze       
98I830,91247,28        
109J913,85124,65        
1110K944,93404,37        

ZelleFormel
H2=FILTER(Tabelle1;Tabelle1[erl.]>"")


Gruß Ralf
Anzeige
AW: ... alternativ einfach ausfiltern ...
04.08.2024 09:49:58
neopa C
Hallo Ralf

... und zwar der leeren Zellen von "erl." in der Quelldatenliste.
Oder wenn eine eigenständige neue Liste benötigt wird, entsprechend mit der PQ-Funktionalität diese ausfiltern

Gruß Werner
.. , - ...
Power Query
04.08.2024 09:59:00
RPP63
Ja, Power Query ist hier natürlich auch eine sinnvolle Lösung.
Hat halt den "Nachteil", dass die Abfrage bei Änderungen manuell aktualisiert werden muss.
Der zugehörige M-Code zu meinem Beispiel:
let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Gefilterte Zeilen" = Table.SelectRows(#"Quelle", each ([#"erl."] > null))
in
#"Gefilterte Zeilen"


Gruß Ralf
Anzeige
AW: Power Query
05.08.2024 08:38:40
Ooppai
Guten Morgen,

erstmal vielen Dank für die zahlreichen Rückmeldungen und Hilfestellungen. Zugegebenermaßen bin ich, was das Thema angeht nicht ganz so fit. Das sind so gesehen meine ersten Anfänge und versuche ansatzweise überhaupt was zu verstehen.

Ich werde es einfach bei dem Makro belassen, so wie es zu Beginn gedacht war. D.h. wenn Wert in Zelle X enthält, dann wird die Zeile in ein anderes Tabellenblatt kopiert.

Nun habe ich aber doch noch ein kleines Problem. Das Marko funktioniert soweit einwandfrei. Versuche es es aber nun mit einer "intelligenten Tabelle" geht leider garnichts mehr.

Kann mir dabei jemand helfen?

Gruß
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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