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

Löschen der Zeile, wenn Zelle einen bestimmten Wert beinhaltet

Frage Entwicklung VB for Applications

Mitglied: caffebone11

caffebone11 (Level 1) - Jetzt verbinden

13.12.2011 um 16:46 Uhr, 14946 Aufrufe, 8 Kommentare

Löschen der Zeile, wenn Zelle einen bestimmten Wert beinhaltet

Hallo,

ich habe eine Software-Liste als eine Excel-Datei:
(A-Softwarebezeichnung, B-Hersteller, C-Kommentar usw.)
...
eDrawings 2008 SolidWorks
GNU Ghostscript 7.05
...
Hotfix für Windows XP (KB979306) Microsoft Corporation
Hotfix für Windows XP (KB981793) Microsoft Corporation
...
Sicherheitsupdate für Windows Internet Explorer 7 (KB972260)
Sicherheitsupdate für Windows Internet Explorer 7 (KB972295)
...
Update für Windows XP (KB2467659)
Update für Windows XP (KB2469664)
..
Nun möchte ich die komplette Zeilen, die in A mit "Hotfix" und "Sicherheitsupdate" sowie "Update" beginnen, löschen, also von "Müll-Einträgen" bereinigen.

Es Beispiel habe ich:
Alle leeren Zellen löschen:
01.
Sub DeleteEmptys()  
02.
   Dim rng As Range    
03.
   Application.ScreenUpdating = False  
04.
   For Each rng In ActiveSheet.UsedRange     
05.
      If IsEmpty(rng) Then rng.Delete xlShiftUp   
06.
   Next rng  
07.
   Application.ScreenUpdating = True  
08.
End Sub 
bzw.Löschen aller Zellen in Spalte A mit "hallo" im Text:
01.
Sub DeleteQueryCells()  
02.
   Dim var As Variant    
03.
   Do While Not IsError(var)      
04.
      var = Application.Match("hallo", Columns(1), 0) 
05.
      If Not IsError(var) Then Cells(var, 1).Delete xlShiftUp      
06.
   Loop  
07.
End Sub   
08.
 

Das ist aber nicht das ich brauche.
Für Hilfe Danke!!
Mitglied: cse
13.12.2011 um 17:08 Uhr
So schwer isses gar nicht :


Sub DeleteQueryCells()
Dim var As Variant
Do While Not IsError(var)
var = Application.Match("*hallo*", Columns(1), 0)
If Not IsError(var) Then Cells(var, 1).Delete xlShiftUp
Loop
End Sub

vielleicht findest du es ja :D
Bitte warten ..
Mitglied: bastla
13.12.2011 um 17:10 Uhr
Hallo caffeebone11 und willkommen im Forum!

Für ein Suchwort zB so:
01.
Sub DeleteQueryCells() 
02.
   Do While Not IsError(var) 
03.
      var = Application.Match("Sicherheitsupdate*", Columns(1), 0) 
04.
      If Not IsError(var) Then Rows(var).Delete 
05.
   Loop 
06.
End Sub
Um alle Begriffe durchzugehen, könntest Du das Sub mit Übergabe des Suchwortes als Parameter aufrufen ...

Grüße
bastla
Bitte warten ..
Mitglied: caffebone11
13.12.2011 um 17:29 Uhr
Das ging aber schnell. Vielen Dank!!!

Ich habe eigentlich so um 10 Begriffen, die ich gerne löschen möchte.
Mehrere var-Variablen helfen an der Stelle nicht oder?
01.
... 
02.
Do While Not IsError(var) 
03.
      var = Application.Match("Sicherheitsupdate*", Columns(1), 0)  
04.
      var1 = Application.Match("Hotfix*", Columns(1), 0)  
05.
      If Not IsError(var) Then Rows(var).Delete 
06.
      If Not IsError(var1) Then Rows(var1).Delete 
07.
Loop 
08.
...
Grüße
caffeebone11
Bitte warten ..
Mitglied: bastla
13.12.2011 um 17:36 Uhr
Hallo caffebone11!
Mehrere var-Variablen helfen an der Stelle nicht oder?
Genau deswegen gibt es Schleifen ...

... etwa (ungetestet):
01.
Sub WegDamit() 
02.
Begriffe = Array("Sicherheitsupdate*", "Hotfix*", "Update*") 
03.
 
04.
For Each Begriff In Begriffe 
05.
   Do While Not IsError(var) 
06.
      var = Application.Match(Begriff, Columns(1), 0) 
07.
      If Not IsError(var) Then Rows(var).Delete 
08.
   Loop 
09.
Next 
10.
End Sub
Den "*" müsstest Du nicht unbedingt für jeden Suchbegriff mit eingeben, wenn in allen Fällen das gesuchte Wort am Anfang der Zelle steht - dann könntest Du die Zeile 6 auch so schreiben:
var = Application.Match(Begriff & "*", Columns(1), 0)
Grüße
bastla
Bitte warten ..
Mitglied: caffebone11
14.12.2011 um 13:52 Uhr
Hallo Bastla,

erst mal vielen Dank!
Mit der Schleife funktioniert es noch nicht ganz. Gelöscht wird nur der erste Begriff....
Hättest Du eine Idee?

Grüße
caffebone11
Bitte warten ..
Mitglied: 76109
14.12.2011 um 20:46 Uhr
Bitte warten ..
Mitglied: bastla
14.12.2011 um 21:51 Uhr
Hallo caffeebone11!

Füge vor Zeile 5 noch ein:
var = 0
damit "var" einen "Nicht-Fehler-Wert" enthält und die "While"-Schleife (neuerlich) durchlaufen werden kann ...

Grüße
bastla
Bitte warten ..
Mitglied: caffebone11
15.12.2011 um 08:01 Uhr
Hallo Bastla,

jetzt läuft das Script bestens! Vielen Dank!!!!!!


Viele Grüße
cafeebone11
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Microsoft Office
Outlook 2016 in Ordneransicht starten - GPO (9)

Frage von D-Line zum Thema Microsoft Office ...