Anzeige
Archiv - Navigation
412to416
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
412to416
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prosa in Makrocode übersetzen

Prosa in Makrocode übersetzen
thomas
Hallo Leute,
kann mir jemand schnell folgende Prosa-Anweisung in MakroCode übersetzen. Diesen will ich dann an einen Button hängen:

Sub einfuellen
Nimm den Wert in B105; runde diesen auf die nächste ganze Zahl auf.
Führe in B106 die Rechnung B105+1 durch.
Führe in B107 die Rechnung B106+1 durch
usw. bis der Wert, der in B101 steht erreicht ist.
End Sub

Besten Dank für Hilfe!
thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prosa in Makrocode übersetzen
ChrisL
Hi Thomas
Na dann übersetze ich mal die Prosa, aber kannst du in der Zwischenzeit mal das Wort Prosa übersetzen... Vielleicht hätte ich mich mehr mit Literatur beschäftigen sollen statt mit Computern, dann wüsst ichs jetzt. Allerdings was nicht ist kann noch werden :-)
Dafür gibts auch brav ein Makro. Je nach dem mit was für Zahlen du arbeitst muss man vielleicht noch die Deklaration anpassen. Auch ist mir nicht ganz klar, ob in B106 die gerundete Zahl soll oder die Andere usw. aber versuchs einfach mal...
Gruss
Chris

Sub einfuellen()
Dim iZeile As Long
Dim Startwert As Long
On Error GoTo errorhandler
If IsNumeric(Range("B105")) = False Then
MsgBox "Der Wert in Zelle B105 muss nummerisch sein.", vbCritical, "Abbruch"
Exit Sub
End If
If IsNumeric(Range("B101")) = False Then
MsgBox "Der Wert in Zelle B101 muss nummerisch sein.", vbCritical, "Abbruch"
Exit Sub
End If
If Range("B105") > Range("B101") Then
MsgBox "Der Wert in Zelle B105 ist bereits grösser als der Wert in B101. Makro wird beendet.", _
vbInformation, "Makro beendet"
Exit Sub
End If
Startwert = WorksheetFunction.RoundUp(Range("B105"), 0)
iZeile = 106
Do Until Startwert > Range("B101")
Cells(iZeile, 2) = Startwert
iZeile = iZeile + 1
Startwert = Startwert + 1
Loop
Exit Sub
errorhandler:
MsgBox "Fehler den es nicht geben sollte.", vbCritical, "Fehler"
End Sub

Anzeige
Def. Prosa, mehr als geplant; besten Dank Chris!
thomas
Hallo Chris,
Def. Prosa (Quelle: Duden): Schrift in ungebundener Form; d.h. nicht in Reimform. Fast alle Texte sind also Prosa, z.B. Zeitungstexte etc.
die Lsg sieht gut aus, aber sie schiesst weit über mein Ziel hinaus. Eigentlich wollte ich keine Msgboxen etc. Aber ich versuchs jetzt einfach in das umzukrempeln wie ichs brauche. Dann lerne ich auch wieder was und kann vielleicht in ein paar Jahren schon bei der Levelwahl auf VBA - gut umschalten.
Besten Dank Chris!
thomas
Danke für die Rückmeldung ;-)
ChrisL
... und die Übersetzung. Einen Duden könnte ich mir auch mal kaufen. ;-)
cu
Chris
Erklärung
thomas
Hallo,
habe im Code von Chris ein paar Sachen weggelassen (siehe oben). Das Makro funktioniert tiptop so. kann mir jemand noch erklären für was die Anweisungen zwischen ===== stehen? Und was genau ist der Vorteil, wenn ich den Code in Originalversion nehme (von Chris, siehe oben)?
Wäre froh, wenn mir jemand das erklären könnte, damit ich etwas lerne!
thomas

Sub pluszehn
Dim iZeile As Long
Dim Startwert As Long
On Error GoTo errorhandler
Startwert = WorksheetFunction.RoundUp(Range("B105"), 0)
iZeile = 106
Do Until Startwert > Range("B101")
Cells(iZeile, 2) = Startwert
iZeile = iZeile + 1
Startwert = Startwert + 10
Loop
Exit Sub
errorhandler:
MsgBox "Fehler den es nicht geben sollte.", vbCritical, "Fehler"
End Sub

Anzeige
AW: Erklärung
ChrisL
Hi Thomas nochmal
Nur ganz schnell... Im Falle irgend eines Codefehlers springt das Programm ans ende und führt die Nachricht aus, was sonst wegen dem Exit Sub (abbruch) nicht geschieht. Dies kann z.B. geschehen, wenn die Zahlen mit denen du arbeitstet zu hoch sind damit sie als Long dimensioniert werden könnten (Dim Variable As Long).
Die anderen If Abfragen führen einfach ein paar Checks aus... Ist der Wert nummerisch, ist B105 grösser B101 etc. Mindestens wenn der Wert nicht nummerisch wäre würde der Code sonst in einen Error laufen.
Gruss
Chris
Besten Dank Chris für Erklärung. o.T.
13.04.2004 19:06:43
thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige