Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
336to340
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
336to340
336to340
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Für Profis:Worksheet_Change und SelectionChange

Für Profis:Worksheet_Change und SelectionChange
11.11.2003 09:09:58
Benni
Hallo Leute!

Hatte mich gestern schon einmal an das Forum gewand, weil ich 2 verschiedene Worksheet_Change- Ereignisse verwirklichen wollte. Yal gab mir den Tipp, das Zweite mit Worksheet_selectionChange zu verarbeiten (Danke nochmal), aber das Problem ist, daß dann das Ereignis schon beim Auswählen der Zelle eintritt, nicht nach der Änderung!

Hier der Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim vNew As Variant, vold As Variant
Dim irow As Integer
If Not Application.Intersect(Target, Range("A15:aq50")) Is Nothing Then
vNew = Target.Value
Application.EnableEvents = False
On Error GoTo errorhandler
With Worksheets("Protokoll")
irow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Unprotect password:=""
.Cells(irow, 1).Value = Target.Address(False, False)
.Cells(irow, 2).Value = "Maschinenzahlen"
.Cells(irow, 3).Value = "Auslastung"
.Cells(irow, 4).Value = vNew
.Cells(irow, 5).Value = Date
.Cells(irow, 6).Value = Application.UserName
.Protect password:=""
End With
Else: Exit Sub
End If
errorhandler:
Application.EnableEvents = True
End Sub



Private Sub worksheet_change(ByVal Target As Range)
'Änderung der Maschinenzahl bis ans Ende der Tabelle übernehmen und neuen Wert ins Protokoll übernehmen
Dim r1 As Range
Dim r2 As Range
Dim rGes As Range
Dim Neuwert As Variant
Dim spalte As Integer
Dim Reihe As Integer
If Intersect(Target, Range("c4:aq13")) Is Nothing Then Exit Sub ' GoTo Aenderung
Neuwert = Target.Value
Application.EnableEvents = False
On Error GoTo errorhandler
Reihe = Target.Row
spalte = Target.Column
Worksheets("Maschinenzahlen").Activate
For i = spalte To 43
Cells(Reihe, i).Value = Neuwert
Next i
With Worksheets("Protokoll")
irow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Unprotect password:=""
If irow > 200 Then
.Rows(3).EntireRow.Delete shift:=xlUp '<<<<<
irow = 200
End If
.Cells(irow, 1).Value = Target.Address(False, False)
.Cells(irow, 2).Value = "Maschinenzahlen"
.Cells(irow, 3).Value = "geändert auf:"
.Cells(irow, 4).Value = Neuwert
.Cells(irow, 5).Value = Date
.Cells(irow, 6).Value = BenutzerName1
.Protect password:=""
End With
Hat jemand ne Idee?
MfG Benni

                    

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Für Profis:Worksheet_Change und SelectionChange
11.11.2003 09:17:49
PeterW
Hallo Benni,

prinzipiell löst man das so:

If Bedingung1 then
Code1
End If
If Bedingung2 then
Code2
Endif
Die zweite Bedingung sollte dann lauten:
If Not Intersect(Target, Range("c4:aq13")) Is Nothing Then

Gruß
Peter
Excel kann so einfach sein..., DANKE o.T.!!!
11.11.2003 09:31:30
Benni
oT

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige