Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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

gefilterte Spalte kopieren einfügen

gefilterte Spalte kopieren einfügen
26.02.2023 10:54:55
Guesa
Guten Morgen Forum
Ich möchte aus einer gefilterten Liste bestimmte Spalten in ein anderes Tabellenblatt kopieren.
Nach langem suchen habe ich folgenden Code gefunden
Sub filterkopieren()
Worksheets("Produktionsstatus").Range("S14", Cells(Range("S14").SpecialCells(xlLastCell).Row, "S")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 1)
Worksheets("Produktionsstatus").Range("Y14", Cells(Range("Y14").SpecialCells(xlLastCell).Row, "Y")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 3)
Worksheets("Produktionsstatus").Range("B14", Cells(Range("B14").SpecialCells(xlLastCell).Row, "B")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 5)
End Sub
Grundsätzlich funktioniert das auch, Problem: Die Spalten A-B, C-D sind Verbunden (geht nicht anders ist ein Vorgabe-Formular) und
es sollen nur Werte eingefügt werden (hier wird der Hintergrund und Rahmen mit eingefügt)
Wie müsste der Code geändert werden damit mein Vorhaben funktioniert
Vorab ein Danke für Eure Hilfe
Gruß, Guesa

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 11:34:33
Alwin
Hallo Guesa,
da keine Datei zum Testen dabei ist, erst mal folgende Änderungen ungetestet:

Sub filterkopieren()
    With Worksheets("Produktionsstatus")
        .Range("S14", Cells(.Range("S14").SpecialCells(xlLastCell).Row, "S")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 1)
        .Range("Y14", Cells(.Range("Y14").SpecialCells(xlLastCell).Row, "Y")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 3)
        .Range("B14", Cells(.Range("B14").SpecialCells(xlLastCell).Row, "B")).Copy Destination:=Worksheets("Tabelle1").Cells(24, 5)
    End With
End Sub
Gruß Uwe
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 11:54:29
Guesa
Hallo Uwe
Danke für Deine Antwort
Deine Code Änderung macht das gleiche wie mein gefundener Code
Das Problem ist nach wie vor das die Formatierung mit eingefügt wird und das Problem der verbundenen Zellen in Tabelle1
also da wo es hin kopiert werden soll A-B und C-D ist auch noch vorhanden.
Ich versuch mal eine Test Datei zu schicken
Gruß, Guesa
AW: gefilterte Spalte kopieren einfügen
26.02.2023 12:25:38
Guesa
Hallo Uwe
Hier mit Datei. Was ich noch vergessen hatte: In Avi Spalte N und O müsste noch jeweils ein 1 rein
https://www.herber.de/bbs/user/158020.xlsm
Gruß, Guesa
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 13:53:00
Alwin
Hallo Guesa,
zum Problem:
Das habe ich über eine Krücke via Array angelegt. Damit sind auch die Formatierungen weg.
Naja und die 1 in dazu sin den markierten Spalten geht mit einer simplen Schleiche abhängig von der Länge des Arrays.

Sub filterkopieren()
    Dim arrWert(), i&
    With Worksheets("Produktionsstatus")
        .Range("S14", Cells(.Range("S14").SpecialCells(xlLastCell).Row, "S")).Copy Destination:=Worksheets("Avi").Cells(24, 100)
        .Range("Y14", Cells(.Range("Y14").SpecialCells(xlLastCell).Row, "Y")).Copy Destination:=Worksheets("Avi").Cells(24, 101)
        .Range("B14", Cells(.Range("B14").SpecialCells(xlLastCell).Row, "B")).Copy Destination:=Worksheets("Avi").Cells(24, 102)
    End With
    With Worksheets("Avi")
        arrWert = Range(.Cells(24, 100), .Cells(.Cells(Rows.Count, 100).End(xlUp).Row, 100)).Value
        .Cells(24, 1).Resize(UBound(arrWert, 1), 1) = arrWert
        arrWert = Range(.Cells(24, 101), .Cells(.Cells(Rows.Count, 101).End(xlUp).Row, 101)).Value
        .Cells(24, 2).Resize(UBound(arrWert, 1), 1) = arrWert
        arrWert = Range(.Cells(24, 102), .Cells(.Cells(Rows.Count, 102).End(xlUp).Row, 102)).Value
        .Cells(24, 3).Resize(UBound(arrWert, 1), 1) = arrWert
        .Rows(100 & ":" & 102).Delete
        For i = 1 To UBound(arrWert)
            .Cells(24, 14) = 1
            .Cells(24, 15) = 1
        Next i
    End With
End Sub
https://www.herber.de/bbs/user/158022.xlsm
Gruß Uwe
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 14:23:42
Guesa
Hallo Uwe
Super Danke Dir, habe ich gerade ausprobiert.
Da war zwar Position und Artikelnummer vertauscht aber das konnte ich ändern.
Was ich nicht verstehe ist die Schleife, soll doch eine sein oder?, wo die Einsen eingetragen werden,
wenn möglich sollte in jeder Zeile eine 1 in N und O eingetragen werden, im Moment wird nur in Zeile 24 eingetragen.
Wie müsste man das ändern
Gruß, Guesa
AW: gefilterte Spalte kopieren einfügen
26.02.2023 14:41:13
Alwin
ja, das hatte ich hier einfach im Forumseditor noch eingetragen - richtig so:

        For i = 1 To UBound(arrWert)
            .Cells(23 + i, 14) = 1
            .Cells(23 + i, 15) = 1
        Next i
Da werden die Einsen in den gefüllten Zellen mit eingetragen.
Wenn für die ganzen Spalten dann ohne Schleife so: .Range("N24:O49")=1
Gruß Uwe
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 14:56:24
Guesa
Hallo Uwe
Echt Klasse Danke Dir für Deine Mühe.
Und Ehrlich gesagt verstehe ich den ganzen Code nicht :-)
Wenn es nicht zu unverschämt ist könntest du das ganze auskommentieren?
z.B. Warum hier; Destination:=Worksheets("Avi").Cells(24, 100) die 100, 101 usw.
Das kann ich mir nicht herleiten, eben immer noch Anfänger
Gruß, Guesa
AW: gefilterte Spalte kopieren einfügen
26.02.2023 15:25:10
Alwin
Was der Code macht:
Du hattest ja ursprünglich versucht in verbundene Zelle zu schreiben, was natürlich so nicht funktioniert.
Man kann aber weiter weg von der Tabelle z.B. ab Spalte CV (100) bis CX (102) schreiben lassen.
Dann die Werte des Bereichs CV in ein kleines Array laden und ab Zelle(24,1) das Array zurück untransponiert, da ja die Elemente des Array eindimensional sind, zurückgeben.
Adäquat passiert das mit CW und CX.
Im Übrigen scheint die Übernahme der gefilterten Werte zumindest in dieser Datei störanfällig zu sein. Probiere mal verschiedene Filtervorgaben aus, ob das Ergebnis passt.
Gruß Uwe
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 15:50:11
Alwin
Man kann natürlich auch den direkten Weg via Array gehen.

Sub filterkopieren()
    Dim arrWert()
    With Worksheets("Produktionsstatus")
        arrWert = .Range("S14", Cells(.Range("S14").SpecialCells(xlLastCell).Row, "S")).Value
        Sheets("Avi").Cells(24, 1).Resize(UBound(arrWert, 1), 1) = arrWert
        arrWert = .Range("Y14", Cells(.Range("Y14").SpecialCells(xlLastCell).Row, "Y")).Value
        Sheets("Avi").Cells(24, 3).Resize(UBound(arrWert, 1), 1) = arrWert
        arrWert = .Range("B14", Cells(.Range("B14").SpecialCells(xlLastCell).Row, "B")).Value
        Sheets("Avi").Cells(24, 5).Resize(UBound(arrWert, 1), 1) = arrWert
    End With
End Sub
Gruß Uwe
Anzeige
AW: gefilterte Spalte kopieren einfügen
26.02.2023 16:16:58
Guesa
Hallo Uwe
Das hilft zum besseren Verständnis schon mal weiter
Nochmals Danke für Deine Mühe
Gruß, Guesa

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige