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, 10417 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
Ähnliche Inhalte
Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...