Microsoft Excel

Herbers Excel/VBA-Archiv

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

Eingabe erzwingen wenn Nachbarzelle nicht leer

Betrifft: Eingabe erzwingen wenn Nachbarzelle nicht leer von: Andreas
Geschrieben am: 08.08.2014 13:53:35

Hallo,

sitz gerade an einem kniffligen Problem:

Wenn ich in der Zelle I etwas eingebe (in diesem Fall sind das Koordinaten) dann möchte ich dass man gezwungen wird in der Zelle J eine Auswahl zutreffen (um beurteilen zu können wie genau die Daten sind), ich habe die Auswahl momentan über die Gültigkeit - Liste gemacht, ich schaffe aber keine Abhängigkeit zur linken Nachbarzelle :-(

Jetzt bin ich mir relativ sicher dass das nur über VBA gehen wird und da kenn ich mich leider nicht aus.

Wär cool wenn mir jemand helfen könnte.

https://www.herber.de/bbs/user/91973.xlsx

  

Betrifft: AW: Eingabe erzwingen wenn Nachbarzelle nicht leer von: fcs
Geschrieben am: 08.08.2014 16:58:39

Hallo Andreas,

wie du schon erkannt hast - es geht nur via VBA.
Die entprechenden Makros müssen auf die Eingabe von Werten in den Spalten reagieren und die seelction von Zellen.

Gruß
Franz

Das sieht dann etwa wie folgt aus.

'Code im VBA-Editor unter dem Tabellenblatt der Datei in dem die Einagebn gemacht werden.
Option Explicit
Dim ZelleAlt As Range

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Zelle As Range
  Application.EnableEvents = False
  If Target.Column = 9 And Target.Columns.Count = 1 Then
    For Each Zelle In Target.Cells
      If Zelle.Offset(0, 1) = "" And Zelle.Value <> "" Then
        Zelle.Offset(0, 1).Select
        Set ZelleAlt = Zelle.Offset(0, 1)
        GoTo Beenden
      End If
    Next
  ElseIf Target.Column = 10 And Target.Columns.Count = 1 Then
    For Each Zelle In Target.Cells
      If Zelle.Offset(0, -1) <> "" And Zelle.Value = "" Then
        Zelle.Select
        MsgBox "Bitte Auswahl in Spalte J machen"
        GoTo Beenden
      End If
    Next
  End If
Beenden:
  Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.EnableEvents = False
  If Not ZelleAlt Is Nothing Then
    If ZelleAlt.Offset(0, -1) <> "" Then
      If ZelleAlt.Value = "" Then
'        MsgBox "Bitte Auswahl in Spalte J machen"
        ZelleAlt.Select
        GoTo Beenden
      End If
    End If
  End If
  If Target.Column = 10 Then
    Set ZelleAlt = Target.Range("A1")
  Else
    Set ZelleAlt = Nothing
  End If
Beenden:
  Application.EnableEvents = True
End Sub



  

Betrifft: AW: Eingabe erzwingen wenn Nachbarzelle nicht leer von: Andreas
Geschrieben am: 11.08.2014 08:26:56

Servus Franz,

des is der Wahnsinn, funktioniert super!!!!

Ganz herzliches Dankeschön, es ist immer wieder erstaunlich welche Klasse Menschen hier in diesem Forum sind!

LG
Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "Eingabe erzwingen wenn Nachbarzelle nicht leer"