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

Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel

Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel
20.01.2017 23:31:25
Michael
Hallo Leute,
stehe leider voll auf dem Schlauch, habe vor einem gutem Jahr "Das Handbuch Excel Programmierung" durchgearbeitet und dann doch keine Verwendung dafür gehabt. Jetzt könnte ich damit ein wenig glänzen aber es klappt schon bei simpelsten Ideen nicht mehr. Hier hier mal eine kurzes Beispiel:
Es soll erstmal beim beschreiben einer Zelle und der Enter Taste eine MsgBox angzeigt werden, _
passiert aber nicht.

Sub Worksheet_SelectionChange(ByVal Target As Range)
Set EingabeZelle = ThisWorkbook.Worksheets(1).Range("C9")
If Intersect(Target, EingabeZelle) Is Nothing Then
MsgBox "Ja"
Else
MsgBox "Nein"
End If
End Sub

Was übersehe ich hier?
Gruss,
Micha

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel
21.01.2017 00:12:35
Crazy
Hallo
da nimmt man das folgende Ereignis_Makro
und das gehört in das Tabellenblatt wo es geschehen soll
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C9")) Is Nothing Then
MsgBox "Ja"
Else
MsgBox "Nein"
End If
End Sub
MfG Tom
AW: Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel
21.01.2017 00:39:15
Michael
Danke Tom für die schnelle Antwort aber was ist denn an
Set EingabeZelle = ThisWorkbook.Worksheets(1).Range("C9")
falsch?
Ich spreche die Zelle auf dem ersten Tabellenblatt an, oder etwa nicht?
AW: Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel
21.01.2017 07:08:51
Crazy
Moin Michael
Grundsächlich ist an dieser Codezeile nichts falsch
da du aber das Makro starten willst, wenn du in einer Zelle eine Eingabe
mit Enter abschließt, wirkt das Makro nur in dem Tabellenblatt, in dem du die Eingabe machst
da brauchst du die Zelle nicht unbedingt extra zu deklarieren
sondern kannst es so schreiben wie ich es dir gezeigt habe
und da kommt jetzt etwas was du nicht beachtet hast
wenn du eine Variable benutzt dann solltest du die auch deklarieren
also sollte in deinem Makro ziemlich direkt unter
Sub...
Dim Eingabezelle As Range
stehen
das wird auch bestimmt in deinem "Handbuch" so dargestellt gewesen sein
und da wird auch sicher in einem Kapitel die Rede von "Option Explicit"
gewesen sein, wenn du dich daran nicht mehr erinnerst solltest du da noch mal nachschauen
wird wahrscheinlich ein Kapitel mit der Überschrift:
Variablen
sein
was an deinem Makro aber eher falsch war, ist dass du SelectionChange gewählt hast
das reagiert nicht auf Eingabe mit Enter
sondern das reagiert auf das Auswählen einer Zelle
dann noch die Frage:
hast du das Makro komplett selber geschrieben?
das liegt nahe weil vor deinem Makro nicht "Private" steht
ein Ereignismakro wie SelectionChange
oder WorksheetChange wählt man im Tabellenblattmodul
über die linke Auswahlschaltfläche im Editor
dadurch wird der Kopf einer Sub automatisch ausgefüllt
eine normal Sub erwartet man eigentlich in einem allgemeinen Modul
MfG Tom
Anzeige
AW: Bei Eintrag in Zelle MsgBox aufrufen, gaanz simpel
21.01.2017 18:38:40
Michael
Hi Tom,
danke für deine ausführliche Antwort, ich habs dann hinbekommen:

Sub Worksheet_Change(ByVal Target As Range)
Dim EingabeZelle As Range
Set EingabeZelle = ThisWorkbook.Worksheets(1).Range("C9")
If Intersect(Target, EingabeZelle) Then
MsgBox "Ja"
End If
End Sub

Es ging mir halt um allererste Gehversuche in VBA, als Programmierer bin ich ein ganz guter Theoretiker soll heißen, in den letzten 3 Jahren habe ich einige Bücher über das Programmieren gelesen wenn auch nur 2 über VBA (Excel und Word) und eins über VB (Na ja, gut die Hälfte). Aber auch ein paar über Python, PHP und jetzt aktuelle ein C Kompendium, C ist ziemlich geil weil simpel. :) Aber auf was ich hinaus wollte. Ich habe wirklich wenig eigenen Code fabriziert und das wird mir immer mehr bewusst. Mir ist auch schon die Meinung entgegengekommen das man einfach ein Projekt starten soll und dann so am Projekt am besten lernt. Na ja, ganz falsch kann es auf jeden Fall nicht sein.
Zu deiner letzten Frage: Nö. In meiner Fantasie brauchte ich einfach nur über Google alle Fragmente für mein Projekt zusammensuchen, hintereinander rein kopieren und 1, 2, 3, fertig. :) Aber ich glaube das wird schon, nur erst mal wieder die Basics sich wieder bewusst machen und das klappt dann schon. Natürlich auf kosten meiner Umwelt, die ich mit überflüssigen Fragen nerve.
Gruss,
Micha
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige