Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellwert vergleichen | Herbers Excel-Forum


Betrifft: Zellwert vergleichen von: Wilhelm
Geschrieben am: 29.12.2009 16:10:10

Bitte um Hilfe,
Bisher konnte ich mit dem nachfolgenden Code ein Eingabe mit einem (in diesem Fall Zelle T4) vorgegebenen Wert vergleichen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
''Überwacht gesamte Spalte ob Zellwert nach Vorgabe.
On Error Resume Next
    Dim BBBereich As Range, BBZelle As Range
  ''legt Bereich fest
  Set BBBereich = Range("D14:D27")
    For Each BBZelle In Range(Target.Address)
  If Intersect(BBZelle, BBBereich) Is Nothing Then Exit Sub
  Dim intZahl As Double
'' Vorgabewert wird hier angebeben    
intZahl = Sheets("SEGMENTE").Range("T4").Value
    Application.EnableEvents = False
  If BBZelle.Value > intZahl Then
  msg = MsgBox("Wert zu hoch, bitte Blockmaß max. " & intZahl & " mm beachten")
  BBZelle.ClearContents
  BBZelle.Value = intZahl
  End If
   Application.EnableEvents = True
    Next BBZelle
      End Sub

Nun stehe ich vor dem Problem, dass die Zelleingabe nicht mit immer der gleichen Vorgabe in einer einzigen festen Zelle verglichen werden soll, sondern die Vorgabe (die int Zahl) soll in einer Zelle 2 Spalten nach rechts enthalten sein.
Beispiel: Eingabe erfolgt in A1; Vergleichswert ist in C1, Eingabe in A2, Vergleichswert in C2, usw. bis zur letzten Zeile z.B. A52:C52.
Ich kriege das nicht gebacken.
Kann mir jemand helfen?
Wilhelm

  

Betrifft: AW: Zellwert vergleichen von: Erich G.
Geschrieben am: 29.12.2009 16:44:04

Hi Wilhelm,
probier mal

Option Explicit  ' IMMER ZU EMPFEHLEN !

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
                                   ' Überwacht gesamte Spalte ob Zellwert nach Vorgabe.
   Dim BBBereich As Range, BBZelle As Range
                                       ' On Error Resume Next - wohl unnötig

   Set BBBereich = Range("D14:D27")                   ' legt Bereich fest
   If Intersect(Target, BBBereich) Is Nothing Then Exit Sub

   For Each BBZelle In Intersect(Target, BBBereich)
      If BBZelle.Value > BBZelle.Offset(, 2).Value Then
         MsgBox ("Wert zu hoch, bitte Blockmaß max. " & _
            BBZelle.Offset(, 2).Value & " mm beachten")
         Application.EnableEvents = False
         BBZelle.Value = BBZelle.Offset(, 2).Value
         Application.EnableEvents = True
      End If
    Next BBZelle
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Zellwert vergleichen von: Wilhelm
Geschrieben am: 29.12.2009 16:57:45

Hallo Erich,
läuft wunderbar.
vielen Dank für deine Mühe.
Ich war schon am verzweifeln.
Wilhelm


Beiträge aus den Excel-Beispielen zum Thema "Zellwert vergleichen"