Ich habe folgendes Problem: Ich bekomme Daten in einer Word Tabelle dieser Form:
Name | Wert | Bewertung
Glucose | 8 | +
Hb | 6.0 |
Hkt | 0.55 | +
usw.
und muss sie aber in einen Fließtext/Vorlage einer bestimmten Form und Reihenfolge angeben. Damit ich die Werte nicht den ganzen Tag von einem Programm ins andere tippe, hätte ich gerne ein VBA dafür.
Das Ergebnis / Vorlage soll so sein:
Hämoglobin 6.0, Hämatokrit 0.55 (+), Glukose 8 (+)
Es gibt also mehrere Herausforderungen:
-
die Reihenfolge ist eine andere
-
die Namen sind nicht 1:1 die gleichen
-
es soll nicht jeder Wert der Tabelle im Fließtext auftauchen
-
nicht jeder Wert in der Vorlage ist in der Tabelle aufgeführt, dann soll er im Fließtext auch nicht erscheinen
-
nicht jeder Wert hat eine Bewertung
Die Werte auslesen kann ich schon mit diesem Makro (nicht über die Spalten wundern, die Tabelle oben ist vereinfacht)
Sub labor_kopieren()
'
' labor_kopieren Makro
'
'
Dim Name As String
Dim Wert As String
Dim Bewertung As String
Dim i As Integer
For i = 2 To 10
Name = ActiveDocument.Tables(1).Cell(i, 4).Range.Text
Name = Left(Name, Len(Name) - 2)
Wert = ActiveDocument.Tables(1).Cell(i, 5).Range.Text
Wert = Left(Wert, Len(Wert) - 2)
Bewertung = ActiveDocument.Tables(1).Cell(i, 8).Range.Text
Bewertung = Left(Bewertung, Len(Bewertung) - 2)
If Bewertung = "+ " Then
MsgBox Name & ": " & Wert & " (" & Bewertung & ")"
Else
MsgBox Name & ": " & Wert
End If
Next i
End Sub
Jetzt komme ich aber an meine Grenzen. Meine Idee wäre gewesen, dass das Makro durch die Tabelle geht und den Inhalt von "Name" als Variablenname setzt, den "Wert" als Variablenwert, eine 2. Variable "Name_Bewertung" erstellt und dieser Bewertung zuweist.
Also ich am Beispiel oben dann folgende Variable mit den Werten habe:
Glucose = 8 , Glucose_Bewertung = +
Hb = 6.0, Hb_Bewertung =
Hkt = 0.55 Hkt_Bewertung = +
Dann hätte ich einen Fließtext erstellt nach dem Schema:
"Hämoglobin" & Hb & "(" & Hb_Bewertung & ")," & "Hämatokrit" & Hb .... usw
So dass man immer die gleiche Reihenfolge und die gleiche Bezeichnung hat.
Problem wäre hier noch die Werte wegzulassen, die nicht vorhanden sind.
Kann mein Problem jemand lösen? Oder hat jemand eine andere Herangehensweise? Auch für Teillösungen bin ich dankbar (also nur der Teil, der die Variablen definiert).
Vielen Dank im Voraus
Eric
|