Hallo, ist es möglich in einer Word-Tabelle das Alter aus dem Geburtsdatum und aktuellem Datum zu berechnen? Ich weiß, mit Excel geht es; aber ich habe nun mal eine (riesige) Word-Tabelle und das transferrieren in Excel erzeugt eine fehlerhafte Tabelle (Korrektur macht zu viel Arbeit!).
Hallo cptwoda,
gelöscht!
Wieder eine Antwort von H. Schreiner, bevor Sie meine gelesen haben!!
MfG
Li
Lieber User,
die meisten EXCEL-Formeln laufen leider nicht unter Word.
Eine Lösung für Ihr Problem ist ein Word-Makro.
In der Anlage erhalten Sie eine ZIP-Datei. Wenn Sie die Datei entpacken, dann erhalten Sie die Word-Datei JS Alter per Makro ermitteln.docm.
Die Datei beinhaltet also ein Makro (Endung.docm). Word-Dokumente mit Makros kann man leider hier im Forum direkt nicht hochladen, daher der Umweg über die ZIP-Datei.
Bitte beachten Sie, dass Sie in Word Makros zulassen müssen. Word > Optionen > Trust Center > Einstellungen für das Trust Center.
Das Makro wurde von dem Experten Bernd Held erstellt (Verfasser div. Bücher – kann man nur empfehlen) – siehe Amazon.de : Bernd Held . (allerdings wurde das Alter nur für ein Feld berechnet)
Ich habe das Makro entsprechen geändert – jetzt werden alle leeren Alter-Felder (Spalte B ab Zelle B2) automatisch mit dem Alter gefüllt.
Nach Abstimmung mit Herrn Held – hier das Makro:
Option Explicit
Sub AlterBerechnenAlleZeilen()
Dim tabelle As Table
Dim gebDatum As Date
Dim aktuellesDatum As Date
Dim strDatum As String
Dim alter As Long
Dim i As Long
Dim letzteZeile As Long
Rem Erstellt von Bernd Held am 17.04.2025
Rem Abgeändert auf alle Zellen der Spalte B=Alter von Josef Schreiner am 17.04.2025
‚ Erste Tabelle im Dokument ansprechen
Set tabelle = ActiveDocument.Tables(1)
‚ Aktuelles Datum
aktuellesDatum = Date
‚ Bestimme die letzte Zeile mit Daten (angenommen, Spalte A ist immer ausgefüllt)
letzteZeile = tabelle.Rows.Count
On Error GoTo Fehlerfall
‚ Schleife durch alle Zeilen ab Zeile 2 (angenommen, Zeile 1 ist Kopfzeile)
For i = 2 To letzteZeile
‚ Geburtsdatum aus Spalte A lesen
strDatum = Trim(Replace(tabelle.Cell(i, 1).Range.Text, Chr(13), „“))
strDatum = Trim(Replace(strDatum, Chr(7), „“))
Debug.Print „Zeile “ & i & „: “ & strDatum
‚ Versuche, das Datum zu konvertieren
If strDatum <> „“ Then
gebDatum = DateValue(strDatum)
‚ Alter berechnen
alter = DateDiff(„yyyy“, gebDatum, aktuellesDatum)
‚ Korrigieren, falls Geburtstag dieses Jahr noch nicht war
If Month(gebDatum) > Month(aktuellesDatum) Or _
(Month(gebDatum) = Month(aktuellesDatum) And Day(gebDatum) > Day(aktuellesDatum)) Then
alter = alter – 1
End If
‚ Ergebnis in Spalte B schreiben
tabelle.Cell(i, 2).Range.Text = alter & “ Jahre“
Else
‚ Falls kein Datum vorhanden ist, Zelle leeren oder eine Nachricht
tabelle.Cell(i, 2).Range.Text = „“
End If
Next i
Exit Sub
Fehlerfall:
MsgBox „Bitte ein gültiges Geburtsdatum in Zeile “ & i & “ eingeben (z. B. 28.06.1955).“, vbExclamation
End Sub
Dieses Makro können Sie in die Zwischenablage übernehmen und dann als Modul einfügen.
In Word muss das Register Entwicklertools aktiviert werden siehe > Registerkarte „Entwickler“ in Word anzeigen – Microsoft-Support
Viel Erfolg.
Mit freundlichen Grüßen und Frohe Ostertage
Josef Schreiner
###################################################
Nachtrag
Leider hat Frau Lippmann Ihre Antwort – Lösung über eine Feldfunktion – gelöscht.
Diese Webseite spiegelt ungefähr den Inhalt wieder.
Altersberechnung mit Feldern (Microsoft Word) – office-skill
Die hier aufgeführte Formel können Sie nicht in die Feld-Funktion { } per Zwischenablage kopieren. Dies lässt Word nicht zu. Sie müssen alles per Hand eingeben besonders { } mit Strg+F9.
Bei PC-Fragen gibt es oft mehrere Lösungswege.
Josef Schreiner
Herr Schreiner,
wenn schon eine Antwort dasteht, muss man nicht unbedingt noch eine zweite hinterherschicken. Das bekommt den meisten hier nicht. Deshalb habe ich meine gelöscht.
Bei PC-Fragen gibt es oft mehrere Lösungswege.
Das ist bekannt. Aber wenn schon, dann einen nach dem andern! Jedenfalls in diesem Forum.
Ich hatte meine Antwort zwar gestern schon geschrieben, sie war aber noch ohne Reaktion. Ich sehe ja, wann der Fragesteller im Club unterwegs ist. Er hatte sie noch nicht einmal gelesen!
Lippmann
Hallo an alle. Danke für die 3 Vorschläge. Ich werde dazu nach Ostern zurückkommen. Vorerst: Frohe Ostern!
Das habe ich mir gedacht! So eiltg haben’s die meisten hier nämlich gar nicht.
Die Fragesteller können sich ruhig auch mal mit einem Vorschlag beschäftigen, der nicht den schnellsten und bequemsten Weg beschreibt. Solange der Weg nicht falsch ist, lernen sie trotzdem dazu. Mit der Perfektlösung auf dem Silbertablett fördert man keine Eigeninitiative, sondern Anspruchshaltung.
Anspruch haben die Fragesteller in diesem Club auf eine Antwort innerhalb von 48 Stunden, mehr nicht. Mit der soltten sie sich erstmal beschäftigen. Danach kann es, wenn nötig, immer noch weitergehen: innerhalb der nächsten 48 Stunden.
Ich sehe das Forum eher als Lernveranstaltung und nicht als Lösungsfabrik!
Alle hier wollen doch möglichst irgendwann mal ohne Hilfe zurechtkommen. Zumindest hoffe ich, dass das alle mal wollen. Das sollte man dann auch unterstützen.
Die erste Antwort auf eine gestellte Frage ist immer auch ein Test, ob der Fragesteller wirklich ernsthaft an einer Lösung interessiert ist. Wie oft kommt hier überhaupt keine Rückmeldung mehr. Dann ist auch die zweite (und jede weitere) Antwort umsonst!
MfG
Li
This blog is one of my favourites among many others. This is an extremely illuminating topic to discuss. In terms of resolving a few issues, it is of great assistance to me. The working style is extremely fast, and there is an excessive number of opportunities that are available. cookie clicker
The first answer to a question is always a test of whether the person asking the question is truly interested in finding a solution. Often, there’s no response at all. Then the second (and every subsequent) answer is also in vain!Bitlife
An cptwoda,
Ich werde dazu nach Ostern zurückkommen.
Inzwischen haben wir schon „nach Pfingsten“!
An Ihre Frage hängen sich jetzt nur noch Spammer an.
MfG
Li
Sehr geehrte Frau Lippmann, nochmals besten Dank für Ihre Hilfe und die der Kollegen. Ich habe mir die Antworten gespeichert und werde zur ggb. Zeit sie verwenden. Ich wusste nicht, dass man die Fragen auch wieder löschen / beenden muss und auch nicht wie!
MfG
Hey, danke für den super Tipp mit dem Makro zur Altersberechnung in Word! Echt clever, wenn Excel mal nicht greifbar ist. Es ist immer gut, solche praktischen Lösungen für Daten zu haben. Das erinnert mich daran, wie nützlich ein Tool für list compare wäre, um schnell Unterschiede in anderen Listen zu finden!
An cptwoda,
ich mag es nicht, wenn jemand so tut. als hätte es vor ihm selbst noch keine Antwort gegeben.
Li