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

Schleife verbessern, Worksheet_Change

Schleife verbessern, Worksheet_Change
29.01.2009 17:00:00
Michael
Hallo! (Meine Erste selbstgebastelte Schleife)
Die Schleife geht sicherlich einfacher! Geht das auch als Worksheet_Change? Wenn sich in der Zelle G "Fehler" auftaucht, soll "Sub_info()" starten.
Danke
Gruß Michael

Sub ersterVersuch()
Dim iCounter As Integer
Dim schleifendurchlauf As Integer
schleifendurchlauf = InputBox("Wie oft durchlaufen")
For iCounter = 1 To schleifendurchlauf
Cells(iCounter, 1).Value = "Zeile " & iCounter
If Range("D" & iCounter) 



Sub fehler()
Dim iCounter As Integer
For iCounter = 1 To 6
If Range("g" & iCounter) = "Fehler" Then info
Next iCounter
End Sub



Sub info()
MsgBox ("Berichtigen")
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Schleife verbessern, Worksheet_Change
29.01.2009 17:28:00
Andreas
Hallo,
was willst Du denn überhaupt tun. Werde nicht so richtig schlau aus Deinem Coding!
Gruß Andreas

Sub ersterVersuch()
Set Pruefung_Sheet = ThisWorkbook.ActiveSheet
Dim i,n As Integer
n = InputBox("Anzahl zu prüfende Zeilen")
With Pruefung_Sheet
For i = 1 To n
.Cells(i, 1).Value = "Zeile " & i
If .Cells(i, 4).Value 


Worksheet_Change
29.01.2009 17:48:53
Michael
Hallo!
Deine Schleife ist einfacher wie meine. Danke!
Beim Worksheet_Change benötige ich nur eine Schleife(Glaube ich!!!!). Wenn ich in Feld G die Formel eintrage =WENN(A5>B5;"";"Fehler"). Änden sich nun die Werte in a5 und Fehler taucht auf, müsste sub_info() starten. Macht es leider nicht!

Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("g1:G6")) Is Nothing Then
' Application.EnableEvents = False
If Not IsNumeric(Target) Then info
Application.EnableEvents = True
End If
End Sub



Sub info()
MsgBox ("Berichtigen")
End Sub


Anzeige
AW: Worksheet_Change
29.01.2009 18:16:00
mariposa
Hallo,
dein Fehler liegt beim Target.count : muß heißen:

Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Not Intersect(Target, Range("g1:G6")) Is Nothing Then
Application.EnableEvents = False
If Not IsNumeric(Target) Or Target.Value = "Falsch" Then info
Application.EnableEvents = True
End If
End If
End Sub


Grüße
mariposa

AW: Worksheet_Change
30.01.2009 15:28:00
Michael
Hallo!
Klappt nicht!
Wenn sich ein Wert in A1 ändert und Falsch erscheind in Zelle G1 passiert nichts?
Gruß Michael
AW: Worksheet_Change
30.01.2009 20:05:00
mariposa
Hallo Michael,
hatte nicht bedacht, dass bei Änderung von z.B. Zelle A1 diese auch gleich dem "Target" entspricht.
Folgender Code funktioniert bei mir:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Offset(0, 6).Value = "Falsch" Then
Application.EnableEvents = False
MsgBox "Berichtigen"
Application.Undo
Application.EnableEvents = True
Exit Sub
End If
End If
If Target.Column = 2 Then
If Target.Offset(0, 5).Value = "Falsch" Then
Application.EnableEvents = False
MsgBox "Berichtigen"
Application.Undo
Application.EnableEvents = True
Exit Sub
End If
End If
End Sub


=> mit "Application.undo" machst Du die Eingabe rückgängig, kann aber auch weggelassen werden.
Grüße
mariposa

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige