Frage von laischa, 85

Visual Basic (Exel) Programmierung eines Steuerrechners, wie kann ich wenn ich dort ein Buchstaben ein gebe dem Programm sagen das es eine MsgBox öffnen soll?

Habe ein Steuerrechner programmiert nun will ich das wenn ich dort wo die Zahlen eingegeben werden dem Programm sagen das wenn ich dort aus versehen ein Buchstaben eingebe er mir eine MsgBox mit Text aufgeben soll. Ich habe es mit ElseIf und String schon versucht funktioniert nicht. Jeden an wenn ich dort ein Buchstaben eingebe bricht das Programm sofort ab und zeigt mir einen Fehler an.

Expertenantwort
von Oubyi, Community-Experte für Excel, 41

Es wäre schon besser, wenn Du Deinen Code oder zumindest den relevanten Teil davon verrätst.
Ich beziehe mich jetzt mal auf:


Was ich brauche ist ein Progammbefehl der meinem Programm sagt das es
bei einem Buchstaben eine MsgBox öffnen soll und das Programm nicht
beenden soll.

Wobei ich es allerdings nicht logisch finde, dass das Programm bei einer Fehleingabe NICHT beendet werden soll. Ich setze das jetzt mal so um, dass eine richtige Eingabe erzwungen wird:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
While Not IsNumeric(Target)
MsgBox "Bitte eine Zahl eingeben"
Target.ClearContents
Target.Select
Wend
End If
End Sub

Hilft Dir das schon weiter?

P.S.: Übrigens, das Programm heißt Excel.

Expertenantwort
von Iamiam, Community-Experte für Excel, 44

if not isnumeric(Eingabe) then MSGbox(...)

es reicht das einzeilige if then ohne elseif und endif

(zumindest für VBA würde das so gehen, aber soweit ich mich erinnmere, sind die Funktionren ziemlich gleich)

Eingabe ist hier eine Variable, die Du beliebig ändern kannst.

Es gäbe auch noch zahlreiche andere Möglichkeiten, zB if iserror(Eingabe * 1) etc, aber Obiges dürfte die "logischste" sein.

Expertenantwort
von DeeDee07, Community-Experte für Excel, 67

Du brauchst dafür keine Makros, sondern kannst die Datenüberprüfung von Excel verwenden. https://support.office.com/de-de/article/Anwenden-von-Daten%C3%BCberpr%C3%BCfung...

Kommentar von laischa ,

Ich arbeite mit Visual Basic, das ist leider so vorgegeben. Danke für deine Antwort aber helfen tut siemir mir leider nicht. Da ich mit Makros arbeiten muss.

Expertenantwort
von schmiddi1967, Community-Experte für Excel, 63

Na wenn du eine Hilfe zu einem Makro (oder deiner Programmierung) was du hast haben möchtest, wäre es schön wenn man auch dein Makro kennen und auch sehen könnte.

Und "es zeigt ein Fehler an" hilft auch nicht weiter.

Wenn du das wirklich selbst programmiert hast weißt du doch auch was der auf der anderen Seite braucht um dir zu helfen.


Kommentar von laischa ,

Ich würde ja ein Foto reinstellen aber da ich kein Exel besitze kann ich das Programm und den dazugehörigen Quellcode nicht aufrufen. Es geht um VB das im Exel Programm erhältlich ist. Ich habe dort einen einfachen Rechner (Steuerrechner) programmiert. Wenn ich nun da wo man die Zahlen eingibt um diese mit einem bestimmten p% auszurechnen ein Buchstaben eingebe wird mein Programm sofort geschlossen und mir wird das ElseIf im Quellcode als Fehlermeldung Gelb angezeigt. Dies kamnist allerdings nicht der Fehler sein. Was ich brauche ist ein Progammbefehl der meinem Programm sagt das es bei einem Buchstaben eine MsgBox öffnen soll und das Programm nicht beenden soll.

Kommentar von schmiddi1967 ,

Entweder ist das hier ein Scherzbeitrag von dir oder es ist das größte Geheimnis was es auf Erden gibt und deswegen zeigst du uns das nicht.

Ich vermute mal das du dir irgendwo das Ding gezogen hast und es verändern willst, was kein Verbrechen ist wenn der Code offen ist und es nicht untersagt wurde.

Oben bei deiner Antwort (bei DeeDee07) schreibst du


Ich arbeite mit Visual Basic, das ist leider so vorgegeben


Hier hast du geschrieben das du kein Excel (so heisst das und nicht Exel) hast. Wie willst du

  1. Einen Steuerrechner in einem Programm geschrieben haben wenn du das gar nicht hast.
  2. Einen gelb markierten Fehlercode gesehen haben wenn du das nicht hast (und Natürlich ist die gelbe Markierung der Fehler)

Also dann erzähl mal?


Kommentar von Iamiam ,

ich kann mich noch erinnern, dass ich auch auf meine ersten Programme sehr stolz war und das für wer weiß wie einmalig gehalten hab...

Im übrigen kennt der Frager anscheinend VB gar nicht und hält VBA dafür (hab ich aber erst nach meiner AW aus den Beiträgen geschlossen)

Kommentar von schmiddi1967 ,

Naja, das würde ich ja auch verstehen. Aber das

das ist leider so vorgegeben

und dann ist das Programm nicht vorhanden zeigt mir fast das es eine Hausaufgabe oder sowas ist. Das würde ich gerne vorher wissen, denn einfach eine Lösung geben würde da nicht helfen. Davon lernt man nicht und das ist nicht Sinn und Zweck von GF :))

Antwort
von laischa, 26

Da foto

Kommentar von Iamiam ,

danke, aber das ist in dieser Auflösung leider nicht lesbar, bei xl-Blättern Zoom mindestens 150%, besser 200% (je nach gewählter Schrift). Und Zeilen-Spaltenköpfe sichtbar machen, lieber unwichtige Zeilen/Spalten ausblenden!

Die Bildschirmkopie (obigen Zooms!) kriegst Du mit Druck oder Strg+Druck in die Zwischenablage und kannst sie dann mit Strg+v in ein Bildprogramm einfügen

Bei Modulen kannst du im VBA-Editor eine größere Schrift einstellen. Alles mühsam, ich weiß, aber wenigstens wirksam!

Anders kann Dir hier niemand richtig helfen.

Kommentar von laischa ,

Leider ist jedes Bild das ich hochladen will zu groß. Ist nur für diedie die meisten ich würde lügen. Ich habhabe den scheiß schon selbst gemacht aber kein Grund sie jetzt entschuldigen zu müssen 

Kommentar von Oubyi ,

@lamiam:
Wenn Du nach dem Klick auf das Foto nochmal darauf klickst, wird es als eigene Seite angezeigt.
Wenn Du DANN noch ein weiteres mal klickst, wird es vergrößert und ist gut lesbar (Firefox).

Aber natürlich wäre es wesentlich sinnvoller, wenn laischa den Code einfach kopieren und hier einfügen würde.

Kommentar von Oubyi ,

Du hast alle Variablen, mit denen Du rechnen willst als String deklariert.
Außer Netto als Double, aber dem übergibst Du anscheinend eine String.
Das macht keine Sinn.
Ich warte auch noch auf Deine Reaktion zu meiner Antwort.

Kommentar von Ninombre ,

Aus meiner Sicht müsste es mit der Berechnung funktionieren, auch wenn die Variablen als String definiert sind.

Die Abfrage, ob als Steuerschlüssel nur 1 oder 2 angegeben ist, könnte man direkt umgehen, wenn eine Combobox statt Textfeld verwendet wird. Keine Ahnung, ob das die Vorgaben der Aufgabenstellung allerdings zulassen.Sonst muss vor der Berechnung eben die Prüfung auf isnumeric erfolgen

Kommentar von Ninombre ,

und, weil es noch nicht genannt wurde:
Exit sub um bei Verstoß gegen eine der Plausibilitäten den weiteren Ablauf zu unterbrechen. Dann müssen die Labelfelder nicht auf leer gesetzt werden.

Kommentar von laischa ,

Keiner von euch hat auf meine Frage ein Antwort gegeben das Programm Funktioniert so wie ich es Programmmiert habe super. Nur wenn ich Buchstaben eingebe geht es nicht. Und ich wollte das dann eine MsgBox angezeigt wird die, sagt du darfst nur Zahlen verwenden. Aber das Thema hat sich erledigt. Danke.

Kommentar von Oubyi ,

Ich habe genau darauf geantwortet, aber Du reagierst immer noch nicht auf meine Antwort.,
Aber wenn das für Dich erledigt ist, gilt das natürlich auch für mich.

Kommentar von laischa ,

Oubyi ich hab deine Antwort wahrgenommen und ein Teil meines Problems konnte ich damit beheben. Vielen Dank.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten