Altersberechnung in Word

A

aignermi

Gast
Hallo liebes Forum!


Ich habe heute den ganzen Tag mit googlen verbracht, doch nun bin ich mit meinem Latein am Ende

Ziel meiner Aufgabe ist es das Alter einer Person ohne zusätzlichem Datenmüll in einem Organigramm in Word (ich weiß, klingt komisch) anzuführen.

Ein Beispiel:

Max Mustermann
45/16
(die erste Zahl ist das Alter, die zweite die Anzahl der Dienstjahre, berechnet aus Geburtsdatum und Eintrittsdatum bis zum heutigen Tag)

ok...
mit einer Feldfunktion funktioniert das Ganze nur bedingt, ich kann nur ganze Zahlen für die Berechnung verwenden, sprich Jahrgänge was eine gewisse Ungenauigkeit aufwirft.

Somit bin ich auf ein Makro ausgewichen, hier das derzeitige:

' Exaktes Alter berechnen
Public Function Alter(ByVal vGeburtstag As Variant) As Integer
Dim nDif As Integer

vGeburtstag = CDate(vGeburtstag)
nDif = DateDiff("yyyy", vGeburtstag, Now())
If Month(vGeburtstag) > Month(Now) Then
nDif = nDif - 1
ElseIf Month(vGeburtstag) = Month(Now) Then
If Day(vGeburtstag) > Day(Now) Then nDif = nDif - 1
End If

Alter = nDif


End Function


Jetzt stellt sich die Frage wie ich das Ganze in mein Organigramm implementieren kann, zur Info: dieses wird später von einem Dau verwaltet und aktualisiert (Austritt aus dem Unternehmen, neue Mitarbeiter etc.) deshalb sollte das Ganze ein möglichst einfacher Vorgang sein, am besten es ließe sich das Makro über eine Feldfunktion aufrufen und wirft anschließend die gewünschten Daten aus.

hat jemand eine Idee von euch, ich weiß echt nicht mehr weiter? :(

Danke für eure Hilfe, freue mich über jede Unterstützung


Lg Michael
 
Hast du schonmal was von Excel gehört? Das kann doch hier nicht euer Ernst sein, da schiesst ihr euch ja selbst ins Knie und wundert euch dann auch noch, dass es schmerzt.

Und wenn es darum geht, dass auch noch grafisch aufzuarbeiten und irgendwo darzustellen, dann ist ein Office Produkt irgendeiner Art womöglich sogar der ganz falsche Ansatz.
 
Tja, was soll ich machen, Kundenwunsch ist Kundenwunsch, vorher gabs ja Visio, doch das sollen wir ausdrücklich nicht mehr verwenden, das Ganze soll ausschließlich im Word dargestellt und bearbeitet werden.

Hätte ich Ausweichmöglichkeiten so glaub mir, hätt ich die bestimmt bereits genutzt. ;)
 
Ja gut, verstehe. Die Problematik kennt man ja. Das ist so ein Fall, wo man besser mal "Nein!" gesagt hätte. Das lief hier ja also in der Planungsphase bzw. während der Beratung mit dem Kunden schon schief, jetzt musst du damit leben.
Viel Erfolg dabei, ich hab da auf Word Basis leider auch keine Idee.
 
Hey,

ich habe keine Lösung für das Problem. Aber ich würde mal im anderen Forum anfragen, z.B. bei

http://www.office-loesung.de/

Da lesen und schreiben sehr kompotente Leute. Die haben mir bei der Bachelor Arbeit das Leben gerettet.
 
Kannst du das mal grafisch zeigen? Eine Exceltabelle zur Berechnung einfügen ist ebenfalls unerwünscht/"Datenmüll"?
 
Wie meinst du das mit grafisch zeigen?
Das mit der Exceltabelle kam mir auch schon in den Sinn, allerdings bekomm ich dann ein Problem mit der Formattierung..
Die Organigrammfunktion von Word ist meiner Meinung nach ja totaler Schrott, somit bin ich auf Textfelder welche ich beliebig anordnen kann ausgewichen, das ist auch der Einzige weg die knapp 300 Leute korrekt und sauber anzuordnen sodass das ganze eine Struktur bekommt.
Mit Datenmüll hab ich gemeint dass ich im Endeffekt nicht die Geburtsdaten im Organigramm stehen habe möchte, sondern dass durch eingabe des Datums in eine Funktion das Makro automatisch das Alter errechnet

als kleines Beispiel hier:
{ = { DATE \@ "yyyy" } - 1989 }
Mit dieser Funktion wüde mir Word mein derzeitiges alter hinschreiben, allerdings hab ich erst im Februar Geburtstag, somit bin ich erst "23" Jahre alt und noch keine 24 wie Word es mir weismachen will ^^

Ich weiß, sind sehr außergewöhnliche Wünsche, hab auch nach stundenlangem googlen nicht viel erreicht.

Danke für die schnellen und vielen Antworten :)

Lg Mike
 
Hallo Mike,

versuche es doch einmal mit diesem Makro:
Code:
Option Explicit

Sub Exaktes_Alter()
   MsgBox Alter("3.1.1993")
End Sub

Function Alter(vntGeburtstag As Variant) As Integer
   Dim Heute As Date
   Heute = Date
   Alter = Year(Heute + 1 - CDate(vntGeburtstag)) - 1900
End Function
Das sollte hinhauen ...
 
Zurück
Oben