Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zln auf Filterbereich in array einlesen

Zln auf Filterbereich in array einlesen
03.04.2022 19:36:22
Siegie
Hallo wer kann mir bitte helfen!
Ich habe in einem Array 15 Suchkriterien welche nun in der Spalte C (98 Datensätze) den Suchwert aus Arr(1,1) usw. als Filter setzen.
Es treffen angenommen 5 Datensätze zu, wären z.B. die Zl. 5, 8, 15, 22 und 31, nur in diese Zl. möchte ich nun in den Spalten "D:F" Werte einfügen, welche aus dem Bereich von Arr(1,1) kopiert werden. Wenn ich den gefilterten Bereich markiere und dann mit Strg+V +M die kopierten Werte einfüge, werden die Werte auch in jene Zeilen eingefügt die dem momentan gesetztem Filter nicht entsprechen.
Wie könnte ich dies per VBA lösen, bzw. kann man die zutreffenden Zl-Nr. 5, 8, 15, 22, 31 in ein Array kopieren, um damit den einfüge Vorgang gezielt bei diesen Zl-Nr. durchzuführen. Habe schon einiges versucht, dazu das WEB durchsucht, aber leider, es funzt nicht so wie es sollte bzw. ich möchte :-)
Gruß Siegfried

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zln auf Filterbereich in array einlesen
03.04.2022 19:50:47
Oberschlumpf
Hi Siegfried,
15 unterschiedliche Werte sollen unabhängig voneinander in 98 Zeilen gefunden werden.
Bei z Bsp 5 gefundenen Zeilen sollen dann in weiteren 3 Spalten andere, uns unbekannte Werte aus einem Array übertragen werden.
All das ohne Bsp-Datei von dir mit Bsp-Datenzeilen und Benennung der 15 Werte als Bedingungen?
Da verlangste aber echt viel! :-)
Ciao
Thorsten
AW: Zln auf Filterbereich in array einlesen
04.04.2022 00:45:25
Siegie
Hallo Thorsten,
ich verstehe, ich habe mich nun bemüht ein halbwegs brauchbares Muster zu machen. Hat etwas gedauert da spannender Krimi im FS gewesen.
Das Haupttabellenblatt ist „Aufz“ in welchem die gesamten Daten der verschiedenen Messungen und sonstigen INFO’s gesammelt sind. Zum Jahresende setze ich dann in der Spalte „R“ händisch einen Filter, ist im Muster auch momentan aktiv, für alle Bewegungen die ich Steuerlich als gefahrene KM einreichen kann. Habe ich bis jetzt immer händisch gemacht, wo du natürlich viele Stunden daran sitzt. So kam ich eben auf die Idee, zu versuchen es etwas zu automatisieren.
In der Tabelle „Ausw_KM“ befinden sich von „K3:N14“ für die einzelnen dauerhaft vorkommenden Ziele, Spalte „K“ die Werte für die Suche, Spalte „L:N“ die Daten welche dann in die Spalten „D:F“ in dem der Suche entsprechenden Zeile(n) übertragen werden sollen.
Mit dem „Makro2“ hole ich mir aus der gefilterten Tabelle(„Aufz“) die Werte des Datums, KW, Ziel, in die Spalten(„A:C“) herüber, lauft bereits bestens.
Mit dem „Makeo2A“ werden in das Array „Arr“, bereits die Suchwerte aus dem Bereich „K3:N14“ eingelesen, um dann in die Spalten(„D:F“) und den zutreffenden Zeilen eingetragen/kopiert oder… zu werden.
Daran scheitere ich momentan, da ja zwischen den gefilterten Zeilen immer ausgeblendete Zeilen sich befinden. Mein Gedanke, aus den gefilterten Zeilen mir nur die zutreffenden Zl-Nr in ein Array zu lesen, um so das Hineinschreiben der aus „L3:N3“ kommenden Daten in die gefilterten Zielzeilen durchzuführen, ist mir bis jetzt leider nicht gelungen.
Oder es gibt eventuell eine mir unbekannte VBA-Funktion welche das autom. erledigt.
Ja da wäre mir dann sehr geholfen, Thorsten!
Gruß Siegfried
P.S. Was ich befürchtet habe, die Datei ist momentan noch zu Groß
Wenn ich sie abgespeckt habe sende ich sie nach
Anzeige
AW: Zln auf Filterbereich in array einlesen
04.04.2022 14:15:35
Siegie
Hallo Thorsten,
habe mich da mal zur Problemlösung weiter versucht und glaube so die Lösung dafür gefunden zu haben. Sollte bei einem Eintrag bereits die Zielwerte vergeben sein und nochmals ein Eintrag erfolgen, wird die Spalte "C" in gelb markiert, damit man sie anschließen nochmals mit je einem Zielwert kopieren kann.
Sollte es eine bessere Lösung geben, bin für jede Anregung bereit, man kann ja nie genug dazulernen, DANKE.
LG Siegfried

Sub Makro2()
Dim StartRow, EndRow, arr, Ende As Variant
Dim L_Arr As Long
Dim x, xa, y, ya As Integer
Lesen = Range("K2")
arr = Sheets("Ausw_KM").Range(Lesen) 'Einlesen
L_Arr = UBound(arr)
Ende = False
Sheets("Aufz").Select
StartRow = Range("U3:U1000").Cells.SpecialCells(xlCellTypeVisible)(1).Row
EndRow1 = ActiveSheet.Cells(Rows.Count, 21).End(xlUp).Row    ' Spalte U
y = 3
For x = StartRow To EndRow1
If Rows(x).Height > 0 Then
Sheets("Ausw_KM").Range("A" & y) = Format(Range("U" & x), "dd.MM.YYYY")
Sheets("Ausw_KM").Range("A" & y).Font.Size = 8
Sheets("Ausw_KM").Range("B" & y) = Range("T" & x)
Sheets("Ausw_KM").Range("B" & y).Font.Size = 8
Sheets("Ausw_KM").Range("C" & y) = Range("R" & x)
Sheets("Ausw_KM").Range("C" & y).Font.Size = 8
y = y + 1
End If
Next x
Sheets("Ausw_KM").Select
Range("A1").Select
Call Makro2A
End Sub
Sub Makro2A()
Dim EndRow1, EndRow2, SuchWert, Lesen, x As Variant
Lesen = Range("K2")
arr = Range(Lesen) 'Einlesen
L_Arr = UBound(arr)
EndRow1 = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row    ' Spalte A
EndRow2 = Range("K1")                       ' Spalte K - Entfernungsdaten
For xa = 1 To EndRow2
SuchWert = arr(xa, 1)
If ActiveSheet.AutoFilter.FilterMode Then ActiveSheet.AutoFilter.ShowAllData ' Datenbereich Fahrtziel
ActiveSheet.Range("A2:A150").AutoFilter Field:=3, Criteria1:="=*" & SuchWert & "*", Operator:=xlAnd
Call Sichtbare_Anz
AnfDat = Range("C3:C1000").Cells.SpecialCells(xlCellTypeVisible)(1).Row
EndDat = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
If Range("C1") > 0 Then
For x = AnfDat To EndDat
If Rows(x).Height > 0 Then
If Range("D" & x)  "" Then Range("C" & x).Interior.ColorIndex = 6  'gelb
Range("D" & x) = arr(xa, 2)
Range("E" & x) = arr(xa, 3)
Range("F" & x) = arr(xa, 4)
End If
Next x
End If
Next xa
If ActiveSheet.AutoFilter.FilterMode Then ActiveSheet.AutoFilter.ShowAllData ' Datenbereich Fahrtziel
SortSpa = "E"
Call Makro2B
SortSpa = ""
End Sub
Sub Makro2B()
Dim EndRow As Variant
If SortSpa = "" Then SortSpa = "A"
EndRow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row    ' Spalte E ZielPerson
Range("A3:F" & EndRow).Select
ActiveWorkbook.Worksheets("Ausw_KM").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Ausw_KM").Sort.SortFields.Add2 Key:=Range( _
SortSpa & "3:" & SortSpa & EndRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
IIf(SortSpa = "A", xlSortTextAsNumbers, xlSortNormal)
With ActiveWorkbook.Worksheets("Ausw_KM").Sort
.SetRange Range("A3:F" & EndRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
SortSpa = ""
End Sub

Anzeige
AW: Zln auf Filterbereich in array einlesen
06.04.2022 10:10:41
Oberschlumpf
Hi Siegfried,
sorry, dass ich mich erst jetzt melde. Aber ich war vor- und gestern im KH (jeweils nur ambulant, mehrere Stunden, und bei mir is alles gut). Deswegen hatte ich abends dann nicht mehr so Lust, irgdwas in Excel zu basteln.
Nun denn, jetzt wollte ich wieder, aber... :-)
Schon das Entpacken der Datei 152214.zip führte zu diesem Fehler:
Userbild
Und auch das Entpacken der 2. Datei 152215.zip war fehlerhaft.
So kann ich also nicht die Bsp-Dateien von dir sehen.
Scheint aber nicht mehr "schlimm" zu sein, da es ja so aussieht, dass du selbst schon eine lösung gefunden hast.
Ob man das noch besser machen könnte, weiß ich leider nicht.
Ciao
Thorsten
Anzeige
AW: Zln auf Filterbereich in array einlesen
06.04.2022 14:13:33
Siegie
Hi Thorsten,
tut mir leid, das Original ist um eine Spur größer als die Zulässigen 300K, darum habe ich es mit Zip geteilt. Bei der Endung des 2 Teiles mit .z01 gibt es nun auch wieder Probleme, da diese Endung für den Upload nicht akzeptiert wir. Jetzt aus dem Muster noch was zu entfernen kann ich fast nicht mehr um unter die 300k zu kommen.
Das nächste Problem ist ja dann noch, das die Dateien ja nochmals umbenannt werden und du somit keine Chance hast zum Inhalt vorzudringen.
Alles Schei.... würde ich mal sagen, dabei hätten mich andere Lösungsmöglichkeiten so interessiert.
Gruß Siegfried
Anzeige
AW: Zln auf Filterbereich in array einlesen
06.04.2022 15:42:27
Siegie
Hallo Thorsten,
es hat mir ja keine Ruhe gelassen, habe mir nun die Datei aus 2022 vorgenommen, alles gelöscht was nicht unbedingt sein muss, hat dann wieder noch um wenige k nicht gepasst, dann auch noch in den Makros alle Leerzeilen entfernt und so geschafft auf 297 618 k zu kommen, also gerade eine Spur unter den möglichen 300.
Hoffe das der Upload jetzt funktioniert und du einen Blick darauf werfen kannst.
Es sind jetzt nur mehr 2 Tabellenblätter vorhanden, in "Aufz" werden die Daten erfasst und in "Ausf_KW" die Kilometerauswertung durchgeführt.
Zum Aufrufen der Auswertung habe ich hier Außerdem 2 BUTTON gesetzt.
Gruß Siegfried
https://www.herber.de/bbs/user/152295.zip
Anzeige
wer anders bitte - ich weiß keine Lösung
06.04.2022 16:55:23
Oberschlumpf
Hi Siegfried,
Download deiner Datei geht jetzt, aber...
Am 04.04.2022 14:15:35 hattest du das Makro2 gezeigt, welches deine Lösung ist oder sein könnte.
In der Bsp-Datei ist Makro2 zwar enthalten, aber ich finde nirgends im Code einen Aufruf von Makro2.
Außerdem war von dir die Rede, dass du irgdwie Spalte C prüfen wolltest - in der Bsp-Datei ist Spalte C aber leer.
Sorry, ich hab im Mom nich die Power, mich durch deine Beschreibungen, Lösungsideen und Bsp-Dateien "durchzukämpfen", bis ich so weit bin, dass ich all dem folgen kann, was du erreichen möchtest.
Vielleicht ja bei deinem nächsten Problem wieder...
Ich wünsch dir weiter viel Erfolg!
Ciao
Thorsten
Anzeige
AW: wer anders bitte - ich weiß keine Lösung
06.04.2022 18:54:05
Siegie
Ja Thorsten was soll ich sagen, wenn'st nicht willst dann eben nicht, das sich von meinem ersten Hilferuf bis jetzt was geändert hat da ich ja selbst versuchte das Problem zu lösen, ist wohl klar.
Aus diesem Grund machte ich ja nachstehenden Hinweis
  • Es sind jetzt nur mehr 2 Tabellenblätter vorhanden, in "Aufz" werden die Daten erfasst und in "Ausf_KW" die Kilometerauswertung durchgeführt.
    Zum Aufrufen der Auswertung habe ich hier Außerdem 2 BUTTON gesetzt.
  • . Ich vermute du bist derzeit nicht ganz am Damm, DANKE jedenfalls für deinen versuchten Einsatz
    Gruß Siegfried
    AW: wer anders bitte - ich weiß keine Lösung
    06.04.2022 19:02:26
    Oberschlumpf
    ähh? Siegfried? von nicht wollen hab ich nie was geschrieben - aber zum Glück haste am Ende ja noch ne "mir-gehts-vllt-nich-gut"-Vermutung geäußert
    und...zum Glück bin ich ja nich der Einzige hier, der vllt helfen kann...
    Anzeige

    210 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige