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

Autofilter befüllen per Makro

Autofilter befüllen per Makro
21.03.2021 23:03:42
Bürsti
Hallo,
ich bräuchte bitte Eure Hilfe, ich komme einfach nicht weiter.
Ich habe eine Artikelliste (Tab"Artikelliste"), die leider sehr häufig aktualisiert werden muss. Damit der Anwender nicht in den vielen Spalten (ca. 100) suchen muss, habe ich in der gleichen Excelmappe eine Artikelansicht (Tab"Artikelansicht") erstellt, die per Eingabe der Artikelnummer alle relevanten Inhalte per Bezug übersichtlich anzeigt. Der User überschreibt dann die entsprechenden Felder. Die "ausgehenden" Informationen werden dann wieder in Listenform per Bezug nebeneinander aufgereiht (Tab"Technik"), sodaß sie per Copy + Paste und anhand des Autofilters, suche Artikelnummer; in die ursprüngliche Liste einkopiert werden kann. Danach werden die ursprünglichen Bezuge in der Artikelansicht wieder hergestellt.
Für diesen Copy + Paste & Bezugerstellung habe ich per Makrorecoder ein Makro erstellt, dass eigentlich super läuft. Es funktioniert aber leider nur für den Artikel 00999, den ich bei der Aufzeichnung benutzt habe.
Hier der Anfang des Makros (die eigentliche Artikelübersicht beginnt tatsächlich erst ab Spalte AG2)
Sheets("Artikelansicht").Select
Range("I2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Artikelübersicht").Select
ActiveSheet.Range("$AF$2:$DY$1000").AutoFilter Field:=2, Criteria1:="00999"
Sheets("Technik").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Artikelübersicht").Select
Range("AG622").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Range("$AF$2:$DY$1000").AutoFilter Field:=2
...
Die Line mit dem Autofilter muss eine variable enthalten, aber ich weiss nicht wie.
Und auch die Linie Range("AG622") muss eigentlich variabal sein, weil mit einer anderen
Artikelnummer, soll auch eine andere Zeile angesprochen werden. Die Artikelnummer habe
ich per Bezug in diesem Tab auf AF2 eingespielt, darauf könnte man Bezug nehmen.
Wenn ich das aktuelle Makro laufen lasse, funktioniert bei Artikel 00999 also super, bei
00998 werden die Änderungen bei Artikel 00999 übertragen.
Ich hoffe, Ihr könnt mir helfen - vielen Dank schon mal!
Bürsti

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter befüllen per Makro
22.03.2021 01:30:55
Piet
Hallo Bürsti
hast du die Möglichkeit eine abgespeckre Beispieldatei mit ca. 20 Zeilen hochzuladen. Ich denke die Aufgabe kann man viel einfacher als mit dem Autofilter und Blatt umschalten lösen. Programmierer schalten grundsaetzlich keine Tabellen um!!
Dazu müsste ich den Tabellenaufbau aber sehen. Am besten mit einer kleinen Lösungsvorgabe von Hand.
mfg Piet

AW: Autofilter befüllen per Makro
22.03.2021 15:17:15
Bürsti
Hallo Piet,
vielen Dank für Deine schnelle Rückmeldung.
Ich habe meine Artikelübersicht in klein nachgestellt und auch das Makro erstellt,
so wie ich es bisher hatte. Eine kleine Beschreibung ist auch dabei.
Ich bin gespannt auf Deinen Lösungsvorschlag, da ich ja wirklich kein Programmierer
bin, sondern ein Recorder-Nutzer, wüßte ich gar nicht, wie ich das ohne Tabellen-
umschalten hinkriegen soll.
Ich danke Dir sehr für Deine Zeit!
Bürsti
hier der Link zur Datei:
https://www.herber.de/bbs/user/145021.xlsm

Anzeige
AW: Autofilter befüllen per Makro
22.03.2021 21:51:39
Piet
Hallo Bürsti
anbei dein Beispiel zurück, ein Blatt habe ich gelöscht. Technik als Zwischenlösung brauche ich nicht! Mein Makro steht auch nicht in Modul1, sondern ist als Target Makro im Blatt Artikelübersicht. Dieses Makro wird durch die Eingabe in eine Zelle ausgelöst.
Bei Eingabe in B2 hole ich die Faten aus der Artikelliste, bei Eingbe in B5-B8 werden sie komplett zurückgeschreiben. Zusaetzlich siehst du eine Kopie der alten Daten in Spalte C, zur Erinnerung wie das Original ursprünglich war.
Ich hoffe es laeuft bei euch einwandfrei. Würde mich freuen wenn dir meine Arbeit gefaellt. man braucht aber Jahre und viel VBA Wissen um so programmieren zu können.
https://www.herber.de/bbs/user/145029.xlsm
mfg Piet

Anzeige
AW: Autofilter befüllen per Makro
22.03.2021 22:54:56
Bürsti
Hallo Piet,
Du siehst mich ehrfürchtig am Boden liegen, das ist ja echt der Hammer!
Ich hab schon ein wenig rumprobiert und das ist echt genial - "Zauber Zauber" würde meine Tochter sagen.
Ich mach mich gleich morgen ans erweitern auf meine Originalliste.
Ich danke Dir nochmal für Deine Hilfe, so würde ich das auch gerne können.
Viele Grüße,
Bürsti

AW: Autofilter befüllen per Makro
22.03.2021 23:00:41
Daniel
Hi
anderer Ansatz:
1. lass den Autofilter weg
2. ermittle die Zeilennummer der Fundstelle mit folgender Funktion in einer freien Zelle (z.B. C2)
=Vergleich(B2;Artikelliste!A:A;0)
in einer Zelle, z.B. B2. Diese Zeilennummer kannst du dann im code verwenden.
3. Trage die neuen Daten nicht in B5:B8 ein sondern in die Zellen daneben: C5:C8
dann bleiben die SVerweisformeln erhalten und du musst sie nicht wiederherstellen.
Außerdem sieht man dann dann besser, was geändert wurde.
4. dim Blatt Technik änderst du die Formeln so ab (hier für die Zeile 5, für die anderen analog):
=Wenn(Artikelübersicht!C5="";Artikelübersicht!B5;Artikelübersicht!C5)
das hat den Vorteil, dass du nicht alle Werte in Spalte C eintragen musst, sondern nur die die geändert werden. alle anderen werden aus B übernommen.
5. kopiere dann die Zellen aus Technik in die Zeile, die du in der Zelle C2 berechnet hast.
es reicht dir dann rudimentär folgender Code zum Einfügen der neuen Daten:
Sheets("Technik").Range("B2:E2").Copy
Sheets("Artikelliste").Cells(Sheets("Artikelübersicht").Range("C2"), 2).pasteSpecial xlpastevalues
Gruß Daniel

Anzeige
AW: ?
23.03.2021 09:46:40
Piet
Hallo Daniel
Sorry, technisch hast du sicher mehr drauf wie ich, aber hier, in dem konkreten Fall, konnte ich mir ein amüsiertes leichtes Stirnrunzeln sicher nicht verkneifen ...
Ganz nebenbei hast du in deinem Code die Funktion Transpose nicht eingebaut! Das muss ich technisch sicher nicht erklaeren, oder?
mfg Piet

AW: ?
23.03.2021 11:38:22
Daniel
Das Transpose ergibt sich, wenn du dir in der Beispieldatei das Blatt Technik anschaust, denn von dort kopiere ich die Daten.
Die Formeln dort braucht man, wenn man den Komfort haben will, nur die zu ändernden Daten neu einzugeben und nicht alle.
Das Transpose ergibt sich dann aus der Anordnung dieser Formeln.
Da diese dort schon entsprechend angeordnet sind, ist das Transpose beim kopieren im Code nicht notwendig.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige