Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
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

target.offset = "" für mehrere Zellen?

target.offset = "" für mehrere Zellen?
24.09.2021 17:17:51
ObiWanPaps
In einer Erfassungsdatei verwende ich die Worksheet_Change(ByVal Target As Range) Funktion.
Allerdings braucht das Makro stellenweise mega lange bis es fertig ist und der Anwender weitermachen kann.
Vorne weg allgemeine Fragen.
1. Sollte man bei jeder Anweisung, die Zellinhaltänderung mit sich bringt Application.EnableEvents = False vor und Application.EnableEvents = true nach der Änderung angeben?
2. Sollte man zusätzlich jedes mal auch Application.ScreenUpdating = False bzw. true verwenden?
3. Wie kann ich mehrere Zellinhalte mit einem Befehl löschen? Geht das überhaupt? Aktuell habe ich mehrere Target.Offset(0, ...).Value = "" hintereinander. Siehe Code in fett.
4. Zellinhalt löschen eher mit dem Befehl empty oder mit "" ?
5. Zellfarbenänderung benötigt kein Application.EnableEvents = False bzw. true?
Kann mir hier bitte jemand auf die Sprünge helfen?
An sich ist die Worksheet_change Geschichte eine tolle Sache, aber aktuell hat nach Überarbeitung meiner Datei sich die Laufzeit/Reaktion des Makros mega verschllechtert.
Code:

If Target.Column = 11 Then    'Fzg.-Art   WKZ
'Stop
If Target.Value = Empty Then
Target.Offset(0, 0).Interior.ColorIndex = 3
End If
If Target.Value = "704" _
And Target.Offset(0, -2).Value  "A" Then
Application.EnableEvents = False
Target.Offset(0, -2).Value = "A"   'Alternative rot markieren
Application.EnableEvents = True
End If
If Target.Value  Empty Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Target.Offset(0, 6).Value = ""
Target.Offset(0, 7).Value = ""
Target.Offset(0, 8).Value = ""
Target.Offset(0, 10).Value = ""
Target.Offset(0, 11).Value = ""
Target.Offset(0, 12).Value = ""
Application.EnableEvents = True
End If
If Target.Value = "401" _
Or Target.Value = "411" Then
Application.EnableEvents = False
Target.Offset(0, 6).Value = "9999"
Target.Offset(0, 6).Interior.ColorIndex = 37
Application.EnableEvents = True
End If
If Target.Value = "551 S" Then
Application.EnableEvents = False
Target.Offset(0, 10).Value = ""
Target.Offset(0, 10).Interior.ColorIndex = 3
Application.EnableEvents = True
Else
Application.EnableEvents = False
Target.Offset(0, 10).Value = ""
Target.Offset(0, 10).Interior.ColorIndex = 37
Application.EnableEvents = True
End If
Application.EnableEvents = False
Target.Offset(0, 11).Value = ""
Target.Offset(0, 11).Interior.ColorIndex = 37
Target.Offset(0, 12).Value = ""
Target.Offset(0, 12).Interior.ColorIndex = 37
Application.EnableEvents = True
Application.EnableEvents = False
                   Target.Offset(0, 15).Value = ""
Target.Offset(0, 16).Value = ""
Target.Offset(0, 17).Value = ""
Target.Offset(0, 18).Value = ""
Target.Offset(0, 19).Value = ""
Target.Offset(0, 20).Value = ""
Target.Offset(0, 21).Value = ""
Target.Offset(0, 22).Value = ""
Target.Offset(0, 23).Value = ""
Target.Offset(0, 24).Value = ""
Target.Offset(0, 25).Value = ""
Target.Offset(0, 26).Value = ""
Target.Offset(0, 27).Value = ""
Target.Offset(0, 28).Value = ""
Target.Offset(0, 29).Value = ""
Target.Offset(0, 30).Value = ""
Target.Offset(0, 31).Value = ""
Target.Offset(0, 32).Value = ""
Target.Offset(0, 33).Value = ""
Target.Offset(0, 34).Value = ""
Target.Offset(0, 35).Value = ""
Target.Offset(0, 38).Value = ""
Target.Offset(0, 39).Value = ""
Application.EnableEvents = True
Target.Offset(0, 15).Interior.ColorIndex = 37
Target.Offset(0, 16).Interior.ColorIndex = 37
Target.Offset(0, 17).Interior.ColorIndex = 37
Target.Offset(0, 18).Interior.ColorIndex = 37
Target.Offset(0, 19).Interior.ColorIndex = 37
Target.Offset(0, 20).Interior.ColorIndex = 37
Target.Offset(0, 21).Interior.ColorIndex = 3
Target.Offset(0, 22).Interior.ColorIndex = 37
Target.Offset(0, 23).Interior.ColorIndex = 37
Target.Offset(0, 24).Interior.ColorIndex = 37
Target.Offset(0, 25).Interior.ColorIndex = 37
Target.Offset(0, 26).Interior.ColorIndex = 37
Target.Offset(0, 27).Interior.ColorIndex = 37
Target.Offset(0, 28).Interior.ColorIndex = 37
Target.Offset(0, 29).Interior.ColorIndex = 37
Target.Offset(0, 30).Interior.ColorIndex = 37
Target.Offset(0, 31).Interior.ColorIndex = 37
Target.Offset(0, 32).Interior.ColorIndex = 37
Target.Offset(0, 33).Interior.ColorIndex = 37
Target.Offset(0, 34).Interior.ColorIndex = 37
Target.Offset(0, 35).Interior.ColorIndex = 37
'                    Application.EnableEvents = True
End If
Call Ausstieg
Exit Sub
End If
'*                         Spalte 11   WKZ    ENDE
'*******************************************************************************

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: target.offset = "" für mehrere Zellen?
24.09.2021 17:24:06
Hajo_Zi
zu 1 ja
Range(Target.Offset(0, 6), Target.Offset(0, 12)).clearcontents
GrußformelHomepage
In diesem Forum bekomme ich kein Mailbenachrichtigung, weitere Antworten sind zufällig.
AW: target.offset = "" für mehrere Zellen?
24.09.2021 18:21:00
Stefan
Hallo Hajo.
vielen Dank für den Befehl und die Antwort zu 1.
Könntest Du mir auch etwas zu 2 und 4 sagen?
2. Sollte man zusätzlich jedes mal auch Application.ScreenUpdating = False bzw. true verwenden?
4. Zellinhalt löschen eher mit dem Befehl empty oder mit "" ? Oder egal?
Danke und Grüße Stefan
Anzeige
AW: target.offset = "" für mehrere Zellen?
24.09.2021 18:38:50
Hajo_Zi
ich bin dann raus, da meine Beitrag nicht komplett gelesen wurde.
Das wird schon seinen Grund haben.
Ich schreibe nicht für den Papierkorn. Ich bin dann raus.
Viel Erfolg noch.
Gruß Hajo

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige