Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1224to1228
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

Werte suchen (Eingabe)&dann ganze Zeile löschen

Werte suchen (Eingabe)&dann ganze Zeile löschen
Bubu
Hallo zusammen,
ich habe folgendes Problem, von dem ich hoffe hier befreit zu werden.
Ich habe eine täglich wechselnde Liste mit ausgehenden Flügen eines Flughafen (an die 400 Flüge). Jeder Flug hat mindestens 1, über 2 bis manhmal 3 verschiedene Abflugszeiten, die sich falls vorhanden in unterschiedlichen Zeilen befinden.
So sieht Blatt 1 ungefähr aus:

Mein Wunsch ist es nun - Flüge, die fälschlicherweise in diese Exceldatei exportiert werden zu löschen (täglich an die 30-40). Dabei ist es allerdings wichtig nicht nur die nach dem Zahlen Kürzel des Fluges (Spalte 3) zu suchen sondern auch die Airline (Spalte 2) mit abzugleichen, da manchmal Flüge die gleichen Kürzel haben aber von unterschiedlichen Airlines sind.
Ich möchte gerne eine Eingabe haben, die mir ermöglicht folgenden Ablauf zu generieren:
Makro wird gestartet und es wird gefragt nach welcher Airline gesucht werden soll. danach werden die Flüge (bspw. 4563; 3456; 9372; 4924 usw.) durch ein "," oder sonst irgendwie voneinander getrennt können eingegeben. hierbei müsste dann beachtet werden, dass es zu jedem Flug, wie erwähnt bis zu drei Flügen gibt und so die Schleife 3 mal bei jeder Zahl durchlaufen werden müsste.
Am Ende wäre eine Anzeige schön, die mir anzeigt welche Daten denn nun rausgelöscht wurden.
Bißher bin ich mit eigener Kraft bis zu diesem Punkt gekommen - nicht ausgerift genug und für weiteres fehlt mir einfach das wissen.
Sub DeleteAirBerlinFundidos()
Dim i As Integer
Dim lz As Integer
Dim SuBe1 As String
Dim SuBe2 As String
On Error Resume Next
SuBe1 = InputBox("Which flight should be deleted?")
lz = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lz
If Sheets(1).Cells(i, 3).Value = SuBe1 And Sheets(1).Cells(i, 2).Value = "BER" Then
End If
Next i
End Sub
das Problem hierbei - ich muss jedes mal bspw. die Flugnummer eingeben, Enter drücken, Flugnummer eingeben enter drücken und außerdem immer der Value hier "BER" abändern wenn ich eine andere Airline suche.
Vielen Dank im Voraus für alle Antworten und Hilfestellungen.
AW: Werte suchen (Eingabe)&dann ganze Zeile löschen
03.08.2011 20:55:32
Josef

Hallo ?,
wie wäre es mit einer Beispieldatei?

« Gruß Sepp »

AW: Werte suchen (Eingabe)&dann ganze Zeile löschen
03.08.2011 22:35:24
Bubu
hey,
klar...
hier die Datei.

Die Datei https://www.herber.de/bbs/user/76013.xlsm wurde aus Datenschutzgründen gelöscht


Gruß
Anzeige
AW: Werte suchen (Eingabe)&dann ganze Zeile löschen
03.08.2011 23:46:30
fcs
Hallo Bubu,
in 2 geschachtelten Do-Loop-Schleifen kann man per Input-Box immer erst die Airline wählen dann die Flugnummer(n) eingeben. Flugnummern können einzeln oder getrennt durch Semikolon eingegeben werden. Die gelöschten EInträge kann man in einem Datenarray sammeln und als Zusammenfasung anzeigen.
Nachfolgend dein Makro entsprechend ergänzt und angepasst.
Ich würde das an deiner Stelle aber etwas anders angehen.
1. In der nächsten freien Spalte (9) per Formel ZÄHLENWENN auswerten ob Flugnummern in Spalte C mehrfach vorkommen.
Formel in J1: =WENN(ZÄHLENWENN($C$1:$C$600;C1)>1;"Ja";"Nein")
kann man per Makro machen.
2. Die nächste freie Spalte nutzen, um die zu löschenden Zeilen zu markieren.
3. Per AutoFilter die notwendigen Selektionen machen
3.a In Spalte 9 den Filter auf "Ja" setzen. Nur noch die mehrfach vorkommenden Flüge werden angezeigt
3.b Filter auf Airline oder Flugnummer setzen , evtl. macht es auch Sinn, die Liste nach den Flugnummern zu sortieren.
4. In Spalte 10 ein "x" eintragen (oder anderes Zeichen) um zu löschende Zeilen zu markieren.
5. markierte Zeilen per Makro Löschen.
Gruß
Franz
Sub DeleteFundidos()
Dim i As Integer
Dim lz As Integer
Dim SuBe1 As String, vSube1, K As Integer
Dim SuBe2 As String
Dim vGeloescht() As String, j As Integer, sMsg As String, sAirline As String
On Error Resume Next
Do
SuBe2 = InputBox("For which airline flightnumbers should be deleted?", _
"Selection - Airline")
If SuBe2 = "" Then Exit Do
Do
SuBe1 = InputBox("Which flight of """ & SuBe2 & """ should be deleted?" _
& vbLf & vbLf & "Separate more than 1 flightnumber by a colon (e.g.: 1234;2345)", _
"Selection - Flightnumber """ & SuBe2 & """")
If SuBe1 = "" Then Exit Do
vSube1 = Split(SuBe1, ";")
lz = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For K = LBound(vSube1) To UBound(vSube1)
For i = lz To 1 Step -1
With Sheets(1)
If .Cells(i, 3).Value = vSube1(K) And .Cells(i, 2).Value = SuBe2 Then
j = j + 1
ReDim Preserve vGeloescht(1 To 2, 1 To j)
vGeloescht(1, j) = SuBe2
vGeloescht(2, j) = vSube1(K)
.Rows(i).Delete
End If
End With
Next i
Next K
Erase vSube1
Loop
Loop
If j = 0 Then
MsgBox "No flightnumbers have been deleted", vbInformation, "Deleted flights - Summary"
Else
sMsg = "Deleted flights"
For i = 1 To j
If sAirline = vGeloescht(1, i) Then
sMsg = sMsg & " - " & vGeloescht(2, i)
Else
sMsg = sMsg & vbLf & vGeloescht(1, i) & ": " & vGeloescht(2, i)
sAirline = vGeloescht(1, i)
End If
Next i
Erase vGeloescht
MsgBox sMsg, vbInformation, "Deleted flights -Summary"
End If
End Sub

Anzeige
AW: Werte suchen (Variante über Autofilter)
04.08.2011 01:27:55
fcs
Hallo Bubu,
hier deine Datei mit der von mir beschriebenen Variante mit 2 Hilfspalten und Nutzung der Autofilterfunktion zu Selektion von Datenzeilen.
https://www.herber.de/bbs/user/76015.xlsm
Gruß
Franz
AW: Werte suchen (Eingabe)&dann ganze Zeile löschen
04.08.2011 21:33:25
Bubu
Sowohl an Josef als auch an fcs EIN GANZ GROoooosses DAnkeschön! bin begeistert der schnellen Hilfe wegen und bedanke mich!!! Klappt perfekt - alle 3 varianten!
Danke!

342 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige