Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen löschen

Zellen löschen
14.10.2007 20:29:00
DieterG
Hallo und guten Abend,
ich weis nicht mehr, wo ich dieses Makro gefunden habe.
Habe schon versucht es selber umzubauen, klappt aber irgendwie nicht.
Wer kann das Makro so umbauen, daß alle Zellen mit "hallo" nur in einen bestimmten Bereich z.B. "B3:G15" gelöscht werden?
Danke schon mal im Voraus
Gruß Dieter
'' Löschen aller Zellen in Spalte A mit "hallo" im Text

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


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen löschen
14.10.2007 20:37:00
Josef
Hallo Dieter,
ungetestet.
Sub ZellenLoeschen()
Dim rng As Range, rngU As Range
Dim strFirst As String, strFind As String

strFind = "Hallo"

Set rng = Range("B3:G15").Find(What:=strFind, LookAt:=xlWhole)

If Not rng Is Nothing Then
    
    strFirst = rng.Address
    
    Do
        
        If rngU Is Nothing Then
            Set rngU = rng
        Else
            Set rngU = Union(rngU, rng)
        End If
        
        Set rng = Range("B3:G15").FindNext(rng)
        
    Loop While Not rng Is Nothing And rng.Address <> strFirst
    
End If

If Not rngU Is Nothing Then rngU.Delete

Set rng = Nothing
Set rngU = Nothing

End Sub

Gruß Sepp

Anzeige
AW: Zellen löschen
14.10.2007 20:45:00
Uduuh
Hallo,
application.match kannst du nur in einer 1-spaltigen Matrix verwenden.

Sub hallo_weg()
Dim c As Range
For Each c In Range("B3:G100")
If c = "hallo" Then c.Delete shift:=xlUp
Next
End Sub


Gruß aus’m Pott
Udo

AW: Zellen löschen
14.10.2007 21:42:52
Daniel
Hi
wenn es gibt noch ne möglichkeit, die Hallos zu löschen, die idR schneller ist als die schon genannten schleifen zum durchsuchen der Zellen:

Sub löschen_Hallo1()
On Error Resume Next
With Range("B3:G215")
.Replace "Hallo", True, xlWhole
.SpecialCells(xlCellTypeConstants, 4).Delete shift:=xlUp
End With
On Error GoTo 0
End Sub


Diese Variante geht aber nur unter zwei bedingungen:
1. "hallo" ist ein Fixwert und wird nicht durch eine Formel erzeugt
2. die Tabelle enthält ansonsten keine fixen Wahrheitswerte
Gruß, Daniel

Anzeige
nimm Sepps Code
14.10.2007 21:45:52
Uduuh
Hallo,
meiner löscht u.U. nicht vollständig.
Gruß aus’m Pott
Udo

AW: nimm Sepps Code
15.10.2007 00:25:17
Daniel
Hi Uduuh
wieso vermutest du, dein code könnte nicht vollständig löschen?
wenn du bei dir noch die Bildschirmaktualisierung abschaltest, ist dein Code fast so schnell wie meiner, Sepps ist der langsamste, und geht bei grossen Datenmengen (1000 Zeilen und mehr) indiskutabel in die Knie.
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige