Hej, vielen Dank, ralf_b, dass du zu so später Stunde noch geantwortet hast! Die automatische serielle Abarbeitung hat viel zu lange gedauert und war unzuverlässig, die Resultate fast immer falsch, weil das Dokument noch nicht richtig offen war. Verzögerungsschlaufen haben nichts gebracht. Man könnte das sicher besser programmieren, aber mein Bauchgefühl sagt mir, dass es bestimmt mehr als zehn Sekunden dauern würde. Ich finde die Variante mit der Textdatei interessanter. Das Programm würde genau das machen, was ich vorderhand noch von Hand mache, und ich hätte am Schluss noch den Notizzettel. Für die Automatisierung spricht allerdings, dass ich auch die Möglichkeit berücksichtigen müsste, dass Dateien noch mal geöffnet werden und dass sich durch die erneute Bearbeitung die Seitenzahl ändert. Das Makro müsste noch abchecken, ob zur aktuelle geöffneten Datei schon ein Wert vorhanden ist.
Hier mal das, was mir Copilot heute Morgen geliefert hat. Damit es nicht am Trennzeichen oder an den Nullen liegt, habe ich die Nullen gelöscht und das Trennzeichen zu Komma gewechselt.
33,Wie-viele-Seiten_01.docx
36,Wie-viele-Seiten_02.docx
33,Wie-viele-Seiten_03.docx
Es funktioniert leider trotzdem nicht. Das Resultat ist immer null. Hat das etwas mit dem Variablentyp zu tun?
Sub SummarizeCSVValues()
Dim csvFilePath As String
Dim fileNumber As Integer
Dim line As String
Dim totalSum As Long
csvFilePath = ActiveDocument.Path & "\Seitenzahlen.csv"
totalSum = 0
fileNumber = FreeFile
Open csvFilePath For Input As fileNumber
Do While Not EOF(fileNumber)
Line Input #fileNumber, line
' Extrahiere den Wert aus der ersten Spalte (vor dem Komma)
totalSum = totalSum + Val(Split(line, ",")(0))
Loop
Close fileNumber
MsgBox "Die Gesamtsumme der Werte in der ersten Spalte beträgt: " & totalSum
End Sub
|