Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Windows & Programme (https://www.tweakpc.de/forum/windows-and-programme/)
-   -   Excel Makro (https://www.tweakpc.de/forum/windows-and-programme/73546-excel-makro.html)

io.sys 17.11.2009 16:25

Excel Makro
 
Hallo,

ich mache gerade Auswertungen über die Zeiterfassungen unserer Technikabteilung.
Wir arbeiten momentan noch mit Exchange und öffentlichen Ordnern.
In den Ordnern werden die Aufgaben an denen die Techniker gerade arbeiten bearbeitet.
Nach Abschluss eines Tickets tragen Sie den Aufwand für das Ticket in das Feld "Gesamtaufwand" ein.

Leider ist das ein Freitextfeld in Exchange und dann sehen die Eingaben wie folgt aus.


[code]
Gesamtaufwand
15 Minuten
30 Minuten
2,5 Stunden
1,5 Stunden
[/code]

Da ich aus der Ansicht mit den Aufgaben einfach einen schönen Copy&Paste nach Excel machen kann habe ich jetzt nur noch das Problem, dass sich die oben dargestellten Werte natürlich schlecht addieren lassen.

Momentan bin ich noch dabei die Spalte immer händisch durchzugehen und den Wert dann in Minuten umzurechnen.
Ist auch eine Möglichkeit aber kostet mich jedes Mal Zeit und Fehler können sich einschleichen.

Gibt es eine Möglichkeit, das irgendwie automatisch per Makro in Minuten umrechnen zu lassen?
Praktisch, wenn Minuten eingetragen sind, wird nur der Wert als solcher übertragen. Und wenn Stunden eingetragen sind, wird der Wert mal 60 genommen und dann in ein Feld übergeben.

Ich möchte eigentlich eine zweite Spalte aufmachen und den Wert aus der oben genannten Spalte umrechnen und in Minuten genormt ausgeben.

Gibt es dafür ein Makro, eine Formel oder ein anderes Helferlein?

Ist Excel2007.

Vielen Dank bereits im Voraus!!! :-)

Schöne Grüße,

ich :iosys:

Fakk-asrock 17.11.2009 16:59

AW: Excel Makro
 
hm je nachdem wie oft du das machen musst kannst du es ohne makro vllt einfacher durchführen:

erstmal mit alle einträge, die "stunden" enthalten, herrausfiltern. damm mit suche/ersetzte z.B. "stunde" entfernen dann hast du nur noch zahlenwerte in den feldern die du mit 60 multiplizieren kannst.
anschließend die werte wieder mit den vorherigen zusammenfügen und schon hast du alles in minuten.

dort könntest du natürlch mit ersetzen auch alle worte "Minuten" entfernen lassen -- und dann addieren.

Es gibt auch die möglichkeit, worte hinter zahlenfolgen in das folgende feld zu verschieben.

Knuffi_DD 17.11.2009 21:31

AW: Excel Makro
 
Kein Thema wenn in der Spalte A deine oben genannten Werte stehen folgende Formel verwenden:
=WENN(IDENTISCH("Minuten";RECHTS(A2;7));LINKS(A2;2)*1;WENN(IDENTISCH("Stunden";RECHTS(A2;7));LINKS(A2;3)*60;0))

Das Ergebnis liefert die Minuten.

[EID]-Mr.GiZMO 18.11.2009 09:13

AW: Excel Makro
 
Habe es etwas "einfacher":

[code]=WENN(ISTZAHL(SUCHEN("*M*";A2));WERT(LINKS(A2;FINDEN(" ";A2)-1));WERT(LINKS(A2;FINDEN(" ";A2)-1))*60)[/code]Macht folgendes:
Wenn Suche nach "M" (für Minuten) irgendwo in der Zelle erfolgreich, dann übernimmt er den [U]Wert[/U] ([B]WICHTIG[/B], Wert, weil sonst als Text angesehen, der nicht für spätere Berechnungen verwendet werden kann) der ersten Zeichen bis zum Leerzeichen. Sonst (M nicht gefunden) wird der Wert bis zum Leerzeichen mit 60 multipliziert.

Bedingung, dass das ganze funzt:
- Es muss ein Leerzeichen zwischen Wert und Einheit stehen
- es muss überhaupt eine Einheit vorhanden sein

Folgendes ergab mein Test:

[code]
[B]Gesamtaufwand in Minuten[/B]
15 Minuten 15
30 Minuten 30
2,5 Stunden 150
1,5 Stunden 90
0 #WERT!
2 Katzen 120
3Minuten #WERT!
Stunde #WERT!
Minute #WERT!
1 Std. 60
20 Mins. 20 [/code]Alles andere (Fehlerbehandlung etc.) muss über Makro gemacht werden - kann ich dir auch machen, wenn du es brauchst!

Gruß!
:gizmo:

io.sys 24.11.2009 13:43

AW: Excel Makro
 
Ok, ich sitze jetzt hier und versuche mich an den Makros.

Was mir im Makro noch fehlt, wäre der Hinweis, wo ich an welchen Stellen die Spalten und Bereiche definieren muss.

DANKE EUCH! :-)

[EID]-Mr.GiZMO 24.11.2009 15:14

AW: Excel Makro
 
hää?

Poste mal das Makro.

[EID]-Mr.GiZMO 24.11.2009 16:56

AW: Excel Makro
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mal was universelles cecodet:

Makro rechnet alles um, was du definierst. Groß- und Kleinschreibung der Einheit ist egal, Dezimaltrennzeichen Punkt wird als Komma angesehen (1.5 = 1,5 ABER ist dann auch 1.000 = 1,0).

Du musst nur die Startzelle und deine Einheiten definieren.

Der Code:

[code]
' Zeitaufwandskonverter von [EID]-Mr.GiZMO :)


' Beginn Konfiguration

Const Startzeile As Integer = 1 ' Hier definieren, wo die erste Zelle mit Zeiteintrag steht
Const Startspalte As Integer = 1

Type EinheitUndWertInMinuten
Einheit As String
Wert As Integer
End Type
Global Zeiteinheiten() As EinheitUndWertInMinuten


Sub Converter()

ReDim Zeiteinheiten(0 To 2) ' Hier Zahl erhöhen, wenn unten weitere Einheit hinzukommt

Zeiteinheiten(0).Einheit = "min" ' Immer Wort ('min' findet "min", "minute", minuten" etc. in Groß- und Kleinschreibung
Zeiteinheiten(0).Wert = 1 ' Und zugehöriger Wert

Zeiteinheiten(1).Einheit = "st"
Zeiteinheiten(1).Wert = 60

Zeiteinheiten(2).Einheit = "tag"
Zeiteinheiten(2).Wert = 1440

' Ende Konfiguration




actualLine = Startzeile
actualRow = Startspalte
weiter = True

While weiter = True
Zelleninhalt = Cells(actualLine, actualRow).Value
For i = 0 To UBound(Zeiteinheiten)
If LCase(Zelleninhalt) Like "*" & Zeiteinheiten(i).Einheit & "*" Then
ZellenWert = Replace(Left(Zelleninhalt, InStr(LCase(Zelleninhalt), Zeiteinheiten(i).Einheit) - 1), ".", ",")
Cells(actualLine, actualRow + 1).Value = ZellenWert * Zeiteinheiten(i).Wert
End If
Next
actualLine = actualLine + 1
If Cells(actualLine, actualRow).Value = "" Then weiter = False
Wend

End Sub

[/code]Im Anhang gleich die .bas Datei zum direkten Import in VBA.
Dann noch nen Button oder Tastenkombi auf Converter.Timeconverter lgen et voilà!

Gruß
:gizmo:

[EID]-Mr.GiZMO 01.12.2009 11:58

AW: Excel Makro
 
Geht das? :D

io.sys 17.12.2009 08:02

AW: Excel Makro
 
Ich habe es jetzt ein wenig einfacher gelöst bekommen als die *.BAS Datei.

Habe das Ganze über ein Makro mit meinem Vater zusammen gebaut.
Aber die Ansätze hier waren es eigentlich, die uns zur Lösung geführt haben.

=WENN(D6="m";B6;WENN(D6="s";B6*60;WENN(D6="t";B6*1440;"? ? ?")))

Allerdings habe ich jetzt noch ein Problem, dass er mir die Makros unter 2007 nicht in der Form ausführen will, wie sie mit Office 2000 erstellt wurden... :lol:
Ach die Welt ist schlecht... ;-)

Trotzdem Danke! Die Lösung habe ich jetzt und ich bin soweit ganz glücklich! :-)


Und wie immer: TOP Forum, TOP Antworten! :-)

Die Firma dankt! :iosys:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.