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

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, 4576 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

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

Frage von aletri zum Thema VB for Applications ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...