Teil einer Excel-Datei exportieren
Hallo,
folgendes Anliegen:
Ich erhalte täglich eine Excel-Datei (Office 2003), in der ab Zelle "I 2" Postleitzahlen eingetragen sind. Die Spalte ist unterschiedlich lang, also bis "I 10" oder auch "I 20".
Nun möchte ich, dass ein kleines Programm diese Postleitzahlen "scannt" und bestimmte Postleitzahlen, die mit 2 bestimmten Zahlen beginnen, also z.B. "91xxx"" oder "89xxx", herausfiltert. Dieser herausgefilterte Datensatz soll dann in eine neue Excel-Tabelle exportiert werden und für einen Monat laufend fortschrieben werden.
Keine Ahnung, wie so etwas geht. Habe Grundkenntnisse in Excel, aber nicht in solchen Sachen, leider auch nicht in VBA, falls das nötig sein sollte. Wenn jemand helfen möchte, benötige ich also eine Anleitung für "Fast-GAU`s".
Danke schön in voraus.
mfg
sharino
Antwort schreiben
Antwort 2 von coros vom 27.10.2019, 16:37 Options
Hallo sharino,
nachfolgend ein Beispielmakro, das die Spalte I nach den ersten beiden Zahlen durchsucht. Wurde eine Übereinstimmung gefunden, wird die gesamte Zeile in ein vorher automatisch erzeugtes Tabellenblatt mit dem Namen "Auswertung" in die erste freie eile kopiert. Die Zahlen, für die eine Übereinstimmung gefunden werden soll, werden in ein Eingabefenster, dass zum ANfang des Makros eingeblendet wird, eingetragen.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
[b]Option Explicit
Sub Filtern()
Dim rngCell As Range
Dim Wert As Variant
Dim iSheet As Integer
Dim aktSheetName As String
Application.ScreenUpdating = False
aktSheetName = ActiveSheet.Name
Wert = InputBox("Bitte geben Sie die beiden Anfangszahlen des zu filternden Postleitzahlenbereich an")
For iSheet = 1 To Worksheets.Count
If Sheets(iSheet).Name = "Auswertung" Then
GoTo Weiter
End If
Next
With Worksheets.Add
.Name = "Auswertung"
End With
Weiter:
For Each rngCell In Sheets(aktSheetName).Range("I2:I" & Sheets(aktSheetName).Range("I65536").End(xlUp).Row)
If Left(rngCell, 2) = Wert Then
Sheets(aktSheetName).Rows(rngCell.Row).Copy
Sheets("Auswertung").Cells(Sheets("Auswertung").Range("I65536").End(xlUp).Offset(1, 0).Row, 1).PasteSpecial
End If
Next
End Sub
[/b]
Ich hoffe, Du kommst klar.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von sharino vom 27.10.2019, 16:57 Options
Hallo Oliver,
besten Dank für Deine Hilfe, ich probiere das morgen gleich aus.
mfg
sharino