Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBA

  • VBA von Snewi vom 20.08.2008 11:30:12
    • Wozu VBA? - von mpb am 20.08.2008 11:42:32
    • AW: VBA - von Daniel am 20.08.2008 11:44:44
      • AW: VBA - von Snewi am 20.08.2008 11:46:58
        • AW: VBA - von Daniel am 20.08.2008 11:55:19
          • AW: VBA - von Snewi am 20.08.2008 12:51:09
            • AW: VBA - von Snewi am 20.08.2008 12:53:26
            • AW: VBA - von mpb am 21.08.2008 09:36:29
        • AW: VBA - von yusuf am 20.08.2008 12:00:58

Betrifft: VBA von: Snewi
Geschrieben am: 20.08.2008 11:30:12

Hallo,

ich mhabe eine Länge von 22,0 m die ich automatisiert über einen Button in Unterlängen aufteilen möchte! Die Unterlängen dürfen max 5,70 betragen. Wie kann ich das mit VBA machen und dann in einer Tabelle darstellen zb. bei 22,0 m / 5,70 sind das 3,85 also habe ich 3 x 5,70 und einen Rest von 4,90 also 1x 4,90!

Gruß

  

Betrifft: Wozu VBA? von: mpb
Geschrieben am: 20.08.2008 11:42:32

Hallo ???,

wozu VBA?

A1: 22
B1: 5,7
C1: =GANZZAHL(A1/B1); Ergebnis: 3
D1: =REST(A1;B1); Ergebnis: 4,7

Gruß
Martin


  

Betrifft: AW: VBA von: Daniel
Geschrieben am: 20.08.2008 11:44:44

Hi

den ersten Wert bekommst du ohne VBA mit der Formel:
=Abrunden(22/5,7;0)
und den zweiten Wert mit der Formel:
=22-5,7*(ABRUNDEN(22/5,7;0))

falls du es als VBA benötigst: die entsprechende Funktion für Abrunden heißt: Worksheetfunction.RoundDown() mit den gleichen Parametern.

Gruß, Daniel


  

Betrifft: AW: VBA von: Snewi
Geschrieben am: 20.08.2008 11:46:58

Hallo

weil ich Grundsätzlich mal wissen möchte wie sowas in VBA aussehen würde!
Vielleicht kann jemand ne Mappe hochladen :-)

Gruß


  

Betrifft: AW: VBA von: Daniel
Geschrieben am: 20.08.2008 11:55:19

in VBA sieht das so aus:

Sub test()
Dim Anzahl_Standardlänge As Long
Dim Restlänge As Single
Anzahl_Standardlänge = WorksheetFunction.RoundDown(22 / 5.7, 0)
Restlänge = 22 - 5.7 * WorksheetFunction.RoundDown(22 / 5.7, 0)
MsgBox "Benötigt werden: " & Anzahl_Standardlänge & " x 5,7m und 1 x " & Restlänge & "m."
End Sub


wenn jemand ne Mappe hochladen soll, dann vielleicht doch erstmal du mit ein paar bespieldaten.

Gruß, Daniel


  

Betrifft: AW: VBA von: Snewi
Geschrieben am: 20.08.2008 12:51:09

Hallo Daniel,

deine Version ist gut, jetzt möchte ich aber noch wenn es einen Rest gibt überprüfen ob dieser größer 4,50 ist und wenn nicht dann soll von der Anzahl eine Länge weggenommen werden und den Rest neu berechnen!

Wie würde es dann aussehen?

Gruß


  

Betrifft: AW: VBA von: Snewi
Geschrieben am: 20.08.2008 12:53:26

vielleicht könnte man es mit einer Schleife machen solange Rest vorhanden weiter aufteilen sonst fertig?
Nur wie geht das genau?

Gruß


  

Betrifft: AW: VBA von: mpb
Geschrieben am: 21.08.2008 09:36:29

Hallo,

ich zumindest verstehe die neue Problemstellung nicht. Formuliere das doch nochmal neu und beschreibe Schritt für Schritt, was unter welchen Bedingungen wie aufgeteilt werden soll und welches Ergebnis Du erwartest.

Gruß
Martin


  

Betrifft: AW: VBA von: yusuf
Geschrieben am: 20.08.2008 12:00:58

Hi,



hier mal ein kleines Beispiel.

Bin nicht so der VBA-Crack. Geht bestimmt viel eleganter.



https://www.herber.de/bbs/user/54747.xls




Gruß

Yusuf