AW: wow
11.02.2006 00:40:53
Korl
Hallo Nils und Micha,
ich habe mal die Abschaltapplicationen von Nils in Michas Code eingebaut, der jetzt so aussieht:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
Dim strZuÄndern As String, strFrage As String
Dim lngOldCalculation As Long
Const strNummern = "E2:E5001" 'Bereich mit den Nummern
Const intPLZ = 1 'Spalte der PLZ, Ortsnamensspalte wird rechts daneben angenommen
Application.ScreenUpdating = False
If Intersect(Range(strNummern), Target) Is Nothing Then Exit Sub
strZuÄndern = Cells(Target.Row, intPLZ) & "|" & Cells(Target.Row, intPLZ + 1)
strFrage = MsgBox("Willst Du den ganzen Ort ändern? ", vbYesNo, "Frage")
If strFrage = vbYes Then
On Error GoTo NixDa
With Application
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
' Application.EnableEvents = False
For Each rngZelle In Range(strNummern)
If Cells(rngZelle.Row, intPLZ) & "|" & Cells(rngZelle.Row, intPLZ + 1) = strZuÄndern Then
rngZelle = Target
End If
Next rngZelle
Else
Exit Sub
End If
'Application.ScreenUpdating = True
NixDa:
With Application
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlAutomatic 'lngOldCalculation
End With
'Application.EnableEvents = True
'Application.ScreenUpdating = True
End Sub
In diesem Zustand läuft er schon sehr flott. Er wäre so schon gebrauchsfähig. ;-)
Meine offene Frage wäre noch, kann ich die Abfrage in der Ereignisprozedur unterbinden, wenn ich die Daten durch kopieren, in diese Tabelle einfüge?
Gruß Korl
PS: übrigens ist es nicht wer weiß wie eilig, freue mich schon sehr, dass ich überhaupt so weit gekommen bin.