Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeilen löschen, wenn diese bestimmte Kriterien nicht erfüllen

Frage Microsoft Microsoft Office

Mitglied: arndttob

arndttob (Level 1) - Jetzt verbinden

10.03.2010, aktualisiert 13:29 Uhr, 10574 Aufrufe, 6 Kommentare

Hallo Programmierer,
ich habe wiedermal eine Bitte an euch.
Habe versucht mir die Antworten per Google einzuholen, hat aber nichts geholfen.
Nun hoffe ich auf eure Hilfe

undzwar habe ich eine Tabelle mit etlichen Zeilen und viele davon werden nicht benötigt.

Über Spalte E sollen alle Zeilen gelöscht werden, welche NICHT "1, 5, 12 oder 15" enthalten.

Könnt Ihr mir bei dem Problem helfen?
Wäre euch sehr dankbar.

Viele Grüße
Tobi
Mitglied: H41mSh1C0R
10.03.2010 um 14:20 Uhr
Hallo Tobi,

Was brauchst du alles?:

- eine Schleife die deine Spalte E durchläuft bis der letzte Eintrag erreicht ist
- Wertevergleich der die Zelle mit 1, 5, 12 oder 15 vergleicht
- Befehl zum Zeile entfernen
Rows("zeile:zeile").Select
Selection.Delete Shift:=xlUp

Das Ganze packst du in ein Makro und führst es aus =).

Kleiner Tip: für viele Sachen ist der Makrorecorder dein Bester Freund.

Grüße
Bitte warten ..
Mitglied: 76109
10.03.2010 um 14:32 Uhr
Hallo Tobi!

In Spalte E wird der Inhalt mit den Suchbegriffen im Suchtext (durch Kommata getrennt) verglichen.

Im Suchtext kann auch das "*"-Zeichen für einen Teil-Text-Vergleich verwendet werden z.B.:
Suchtext = "Clienttest, Clientv3, EUC, EUC_I_IS, EUC_CU_SFS" oder Suchtext = "Client*, EUC*"

Oder z.B. "Das ist ein Wort innerhalb eines Textes"
Suchtext = "*Wort*"
wird auch als Übereinstimmung gewertet.

Außerdem stehen noch das "?"-Zeichen für 1 beliebiges Zeichen und das Zeichen "#"-Zeichen für 1 beliebigen numerischen Wert zur Verfügung.

Quellcode im VB-Editor in ein Modul kopieren und Konstanten entsprechend anpassen:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Const SheetNamen = "Tabelle1" 
05.
Const SuchSpalte = "E" 
06.
 
07.
Const Suchtext = "Clienttest, Clientv3, EUC, EUC_I_IS, EUC_CU_SFS" 
08.
 
09.
Sub DeleteLine() 
10.
    Dim Text As Variant, Found As Boolean, i As Long, EndLine As Long, s As Integer 
11.
     
12.
    Sheets(SheetNamen).Activate 
13.
     
14.
    EndLine = Cells(Rows.Count, SuchSpalte).End(xlUp).Row 
15.
     
16.
    Text = Split(Suchtext, ",") 
17.
     
18.
    Application.ScreenUpdating = False 
19.
 
20.
    For i = 1 To EndLine 
21.
        If i > EndLine Then Exit For 
22.
        Found = False 
23.
        For s = 0 To UBound(Text) 
24.
            If Cells(i, SuchSpalte) Like Trim(Text(s)) Then Found = True:  Exit For 
25.
        Next 
26.
        If Found = False Then Rows(i).Delete:  i = i - 1:  EndLine = EndLine - 1 
27.
    Next 
28.
    Application.ScreenUpdating = True 
29.
End Sub
Gruß Dieter

PS. Also der Beitrag wurde geändert und mein Code-Beispiel entspricht dem vorherigen Text???? Ist aber auch egal
Bitte warten ..
Mitglied: arndttob
10.03.2010 um 14:33 Uhr
Hallo H41mSh1C0R

ich würde es am Liebsten so haben:
Zeile 1 Spalte G wird angeschaut
Wenn dieser Eintrag keine 1, 5, 12 oder 15 ist, wird die gesamte Zeile gelöscht.
Zeile 2 Spalte G wird angeschaut
Wenn dieser Eintrag keine 1, 5, 12 oder 15 ist, wird die gesamte Zeile gelöscht.
Zeile 3 Spalte G...
usw

Mit dem Makrorecorder habe ich mich auch schon auseinander gesetzt.
Aber bei ca. 300 Zeilen ist das eine happige Angelegenheit

Aber auf jedenfall vielen Dank für deine Hilfe
Bitte warten ..
Mitglied: RedWraith
10.03.2010 um 14:33 Uhr
Also, wenn zum Beispiel in E:36 eine "15" steht, dann soll die gesamte Zeile 36 entfernt werden ?

ZOMG: Während Ich mein Miniposting geschrieben habe, waren jede Menge andere Leute schneller...
Bitte warten ..
Mitglied: arndttob
10.03.2010 um 15:02 Uhr
Super genau so wollte ich es haben @ didi

vielen Dank für eure schnelle spitzenmäßige Hilfe ;)

Habt Dank
Gruß
Tobi
Bitte warten ..
Mitglied: 76109
10.03.2010 um 15:05 Uhr
Hallo Tobi!

Yepp, gern geschehen

Gruß Dieter

PS. Zeile 14 geändert von Spalte A nach SuchSpalte
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

Batch & Shell
gelöst Zeilen in TXT mit Leerzeichen auf eine bestimmte Länge auffüllen (4)

Frage von stingray14k zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Outlook & Mail
gelöst Bestimmte Anhänge bei E-mails mit Exchange 2010 löschen (5)

Frage von jojo0411 zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...