Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
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
Inhaltsverzeichnis

Anpassung eines VBA Script

Anpassung eines VBA Script
Felix
Hallo,
ich habe folgendes VBA Script gefunden welches in meiner Excel Datei bestimmte wörter löschen soll. Jedoch klappen hiermit 2 Sachen nicht.
1. Ich möchte gerne mehrere Wörter löschen als nur "Test1" z.b. noch "Test2" "Test3" und "Test4"
2. Das Script soll permanent laufen und die Wörter sofort erkennen und löschen wenn diese in Excel eingetragen werden...
Kann mir damit bitte jemand weiterhelfen? Habe schon alles mögliche getestet aber bekomme es leider nicht hin...
vielen Dank

Sub Zellen()
Dim Zelle As Range
'Hier deine Range in deinem Sheet anpassen
For Each Zelle In Sheets("Tabelle1").Range("A1:D200")
Zelle = Replace(Zelle, "Test1", "")
Application.EnableEvents = False
Next
Application.EnableEvents = True
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Anpassung eines VBA Script
03.01.2011 22:11:51
Felix
Ich habe es hin bekommen dass mehrere Wörter gelöscht werden. Nun muss das Script nurnoch so bearbeitet werden dass es permanent läuft und die Wörter somit sofort replaced... wie muss das aussehen?

Sub Zellen()
Dim Zelle As Range
'Hier deine Range in deinem Sheet anpassen
For Each Zelle In Sheets("Tabelle1").Range("A1:D200")
Zelle = Replace(Zelle, "Test1", "")
Zelle = Replace(Zelle, "Test2", "")
Zelle = Replace(Zelle, "Test3", "")
Application.EnableEvents = False
Next
Application.EnableEvents = True
End Sub

AW: Anpassung eines VBA Script
03.01.2011 22:14:12
ransi
HAllo
Trägst du die Worte von HAnd ein oder werden sie mit einer Formel oder per Datenabfrage odert sonstwie eingetragen ?
ransi
Anzeige
AW: Anpassung eines VBA Script
03.01.2011 22:35:40
Felix
Ich trage die wörter per Hand ein. Diese sollen dann sofort gelöscht werden wenn ich diese eintrage. Es klappt alles wunderbar bis auf dass es sofort passiert... ich muss das Makro immer manuell starten es soll jedoch sofort passieren.
Ransi ich habe noch einen zweiten Auftrag für dich gegen Bezahlung. Wie kann ich dich am besten kontaktieren? Hast du MSN Messenger oder Skype?
danke
AW: Anpassung eines VBA Script
03.01.2011 22:41:09
Holger
Hallo Felix,
für Problem Nr 1 brauchst du das Worksheet Change Ereignis
mit Abfrage des zu überwachenden Rangebereiches.
Falls Ransi nicht rechtzeitig antwortet, kann ich Dir den Code
aus einem meiner Projekte raussuchen.
Kannst du ihn anpassen, also den Range selber definieren?
Anzeige
AW: Anpassung eines VBA Script
03.01.2011 22:45:17
ransi
Hallo felix
das strickmuster ist das gleiche wie heute morgen.
https://www.herber.de/forum/messages/1193685.html
nur das pattern ist etwas anders.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Regex As Object
    Dim dieWorte As Variant
    Dim Zelle As Range
    Set Regex = CreateObject("Vbscript.Regexp")
    dieWorte = Array("Test", "Wort", "Ich", "Du", "Er", "Sie", "Es")
    Application.EnableEvents = False
    With Regex
        .Global = True
        .Pattern = "(" & Join(dieWorte, "|") & ")"
        For Each Zelle In Target.Cells
            Zelle.Value = .Replace(Zelle.Value, "")
        Next
    End With
    Application.EnableEvents = True
End Sub


ransi
Anzeige
AW: Anpassung eines VBA Script
04.01.2011 08:47:38
Felix
leider funktioniert es nicht ransi. Es erscheint immer die Fehlermeldung "Fehler beim kompilieren" Mehrdeutiger Name: Worksheet_Change
ich habe das komplette Script zusammen mit dem alten Script in die Tabelle1 im VB Editor kopiert.
Der Code der Tabelle 1 sieht somit folgendermaßen aus:

' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim Bereich As Range
Dim Regex As Object
Set Bereich = Intersect(Target, Range("A1:D200"))
If Bereich Is Nothing Then Exit Sub
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.Pattern = "[^A-Za-zÄÖÜäöüß\d-,€%]"
.Global = True
.IgnoreCase = False
.MultiLine = False
Application.EnableEvents = False
For Each Zelle In Bereich
Zelle.Value = .Replace(Zelle.Text, "")
Next
End With
Application.EnableEvents = True
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Regex As Object
Dim dieWorte As Variant
Dim Zelle As Range
Set Regex = CreateObject("Vbscript.Regexp")
dieWorte = Array("Test", "test123", "test234", "test432", "test6567", "test321", "test654")
Application.EnableEvents = False
With Regex
.Global = True
.Pattern = "(" & Join(dieWorte, "|") & ")"
For Each Zelle In Target.Cells
Zelle.Value = .Replace(Zelle.Value, "")
Next
End With
Application.EnableEvents = True
End Sub

Anzeige
AW: Anpassung eines VBA Script
04.01.2011 09:48:41
ransi
HAllo Felix
DAnn musst du beide Codes hintewreinander abarbeiten.
Versuch mal:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zelle As Range
    Dim Bereich As Range
    Dim Regex As Object
    Dim dieWorte As Variant
    Set Bereich = Intersect(Target, Range("A1:D200"))
    If Bereich Is Nothing Then Exit Sub
    dieWorte = Array("Test", "test123", "test234", "test432", "test6567", "test321", "test654")
    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .Pattern = "[^A-Za-zÄÖÜäöüß\d-,€%]"
        .Global = True
        .IgnoreCase = False
        .MultiLine = False
        Application.EnableEvents = False
        For Each Zelle In Bereich
            Zelle.Value = .Replace(Zelle.Text, "")
        Next
        .Pattern = "(" & Join(dieWorte, "|") & ")"
        For Each Zelle In Target.Cells
            Zelle.Value = .Replace(Zelle.Value, "")
        Next
    End With
    Application.EnableEvents = True
End Sub


ransi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige