Wenn in Zelle C3 dann Msgbox

Dieses Thema Wenn in Zelle C3 dann Msgbox im Forum "Microsoft Office Suite" wurde erstellt von Elhamplo, 20. Okt. 2005.

Thema: Wenn in Zelle C3 dann Msgbox Hi, ich mal wieder........ Ich hab ein Problem und ich schätze es wurde auch schon tausend mal bantwortet, aber...

  1. Hi, ich mal wieder........

    Ich hab ein Problem und ich schätze es wurde auch schon tausend mal bantwortet, aber ich habe nichts gefunden oder es hat nie geklappt.

    Und zwar:

    Ich möchte wenn in der Zelle C3 ein x steht das eine Msgbox aufgeht mit ja/nein möglichkeit und wenn man dann auf ja klickt das man in einem neuen Tabellenblatt auf die Zelle C5 kommt. Außerdem soll die Msgbox nicht auftauchen wenn man das x in Tabelle1 in Zelle C3 löscht.

    Ich weiß leider nicht weiter.

    Ich danke für Eure Mühe!!!!!!!!

    Gruß

    Elhamplo
     
  2. In den Code des Tabellenblatts folgenden Code eingeben:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
     Dim Mldg, Stil, Titel, Antwort->
    
     If Target.Column = 3 And Target.Row = 3 Then ->wenn in C3 was geändert wird
     If Range(C3) = x Then
          Mldg = xxx_Blabla & Chr(10) & _
          xxx_Blabla & Chr(10) & _
          xxx_Blabla & Chr(10) & _
          xxx_Bla
          Stil = vbYesNo + vbCritical + vbDefaultButton2->Schaltflächen definieren.
          Titel = xxx_Meldungstitel->Titel definieren.
          Antwort = MsgBox(Mldg, Stil, Titel) ->Meldung anzeigen.
      If Antwort = vbYes Then->ab jetzt wird Ja ausgeführt
      Sheets(Tabelle2).Select
      Range(C5).Select
      Else
     End If
      Else
     End If
      Else->jetzt wird Nein ausgeführt
      Range(C3).Select
     End If
    End Sub
    Sollte so eigentlich funktionieren, aber bei Range(C5).Select krieg ich einen Fehler und weiß nicht warum. Wahrscheinlich nur irgend ein dummer Punkt oder Klammer, den ich übersehen hab, aber ich komm nicht drauf. Wenn ich Range(C5).Select weglasse, funktioniert es.

    Tabelle2 muß noch durch den tatsächlichen Blattnamen ersetzt werden. Auch die Passagen, die mit xxx_ anfangen, durch sinnvolle Meldungen ersetzen.
     
  3. hi klexy

    sorry wenn ich dir da reinpfusche aber dein Code geht, zumindest bei mir, nicht so ganz wie es Elhamplo wollte. Also wenn man auf nein klickt, geschieht gar nichts.

    Ich habe ihn einwenig, basierend auf deiner Version, geändert... und so geht er.

    Code:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    'Hier kommt der Name der anderen Tabelle herein
    Const c_tabelle = Tabelle2
    
    Dim Mldg, Stil, Titel, Antwort
    
    'wenn in C3 was geändert wird
    If Target.Column = 3 And Target.Row = 3 Then
    
    ->Wenn C3 ein x steht dann wird diese Schlaufe ausgeführt
     If Range(C3) = x Then
     ->Message definieren
      Mldg = xxx_Blabla & Chr(10) & xxx_Blabla & Chr(10) & _
      xxx_Blabla & Chr(10) & xxx_Bla
      
     ->Schaltflächen definieren
      Stil = vbYesNo + vbCritical + vbDefaultButton2
      
     ->Titel definieren
      Titel = xxx_Meldungstitel
      
     ->Meldung anzeigen.
      Antwort = MsgBox(Mldg, Stil, Titel)
      
      If Antwort = vbYes Then->ab jetzt wird Ja ausgeführt
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
      Else->ab jetzt wird Nein ausgefürt
       ActiveSheet.Range(C3).Select
      End If
      
     End If
    End If
    
    End Sub
    
    ich habe ihn noch einwenig grösser gemacht dass Elhamplo einwenig die zusammenhänge sieht ^^

    mfg billy
     
  4. Hi.....

    das ist schon so was ich suche. Ist auch sau geil......

    Ich will wenn C3 oder C4 oder in C5.... bis C9 ein x steht das die msgbox aufgeht und in das neue Blatt wechselt und nicht dann immer auf C3 zurück geht. Außerdem wenn ich die Zellen C10 oder C11 oder....... bis C200 mit einem x makiere soll keine MSGBOX erscheinen.

    Gruß

    Elhamplo
     
  5. wie darf ich das verstehn?

    du meinst wenn man vom 1. tabellenblatt in C3 ein x macht, geht es ja auf die 2. tabelle. und wenn man dann in das 1. Tabellenblatt wechselt ist C3 logischerweise immer noch aktiv weil du dort zuletzt was geändert hast...

    oder hab ich da was falsch verstanden?

    mfg billy
     
  6. Hi.......

    Denk, Denk, Denk........ Ich habs geraft!!!!!!

    Noch eine Frage: Was muss ich machen wenn ich das gleich für die Zellen C4, C5, C6, C7... bis C15 und ab C16 soll keine nachricht mehr kommen beim Eintargen eines x - es.

    Mfg Elhamplo

    Sprry, aber ich bin so ein VBA Schwächling!!!!!!
     
  7. @ billy
    bei nein soll ja gar nichts passieren.
    Der Pferdefuß bei mir war Worksheets(c_tabelle).Range(C5).Select. Aber warum das so ist, kapier ich nicht.

    @ Elhamplo
    Das mit 4-15 bastel ich heute abend zurecht. Schöne Herausforderung für mich.
     
  8. Noch eine Zwischenfrage:
    Werden die x nach der Erstellung und dem Wechsel auf Tabelle2 gleich gelöscht, oder kann ein x in C4 (Tabelle1) noch vorhanden sein wenn man ein neues in C5 (Tabelle1) macht oder in C5 (Tabelle1) etwas ganz anderes reinschreibt?

    Und soll jedes Mal in C5 (Tabelle2) gewechselt werden?

    Das mit dem Wechsel in C3 (Tabelle1) ist nur die Option für kein x. Das mach ich wieder weg. Das war nur zum Verständnis der Funktionalität des vbYesNo.
     
  9. Hallo,

    @ all

    Sorry das ich mich erst jetzt melde, hatte aber keine gestern keine Zeit mehr. Sorry!!!

    @ billy

    Danke für den Code. Nachdem ich den Code kopeiert habe und die Zellen geändert habe ging das auch mit den anderen Zellen. Ist zwar VBA-Technisch nicht die beste Lösung aber es klappt. Danke nochmals für Deine Hilfe.

    @ klexy

    Danke das Du noch einen Code schreiben willst. Sorry bin echt ne Flasche was VBA angeht. Vor ein paar Wochen wusste ich gradmal das es Wenn-Formeln gibt.

    Mit dem x ist das so: Auf Tabelle 1 wird das x eingetragen und die MsgBox soll geöffnent werden. Bei ja soll man auf die Tabelle2 in Zelle C5 kommen immer. Das x soll in Tabelle 1 aber stehen bleiben und nicht gelöscht werden. Danke für Deine Hilfe.

    Gruß Elhamplo
     
  10. Nur nicht hetzen!

    Außerdem ist noch kein Meister vom Himmel gefallen, sondern höchstens mal auf die Schnauze.

    Das Makro ist ja einigermaßen ausführlich kommentiert. Wenn du dich da mal eine Stunde dransetzt und versuchst, nachzuvollziehen was da passiert, kannst du viel lernen und diesen oder jenen Baustein später mal variieren oder ganz ungeniert in andere Makros kopieren.
    Code:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    'Hier kommt der Name der anderen Tabelle herein
    Const c_tabelle = Tabelle2
    
    'Elemente der Meldung festlegen
    Dim Titel, Mldg, Stil, Antwort
     ->Titel definieren
      Titel = xxx_Meldungstitel
     ->Text definieren
      Mldg = xxx_Blabla & Chr(10) & _
      xxx_Blabla & Chr(10) & _
      xxx_Blabla & Chr(10) & _
      xxx_Bla
     ->Schaltflächen definieren
       ->(vbDefaultButton1 heißt, daß Ja aktiviert ist)
       ->(vbDefaultButton2 heißt, daß Nein aktiviert ist)
      Stil = vbYesNo + vbCritical + vbDefaultButton1
      
    'wenn in C3 was geändert wird
    If Target.Column = 3 And Target.Row = 3 Then
    
    ->Wenn C3 ein x steht dann wird diese Schlaufe ausgeführt
     If Range(C3) = x Then
     
     ->Meldung anzeigen.
      Antwort = MsgBox(Mldg, Stil, Titel)
      
      If Antwort = vbYes Then->ab jetzt wird Ja ausgeführt
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
     ->Wenn es diese Zelle (C3) war, dann dann müssen die anderen Schleifen nicht mehr durchlaufen werden.
     ->Deshalb soll von hier direkt ans Ende gegangen werden.
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C4 was geändert wird
    If Target.Column = 3 And Target.Row = 4 Then
     If Range(C4) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C5 was geändert wird
    If Target.Column = 3 And Target.Row = 5 Then
     If Range(C5) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C6 was geändert wird
    If Target.Column = 3 And Target.Row = 6 Then
     If Range(C6) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C7 was geändert wird
    If Target.Column = 3 And Target.Row = 7 Then
     If Range(C7) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C8 was geändert wird
    If Target.Column = 3 And Target.Row = 8 Then
     If Range(C8) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C9 was geändert wird
    If Target.Column = 3 And Target.Row = 9 Then
     If Range(C9) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C10 was geändert wird
    If Target.Column = 3 And Target.Row = 10 Then
     If Range(C10) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C11 was geändert wird
    If Target.Column = 3 And Target.Row = 11 Then
     If Range(C11) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C12 was geändert wird
    If Target.Column = 3 And Target.Row = 12 Then
     If Range(C12) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C13 was geändert wird
    If Target.Column = 3 And Target.Row = 13 Then
     If Range(C13) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C14 was geändert wird
    If Target.Column = 3 And Target.Row = 14 Then
     If Range(C14) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    'wenn in C15 was geändert wird
    If Target.Column = 3 And Target.Row = 15 Then
     If Range(C15) = x Then
      Antwort = MsgBox(Mldg, Stil, Titel)
      If Antwort = vbYes Then
       Sheets(c_tabelle).Select
       Worksheets(c_tabelle).Range(C5).Select
    GoTo EndeÄpfel
      End If
     End If
    End If
    
    EndeÄpfel:
    End Sub
    
     
Die Seite wird geladen...

Wenn in Zelle C3 dann Msgbox - Ähnliche Themen

Forum Datum
Excel 2010 Wenn Zelle leer dann, Wenn in Zelle x dann Windows XP Forum 28. Nov. 2013
Summe wenn in Zelle eine Zahl steht .... Microsoft Office Suite 29. Sep. 2011
Abfrage wenn in Zelle A ein x ist Windows XP Forum 4. Nov. 2008
MS EXcel, 2 WENN Funktionen für eine Zelle ? Windows XP Forum 16. Jan. 2008
Excel, werte addieren wenn buchstabe in zelle Windows XP Forum 8. März 2007