Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
220to224
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
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

umrechnung in vba

umrechnung in vba
21.02.2003 14:47:58
Bagu
hallo, kann mir bitte jemand helfen und ein kleines vba-programm schreiben, welches zahlen aus 2 spalten ein liest und diese dann in grad, minuten und sekunden umrechnet.
zum beispiel sollen die werte 5205213 in 52° 05'[minuten] 12''[sekunden] und 1022767 in 10° 22'[minuten] 46''[sekunden] umgerechnet werden. die rechnung ist folgendermaßen zu sehen.
5205213 die 52 sind gleich die grad zahl also 52°, dann bleibt 05213 übrig und das sind 5,213 minuten und die sind umzurechnen in minuten und sekunden, also ist die 5 gleich 5 minuten und dann bleiben 0,213 übrig und die nimmt man mit 60 mal und man hat die sekunden also 0,213*60=12,78 sekunden und die 78 läßt man weg. ich bin euch sehr dankbar wenn ihr mir helfen könntet.
ich habe gar keine ahnung wie ich das machen soll und ein gutes bucha habe ich noch nicht gefunden.
vielen vielen dank im vorraus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: umrechnung in vba
21.02.2003 14:56:11
Nike

Hi,
wie soll den die Ausgabe aussehen?
52° 5min 12Sec als Text
oder
52 5 12
oder wie?

Bye

Nike

Re: umrechnung in vba
21.02.2003 15:07:26
Bagu

die ausgabe sollte wie folgt aussehen:
52° 5' 12''
danke.


Re: umrechnung in vba
21.02.2003 15:33:41
Nike

Hi,
Schwein gehabt, gerade vor Ende fertig geworden ;-)

also das hier in das modul:

~Public Function gradoMeter(rngQuell As Range) As String
'52° 5' 12''
'5205213 die 52 sind gleich die grad zahl also 52°,
'dann bleibt 05213 übrig und das sind 5,213 minuten
'und die sind umzurechnen in minuten und sekunden,
'also ist die 5 gleich 5 minuten
'und dann bleiben 0,213 übrig
'und die nimmt man mit 60 mal und man hat die sekunden also 0,213*60=12,78 sekunden
'und die 78 läßt man weg
Dim strInput As String
Application.Volatile
On Error GoTo ErrEnd
strInput = CStr(rngQuell)
If Len(strInput) <> 7 Then
Err.Raise 513 '
End If
gradoMeter = Left(strInput, 2) & "° " & _
CInt(Mid(strInput, 3, 2)) & "' " & _
Fix((CDbl(Right(strInput, 3) / 1000) * 60)) & ""
Exit Function
ErrEnd:
Err.Clear
gradoMeter = ""
End Function
~end~

und in deiner Tabelle z.B. =gradoMeter(A1)
eingeben...

Bye

Nike

Anzeige
Re: kleine Korrketur ->"
21.02.2003 15:41:42
Nike

Hi,
da hat noch das abschließende " gefehlt...
hier die Korrektur:

Bye

Nike

Re: kleine Korrketur ->"
21.02.2003 17:56:33
Bagu

du ich danke dir zwar sehr für deine mühe, aber ich habe keine ahnung wie ich das ding zum laufen bringen soll. kannst du mir da vielleicht auch weiter helfen. und könntest du mir auch noch ein buch empfehlen welches ich mir vielleicht besorgen sollte.

Re: kleine Korrketur ->"
21.02.2003 18:22:27
Nike

Hi,
bei einer der vorherigen Beiträge
hatte ich noch das hier gepostet:
---------------------------------------------
und in deiner Tabelle z.B. =gradoMeter(A1)
eingeben...
---------------------------------------------
also, wenn du in A1 deinen Zahlwert hast
und diese Funktion z.B. in B1 eingibst,
dann erscheint in B1 das gewünschte Ergebnis...

Den Teil von Function bis End Function (einschließlich)
hier im Forum auswählen, kopieren,
nach Excel wechseln, dort die Tastenkombi
Alt und F11 drücken -> es öffnet sich der VBA Editor
dort gehst du über das Menü Einfügen und wählst modul aus.
Es öffnet sich ein Modulfenster eines neuen Moduls.
Dort klickst du einmal mit der Maus rein und
fügst den Code ein.
Anschließend schließt du über die Tastenkombi Alt+Q
den VBA Editor und gibst in deiner Tabelle dann
z.B. =gradoMeter(A1)
ein. Tut sich nix, drückst du einmal F9
(bei manueller Berechnung das Berechnen mal anstoßen)

Na, ich hoffe das war jetzt ausführlich genug ;-)

Bye

Nike

Anzeige
Re: kleine Korrketur ->"
22.02.2003 14:29:09
Bagu

hallo nike, ich bin dir echt super dankbar für deine tolle hilfe. könntest du mir vielleicht noch mal verraten wie ich das programm ändern soll damit die werte von der ganzen splate A, z.b spalte A1 bis A600 umgerechnet werden soll??

ich will dich ja nicht überstrapaziern, aber kann ich bei gelegenheit wieder auf deine hilfe zurückgreifen??

mfg bagu

Re: kleine Korrketur ->"
24.02.2003 09:03:56
Nike

Hi,
du kopierst die Funktion einfach in der Spalte nebenan
runter paralell zu den Einträgen,
also für A1 in B1 bis A600 und dafür dann in B600 die Funktion
=gradoMeter(A600)
Runterkopieren kannst du auch mit der Maus, in dem du in die
rechte untere Ecke der Zelle klickst es erscheint ein etwas dickeres Kreuz, dann klickst du die Maus, hälst Sie geklickt
und siehst sie herunter bis ans Ende deiner Werte...

Bye

Nike

P.S. Auf meine Hilfe kannst du jederzeit zurückgreifen.
Es könnte nur sein, das ich gerade keine Zeit hab.
Poste also lieber einfach ins Forum, dann wird sich
schon einer drumm kümmern ;-)
Einfach nur nicht mich adressieren, sonst kümmert sich
u.U. kein anderer drumm...

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige