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

VBA Input

VBA Input
16.11.2021 02:35:20
Dieter
Guten Abend miteinander,
ich habe leider ein Problem und hoffe ihr könnt mir helfen.
Ich habe ein Tabellenblatt mit 150.000 Zeilen. diese wird importiert vom System.
Jetzt habe ich das Problem, wenn ich auf dem Filter gehe, dass es nicht alles anzeigen kann, weil es zu viele Zeilen sind.
Jetzt möchte ich gerne,auf einem Button klicken und anschließend kommt die Abfrage," welche Artikelnummer wollen sie Aufgelistet haben "
anschließend gebe ich die Artikelnummer ein und dann werden im Tabellenblatt 2 ab Zeile2 alle ZEILEN aufgelistet wo die Artikelnummer im Tabellenblatt (Tabelle1 )Spalte C befindet. Wichtig ist noch, das die Liste nicht sortiert ist. das heißt die Artikelnummer kann in zeile 3 und Zeile 14553 und Zeile 98655 befinden.
Könnte mir jemand dabei helfen ?
Danke euch an ALLE

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Input
16.11.2021 05:35:50
Hajo_Zi
bei der Abfrage gibst Du Deine Nummer ein, warum nicht auch bei Filtern nach?
GrußformelHomepage
In diesem Forum bekomme nur selten eine Mailbenachrichtigung, weitere Antworten sind zufällig.
AW: VBA Input
16.11.2021 06:56:05
Klaus
Hallo Dieter,
eigentlich sollte der Autofilter funktionieren. Hier aber eine Copy / Filter Funktion, welche ohne den Autofilter auskommt aber ähnlich schnell ist. Ich gehe davon aus dass deine Spalte Z frei ist, wenn nicht musst du den Code anpassen.

Sub Makro1()
On Error GoTo hell
Dim lRow As Long
Dim myArtikel As String
myArtikel = InputBox("Welche Artikelnummer?")
With Tabelle1
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range("Z2:Z" & lRow).FormulaR1C1 = "=1/(RC3" & myArtikel & ")"
.Columns("Z:Z").SpecialCells(xlCellTypeFormulas, 16).EntireRow.Copy
End With
Tabelle2.Range("A2").PasteSpecial
hell:
If Err.Number = 1004 Then MsgBox ("Artikel nicht gefunden")
End Sub
Kurze Erklärung: über viele 100.000 Zeilen eine Schleife und einen IF-THEN-COPY Befehl laufen zu lassen wäre intuitiv warscheinlich einfacher, würde aber enorm langsam sein. Ganz ohne Schleife: Ich ermittle die zu kopierenden Spalten per Formel, indem ich bewusst einen #DIV/0! Fehler entstehen lasse. Dann werden alle Zeilen mit #DIV0! auf einen Schlag kopiert.
LG,
Klaus M.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige