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

Zeilen mit Wert X kopieren

Zeilen mit Wert X kopieren
28.08.2017 06:52:34
Sebastian
Hi zusammen, ihr habt mir schon so oft erfolgreich geholfen. Vielleicht ja auch hier :)
In Tabelle 1 (Report) kann in Spallte K (17-1500) über eine Formel das Wort "schlecht" ausgegeben werden. Ich würde gerne alle Zeilen in denen "schlecht" in Spallte K vorkommt, untereinander in Tabelle 2 (Fehlertabelle) kopieren. Am besten ab Spallte C und ab Zeile 17. Schon mal vielen Dank

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit Wert X kopieren
28.08.2017 07:50:44
Sebastian
Das war aber ein ganz anderes problem :) Da habe ich ja nicht gesucht + das ließ sich ja per Formel lösen :)
AW: Zeilen mit Wert X kopieren
28.08.2017 08:00:05
SF
Hola,
das hier lässt sich wie beschrieben auch per Formel lösen. Wenn es per VBA gelöst werden soll, musst du das schon sagen.
Aber, ist das dann nicht das gleiche wie hier:
https://www.herber.de/forum/messages/1576498.html
Gruß,
steve1da
Anzeige
AW: Zeilen mit Wert X kopieren
28.08.2017 08:38:34
Sebastian
Ok, schade. Ja das Prolem mit dem hochladen der excel Datei bleibt weiterhin bestehen. Trotzdem Danke
AW: Zeilen mit Wert X kopieren
28.08.2017 08:49:49
SF
Hola,
ich verstehe nicht, dass es nicht möglich sein soll, eine Beispieldatei hochzuladen, die Phantasiedaten enthält.
Gruß,
steve1da
AW: wenn es mit Formel gelöst werden soll, ...
28.08.2017 08:19:11
...
Hallo Sebastian,
... dann sollten in Deinen Zeilen nicht zu viele Spalten belegt sein und gleichzeitig "schlecht" nicht viele hunderte Mal vorkommen. Dann könnte mit einer AGGREGAT()-Formel in einer Hilfsspalte die Zeilennummern ermittelt werden, in denen "schlecht" steht und mittels INDEX() und den ermittelten Zeilennummern könnte dann sämtliche Daten der jeweiligen Zeilen ausgeben werden. Willst Du das?
Gruß Werner
.. , - ...
Anzeige
AW: wenn es mit Formel gelöst werden soll, ...
28.08.2017 08:25:53
Sebastian
Oh Sorry, ich hatte vergessen zu sagen das es per VBA gelöst werden soll, welches beim Start der Datei automatisch seinen job erledigt :)
AW: VBA-Lösung gesucht, thread offen owT
28.08.2017 08:27:09
...
Gruß Werner
.. , - ...
AW: Zeilen mit Wert X kopieren
28.08.2017 09:14:26
KlausF
Hallo Sebastian,
probier mal:
Sub Kopieren()
Dim wksQuelle As Worksheet
Dim wksZiel As Worksheet
Dim strSearch As String
Dim searchCol As Integer
'________________________________________ anpassen
Set wksQuelle = Worksheets("Report")
Set wksZiel = Worksheets("Fehlertabelle")
strSearch = "schlecht"
searchCol = 11 'Spalte K
'________________________________________
Application.ScreenUpdating = False
With wksQuelle
.Cells.AutoFilter Field:=searchCol, Criteria1:=strSearch
.Range("A17").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wksZiel.Range("C17")
.AutoFilterMode = False
End With
Set wksQuelle = Nothing
Set wksZiel = Nothing
End Sub
Gruß
Klaus
Anzeige
AW: Zeilen mit Wert X kopieren
28.08.2017 09:54:57
Sebastian
Hi, erst mal vielen Dank :) Aber leider sagt er 1. das es auf einem geschützen Blatt nicht möglich ist, was ja relativ kla ist :) Könntest du den blattschutz kurz aufheben und dann wieder einsetzen ? Aber davon agesehen sagt er: Die Autofilter-Methode des Range Objekts konnte nicht ausgeführt werden. Gruß Basti
Worksheets angepasst?
28.08.2017 15:11:50
KlausF
Hi Sebastian,
hast Du auch die Worksheets im Code angepasst?
Gruß
Klaus
bin erst abends wieder im Forum
AW: Worksheets angepasst?
29.08.2017 07:06:19
Sebastian
Also die Namen und Werte stimmen alle eigentlich ... er sagt Trotzdem " Die Autofilter-Methode des Range Objekts konnte nicht ausgeführt werden "
beim Debugen ist es diese Zeile.
.Cells.AutoFilter Field:=searchCol, Criteria1:=strSearch
Anzeige
mit Blattschutz
28.08.2017 19:55:45
KlausF
Hi,
und hier der Code für den Blattschutz:
Sub Kopieren()
Dim wksQuelle As Worksheet
Dim wksZiel As Worksheet
Dim strSearch As String
Dim strPassword As String
Dim searchCol As Integer
'________________________________________ anpassen
Set wksQuelle = Worksheets("Report")
Set wksZiel = Worksheets("Fehlertabelle")
strSearch = "schlecht"
strPassword = ""
searchCol = 11 'Spalte K
'________________________________________
Application.ScreenUpdating = False
wksZiel.Unprotect Password:=strPassword
With wksQuelle
.Unprotect Password:=strPassword
.Cells.AutoFilter Field:=searchCol, Criteria1:=strSearch
.Range("A17").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wksZiel.Range("C17")
.AutoFilterMode = False
.Protect Password:=strPassword
End With
wksZiel.Protect Password:=strPassword
Set wksQuelle = Nothing
Set wksZiel = Nothing
End Sub
Die andere Frage hattest Du ja noch nicht beantwortet ...
Gruß
Klaus
Anzeige
AW: mit Blattschutz
29.08.2017 07:00:56
Sebastian
Hi erst mal Danke, aber da ich überhaupt keine ahnung von der VBA Sache habe, weiss ich nicht genau was du meinst ?
dann anders
29.08.2017 22:00:44
KlausF
Hallo Sebastian,
keine Ahnung, warum bei Dir der Code nicht funktioniert. Bei mir läuft er.
Vielleicht ist die Syntax bei Office 365 eine andere (habe noch ein altes Excel).
Probier mal diesen Code:
Sub Kopieren()
Dim wksQuelle As Worksheet
Dim wksZiel As Worksheet
Dim strSearch As String
Dim strPassword As String
'________________________________________ anpassen
Set wksQuelle = Worksheets("Report")
Set wksZiel = Worksheets("Fehlertabelle")
strSearch = "schlecht"
strPassword = ""
'________________________________________
Dim i As Long
Dim firstRow As Long
Dim lastRow As Long
Dim lastCol As Integer
firstRow = 17
lastRow = wksQuelle.Cells(Rows.Count, "A").End(xlUp).Row
lastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
wksZiel.Unprotect Password:=strPassword
With wksQuelle
.Unprotect Password:=strPassword
For i = 17 To lastRow
If .Range("K" & i) = strSearch Then
.Range(.Cells(i, 1), .Cells(i, lastCol)).Copy wksZiel.Range("C" & firstRow)
firstRow = firstRow + 1
End If
Next i
.Protect Password:=strPassword
End With
wksZiel.Protect Password:=strPassword
Set wksQuelle = Nothing
Set wksZiel = Nothing
End Sub
Klappt's ?
Gruß Klaus
Anzeige
kleine Korrektur
29.08.2017 22:05:20
KlausF
noch eine kleine Korrektur:
statt
lastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
schreibe
lastCol = wksQuelle.Cells(1, Columns.Count).End(xlToLeft).Column
Gruß
Klaus

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige