In dem Fall sollte ich mir endlich einmal VBA ansehen, denn in
letzter Zeit könnte ich immer häufiger die Fähigkeit ein Makro
zu erstellen gebrauchen.
daher gleich die nächste Frage:
muss ich einfach VBA lernen …
Guten Tag Roland,
es schadet nicht sich mit Makros etwas zu beschäftigen, der Effizienz wegen. Mit dem Makrorekorder lassen sich schon brauchbare Makrohilfen erzeugen, ohne das man gleich zum VBA-Experten werden muss. Nur am Rand und für die Kritiker: Ich bin kein VBA-Experte! Ich möchte Ihnen trotzdem, nur so zum Lernen, dieses angewande Beispiel geben, denn es ist sehr schwer, bei so wenig Informationen, das Richtige für Sie zu finden. Versuchen Sie es doch! Es stehen Ihnen hier viele wirkliche Experten hilfreich zur Verfügung.
Hier ein kleines, universelles Makro, welches eine sogenannte „tolerante“ Suche ermöglicht. Es gibt die Daten auf ein anderes Blatt aus. Mit > DATEN > FILTER > AUTOFILTER können Sie dann die vorselektierten Daten, feinselektieren.
Die nur allernötigsten Infos habe ich im Makro kommentiert, damit Sie das Makro auf Ihre Konfiguration einstellen können.
Mache Sie zuerst eine Kopie Ihrer Datei! Fügen Sie ein leeres Blatt ein und vergeben Sie den Namen „Selektierung“. Das Blatt, welches Ihre Daten enthält, sollte den Namen „Daten“ haben, oder Sie ändern im unteren Makro den Namen „Daten“ auf Ihren Blatt-Namen um. Eine Rand-Bedingung ist gegeben: Die Zeile über dem Suchbereich (hier optional Zeile 1), sollten irgendwelche Zeichen enthalten. Und der Löschbereich der Selektion bis Zeile 10000, lässt sich nicht beliebig erweiterm. (Probieren)
So erzeugen Sie ein leeres Makro als Basis,
- > EXTRAS > MAKRO > AUFZEICHNEN
- Dem Makro den Namen „Selektieren“ geben
- > EXTRAS > MAKRO > AUFZEICHNEN beenden
- > EXTRAS > MAKRO > MAKROS > wählen Sie das Makro „Selektieren“ aus und dann auf > BEARBEITEN (Sie befinden sich jetzt auf der VBA-Programmierungsebene)
- Löschen Sie einfach den SUB und END SUB Befehl weg.
- Fügen Sie nun das untere komplette Makro ein.
- Wechseln Sie zurück in Excel und erzeugen Sie eine Schaltfläche und ordnen Sie das Makro ihr zu.
( > Ansicht > Symbolleisten > Formular > Schaltfläche)
- Test ausführen
Liebe Grüße
Fablonow i.D.
Dieses Makro kopieren:
Option Explicit
Sub Selektieren()
Dim wks As Worksheet 'Variablen
Dim rngFind As Range, rngRows As Range
Dim sFind As String, sSearch As String
Sheets(„Selektierung“).Select 'Name des Datenblattes, welches die selektierten Daten ausgibt
Range(„A2:Z10000“).Select 'Datenbereichauswahl zum löschen
Selection.ClearContents ’ Hier werden die alten sel. Daten gelöscht
Sheets(„Daten“).Select 'Wechsel zum Blattnamen „Daten“
sSearch = InputBox(„Suchbegriff:“, , „WAS, WIE, WO“) 'Box für die Suchbegriffeingabe
Set rngFind = Cells.Find(sSearch) 'Suchfunktionen
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
sFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = sFind Then Exit Do
Loop
rngRows.Select
rngRows.Copy 'Selektion kopieren
Sheets(„Selektierung“).Select 'wechsel zum Blattnamen „Selektierung“
Range(„A2“).Select ’ ab Zelle A2 wird eingefügt
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
End Sub