Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
996to1000
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

Abrunden in vba

Abrunden in vba
28.07.2008 16:32:54
Dirk
Hallo miteinander,
habe mal wieder ein Problem bei meiner Erweiterung der Tabelle.

Die Datei https://www.herber.de/bbs/user/54179.xls wurde aus Datenschutzgründen gelöscht


Möchte per vba auf viertel Stunden abrunden, also wie hoffentlich aus der Tabelle ersichtlich von der vollen Stunde bis 15 min ist erste Viertelstunde, von 15 -30 min die 2. Viertelstunde usw.
habe in Excel Abrunden gefunden,was genau so funktioniert wie ich es mir vorstelle aber wie krieg ich das in vba ohne eine Zelle zu brauchen?
Mit meinem vba Code funktioniert es fast,allerdings nur 1 Minute lang, solange es genau eine volle Stunde ist, oder halt 15-,30-, oder 45min ist. Wie kann ich erreichen das das funktioniert?
Bin für Hilfe und Verbesserungen immer Dankbar
Gruss Dirk

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abrunden in vba
28.07.2008 16:48:05
Rudi
Hallo,

aber wie krieg ich das in vba ohne eine Zelle zu brauchen


prinzipiell genauso.
neueZeit=worksheetfunction.rounddown(alteZeit*96,0)/96
Gruß
Rudi

AW: Abrunden in vba
28.07.2008 17:01:00
Dirk
Hallo Rudi,
erst einmal danke,
auf worksheetfunctin.rounddown wäre ich glaub ich nie gekommen. Beim probieren kommt jetzt aber ein Wert 0,6979....irgendwas raus
rechne mit Time, mache ichda noch was falsch?
als was muss ich meine variable denn deklarieren?
Danke Dirk

AW: Abrunden in vba
28.07.2008 17:38:47
fcs
Hallo Dirk,
in Excel entspricht der Wert 1 = 1 Tag oder 24 Stunden
0,7187500 entspricht z.B. 17:15:00
ggf. muss du das Ergebnis nur entsprechend formatieren.
Fallls du nur positive Werte hast, dann kannst du die Werte als Date deklarieren. Falls die Rechenwerte negative Werte ergeben können, dann ist es besser mit Double-Variablen zu arbeiten.
Gruß
Franz

Anzeige
AW: Abrunden in vba
28.07.2008 18:08:00
Dirk
Hallo Franz
auch Dir ersteinmal herzlichen Dank.
Das mit der Deklarierung mit Date funktioniert, negative Werte dürften glaub ich nicht vorkommen, da ich nur von 0:00 bis 23:59Uhr abfragen will.
Jetzt hab ich bei meiner Tabelle noch ein Problem, in Zeile 1 stehen ja die Uhrzeiten, die Stunden stehen richtig, und die "Virtelstunden" um 90° verdreht. Habe sie benuzerdefiniert mit mm deklariert, es stellt sich aber nach Neustart immer auf MM um, weist du zufällig wie ich das vermeiden kann?
Besten Dank für die Unterstützung
Dirk

AW: Abrunden in vba
28.07.2008 21:35:00
Björn
Hallo Dirk,
was Du mit

die "Virtelstunden" um 90° verdreht

meinst, ist mir nicht ganz klar.
Das Phänomen, dass offensichtlich der Monat höher priorisiert wird als die Minute (Austausch M für m), kannst Du wie folgt umgehen:
neueZeit = WorksheetFunction.RoundDown(alteZeit * 96, 0) / 96 - WorksheetFunction.RoundDown(alteZeit, 0)
neueZeit = (neueZeit * 2400 Mod 100) / 100 * 60
Das Ergebnis ist 0, 15, 30 oder 45.
Viele Grüße
Björn

Anzeige
AW: Abrunden in vba
28.07.2008 22:49:19
Dirk
Hallo Björn,
auch Dir erstmal danke das du mir bei meinem Problem hilfst.
Das mit dem 90° bezieht sich auf die Ausrichtung des Zellinhaltes in meiner beigefügten Tabelle.
Werde jetzt versuchen, Deine "Formel" einzubauen, erstmal danke, auch wenn ich es noch nicht ganz verstehe, melde mich bestimmt nochmal
Danke Dirk

AW: Abrunden in vba
29.07.2008 09:00:16
Björn
Hallo Dirk,
vermutlich habe ich Dein Problem nicht richtig erfasst. Ich hatte Deine Datei im ersten Beitrag übersehen und ging nun davon aus, dass Du über die Formel die jeweilige Viertelstunde (0, 15 30 oder 45) ermitteln willst. Dafür taugt die Formel, für mehr aber auch nicht. Wenn also Deine bisherige Formel "OK" war, dann lasse sie unverändert.
Anscheinend geht es Dir lediglich um die Anzeige der fest in der Tabelle verankerten Werte (B1:BS1). Wenn dem so ist, dann formatiere die Zellen mit folgenden benutzerdefinierten Formaten:
Zellen der 2. Viertelstunde: 15
Zellen der 3. Viertelstunde: 30
Zellen der 4. Viertelstunde: 45
Viele Grüße
Björn

Anzeige
AW: Abrunden in vba
29.07.2008 14:33:00
Dirk
Hallo Björn,
ja genau, meinte B1 bis cs1, Dein Vorschlag die Zellen nur 15,30, bzw. 45 zu nennen geht leider nicht,
da dann mein Makro nicht mehr arbeitet.
Habe jetzt das ganze so formatiert das die Zelle "h:mm"anzeigen, da wenn ich benuzerdefiniert nur "mm" formatiere, klappt das ganze nur bis zum Neustart der Tabelle.
Denke das ich mit der Lösung leben muß.
Danke für Deine Mühen, Gruss vom Teutoburger Wald
Dirk

AW: Abrunden in vba
29.07.2008 17:29:00
Björn
Hallo Dirk,
da musst Du nicht mit leben. Hab mal das Makro angepasst, so dass es funktioniert.
https://www.herber.de/bbs/user/54202.xls
Ach ja, bei der benutzerdefinierten Formatierung der Zellen besser die 15, 30, und 45 als "15","30" und "45" eintragen. Das habe ich in meinem Upload nur teilweise gemacht. Insoweit ist die Datei also auch noch verbesserungsfähig.
Viele Grüße
Björn

Anzeige
Vielen Dank
30.07.2008 00:12:27
Dirk
Hallo Björn,
wow, das gefällt mir,sieht so um einiges besser aus, danke
Das ist das schöne an diesem Forum, man fragt und bekommt eine Super Hilfe, und lernen kann man immer was, muss jetzt erst mal den Code verstehen.
Vielen Dank nochmal
Gruss vom Teutoburger Wald
Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige