Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Aufgrund eines Zeichens, komplette Zeile löschen

Frage Entwicklung VB for Applications

Mitglied: n10n50

n10n50 (Level 1) - Jetzt verbinden

10.11.2009 um 15:39 Uhr, 4616 Aufrufe, 2 Kommentare

Schönen Nachmittag!

Ich hätte eine Frage bezüglich Excel/VBA.

Ich habe eine Excel Datei die aus >8000 Zeilen gesteht.
In manchen Zeilen habe ich jetzt Telefonnummern und/oder E-Mail Adressen stehen...
Diese will ich aber nicht haben. - Ist es der Fall dass in einer Zeile eine Telefonnummer oder E-Mail Adresse vorkommt, steht diese auf alle Fälle in der Zelle A.
D.h. ich würde jetzt gerne all jene Zeilen löschen, in denen in der Zelle A entweder ein +43 oder ein @ vorkommt natürlich werden hier auch Wildcards benötigt.

Hat jemand so ein Codesnippet für mich? - Leider bin ich in VBA nicht so bewandt :S


Lg
Mitglied: bastla
10.11.2009 um 16:06 Uhr
Hallo n10n50 und willkommen im Forum!
Leider bin ich in VBA nicht so bewandt :S
VBA brauchst Du eigentlich gar nicht - einfach in einer freien Spalte die Formel
=SUCHEN("+43";A1)
eintragen, nach unten kopieren und (unter Nichtbeachtung der Fehlermeldungen ) nach dieser Spalte sortieren - jetzt stehen alle entsprechenden Zeilen in einem Block untereinander und Du kannst sie bequem löschen.

Das Ganze funktioniert natürlich auch mit
=SUCHEN("@";A1)
Sollte es wichtig sein, die ursprüngliche Reihenfolge der Zeilen wieder herstellen zu können, einfach vorweg in die ersten beiden Zellen einer weiteren freien Spalte die Werte 1 und 2 eintragen, beide Zellen markieren und nach unten ausfüllen. Nach dem oben beschriebenen Löschvorgang wieder nach dieser Nummerierungsspalte sortieren ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
10.11.2009 um 17:16 Uhr
Hallo von n10n50 und Hallo bastla!

Und wenn's doch ein Makro sein soll, dann diesen Quelltext:
01.
Const SheetName = "Tabelle1" 
02.
 
03.
Sub DeleteLine() 
04.
    Dim i As Long, EndLine As Long 
05.
     
06.
    Sheets(SheetName).Activate 
07.
     
08.
    EndLine = Cells(Rows.Count, "A").End(xlUp).Row 
09.
     
10.
    For i = 1 To EndLine 
11.
        If i > EndLine Then Exit For 
12.
        If Cells(i, "A") Like "*+49*" Or Cells(i, "A") Like "*@*" Then 
13.
            Rows(i).Delete:  i = i - 1:  EndLine = EndLine - 1 
14.
        End If 
15.
    Next 
16.
End Sub 
17.
 
im VB-Editor in Modul 1 kopieren, den Tabellennamen (SheetName) anpassen und VB-Editor schließen.
In Excel unter <Extras><Makro><Makros><DeleteLine> starten.

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Komplette Zeile aus Textdatei auslesen (3)

Frage von tegwert zum Thema Batch & Shell ...

Entwicklung
gelöst Zeile in CSV löschen (3)

Frage von Alex1809 zum Thema Entwicklung ...

Batch & Shell
Batsch doppelte Zeile in in Text finden und eine löschen (10)

Frage von GNLen1 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel: viele leere Zeilen zwischendurch - effizient löschen? (9)

Frage von PixL86 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

(4)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(4)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(8)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...