PDA

Vollständige Version anzeigen : Eurowert-Anzeige per Dialogbox


Michael T.
01.09.2001, 09:50
Hallo!
Ich möchte in Excel den Zelleninhalt als Eurowert anzeigen lassen. Hierbei soll aber nicht die Zelle umgerechnet werden, sondern der entsprechende Eurowert soll in einem Dialogbox angezeigt werden.

Der Text könnte dann vielleicht lauten "Der Zellenwert entspricht 20,38 Euro".

Kann mir jemand sagen, wie ein solches Makro aussehen muß?
Ich steige gerade erst als Anfänger in die Makro-Programmierung ein.

Vielen Dank schon mal!

Michael T.

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag ein Link entfernt.</font>

jinx
01.09.2001, 12:16
<font size="2" face="Century Gothic">Moin, Michael,

zur Einstimmung und als Grundlage für den Beginn mit VBA:

Um Quellcode komfortabel (?) einzugeben, den VBA-Editor mit der Tastenkombination ALT + F11 starten.
Es erscheint ein neues Fenster mit der Überschrift „Microsoft Visual Basic“ sowie nach einem Trennungszeichen dem Namen der Arbeitsmappe.
Das Fenster ist viergeteilt:
links oben der Projekt-Explorer
links unten das Eigenschaftsfenster
rechts oben das Codefenster
rechts unten der Direktbereich.

Als erstes über das Menü Einfügen ein neues Modul einfügen und in das Codefenster wechseln (wenn ausgeblendet, mit F7 einblenden).

Den Quelltext beginnend mit „Public Sub EurowertAnzeige()“ bis einschließlich „End Sub“ im Original markieren und per kopieren (je nach verwendetem Browser unterschiedlich) in das Codefenster rechts oben eintragen.

Anschließend hast Du 2 Möglichkeiten, den Code zu überprüfen:
1. Du bleibst im VBA-Editor und löst die Ausführung des Codes z.B.
a. durch den Abspielpfeil aus der Leiste „Bearbeiten“ oder
b. durch das Menü Ausführen und Sub/UserForm ausführen oder
c. durch Drücken der Taste F5
2. Du wechselst auf das Datenblatt und startest das Makro über Extras – Makros – Makro ausführen


<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> EurowertAnzeige()
Anfang:
<span class="REM">' Anweisung, im Falle eines Fehlers zum Ende zu verweigen</span>
<span class="TOKEN">On Error GoTo</span> Ende
<span class="REM">' Eingabebox zur Abfrage der zu berechnenden Zelle</span>
sZelle = InputBox(&quot;Bitte geben Sie die umzurechnende Zelle an&quot;)
<span class="REM">' Wert dieser Zelle wird aufgerufen und in Variable Betrag eingelesen</span>
Betrag = Range(sZelle).Value
<span class="REM">' Umrechnung des W&auml;hrungsbetrages in Euro</span>
Euro = Betrag / 1.95583
<span class="REM">' Gl&auml;ttung der Anzeige auf 2 Ziffern hinterm Komma</span>
DIN = Int(Euro * 100)
Anzeige = (DIN / 100)
<span class="REM">' Ausgabe des Ergebnisses in einer Ausgabebox</span>
MsgBox (&quot;Der Zellenwert der Zelle &quot; &amp; sZelle &amp; &quot; entspricht &quot; &amp; Anzeige &amp; &quot; Euro&quot;)
<span class="REM">' Abfrage, ob weitere Zellen umgerechnet werden sollen</span>
Mldg = &quot;M&ouml;chten Sie fortfahren ?&quot; <span class="REM">' Meldung definieren.</span>
Stil = vbYesNo <span class="REM">' Schaltfl&auml;chen definieren.</span>
Titel = &quot;MsgBox-Demonstration&quot; <span class="REM">' Titel definieren.</span>
Antwort = MsgBox(Mldg, Stil, Titel) <span class="REM">' Meldung anzeigen.</span>
<span class="REM">' Vergleich der Eingaben und entsprechende Verzweigung</span>
<span class="TOKEN">If</span> Antwort = vbYes <span class="TOKEN">Then</span> <span class="REM">' Benutzer hat &quot;Ja&quot; gew&auml;hlt.</span>
GoTo Anfang <span class="REM">' Operation ausf&uuml;hren.</span>
<span class="TOKEN">Else</span> <span class="REM">' Benutzer hat &quot;Nein&quot; gew&auml;hlt.</span>
GoTo Ende <span class="REM">' Operation ausf&uuml;hren.</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="REM">' Ende des Hauptteils</span>
<span class="REM">' Dialogbox zum Abschied wird eingeblendet</span>
Ende: MsgBox (&quot;Ende des Programms&quot;)
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Wenn Du Deine Mappe gespeichert hast, wirst Du ab dem nächsten Mal -Sicherheitsstufe mittel oder hoch- gefragt, ob die Makros aktiviert werden sollen.
Solange Du also nicht genau weisst, was in der Mappe ist = deaktivieren und angucken!

<font color="#808080" size="3" face="Arial Black">cu
jinx</font>

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag der Code für dieses Forum und die Signatur angepasst.<font>

Speddy Conzales
04.09.2001, 10:22
Geile Sache, aber ich habe da noch einige Fragen: :)
wie würde ich diese Makro einstellen, damit ich es z.B. über eine Button starten kann?
Wie funkt. das? Und wie kann man so ein Makro in andere Excel-Tabellen exportieren? Oder ganz in Excel einbauen?

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag Links korrigiert, die auf falsche Adressen zeigten...</font>

prinzeri
04.09.2001, 10:53
Hallo Michael T.

Sub Makro1()

a = ActiveCell.Value / 1.95583
b = Int(a * 100) / 100
MsgBox ("Der Wert enspricht " & b & " Euro")

End Sub

Über die Symbolleiste "Formular" kannst Du Dir eine Schaltfläche aufs Tabellenblatt ziehen. Der kannst Du dann das Makro zuweisen. Bei Klick wird die momentan markierte Zelle umgerechnet.
Oder dem Makro einen Short-Cut zuweisen.

Gruss
prinzeri