Tach Holger!
Danke für deine Antwort. Das Makro wird zwar fehlerfrei ausgeführt, aber meine Tabelle sieht anschliessend genau gleich aus. Habe den Debugger eingeschalten. Alle Variablen haben immer den Wert 0 und es werden mir nur die Zeilen Z32,S1 (Z33, 39, 40, 48) angezeigt, alle genannten Zeilen enthalten aber weder ein Prof. / Dr. oder Professor.
Ich versuche jetzt mal deinen Code zu verstehen :) und einen Fehler zu finden. Wenn du aber noch eine Idee hast?
Gruss kleister
Holger schrieb am 08.02.2008 17:35:45:
Hallo kleister,
versuche es einmal so:
Sub Anrede()
Dim j As Double, lz As Double, a As Integer, b As Integer, c As String, d As Integer
lz = Range("A65336").End(xlUp).Row
For j = 1 To lz
c = "": If InStr(Cells(j, 1), "Frau ") Then c = "in"
If InStr(Cells(j, 2).Value, "Dr.") > 0 Then
a = InStr(Cells(j, 1), "Herr ")
If a = 0 Then a = InStr(Cells(j, 1), "Frau ")
If a > 0 Then
Cells(j, 1) = Left(Cells(j, 1), a - 1) + "Dr. " + Mid(Cells(j, 1), a + 5)
End If
End If
If InStr(Cells(j, 2).Value, "Prof") > 0 Then
b = -1: d = 5
a = InStr(Cells(j, 1), "Herr ")
If a = 0 Then a = InStr(Cells(j, 1), "Frau ")
If a = 0 Then a = InStr(Cells(j, 1), "Dr. "): b = 3: d = 4
If a > 0 Then
Cells(j, 1) = Left(Cells(j, 1), a + b) + "Professor" + c + " " + Mid(Cells(j, 1), a + d)
End If
End If
Next j
End Sub
Viel Erfolg
Holger
kleister schrieb am 08.02.2008 08:15:09:
Hallo zusammen!
Ich habe ein Problem mit einem VBA-Makro und hoffe jemand kann mir da weiterhelfen. Kleine Anmerkung im voraus, ich arbeite mit Office03.
Als Grundlage habe ich eine Excel-Tabelle mit mehreren Spalten. Nun soll es aus einer Spalte herauslesen, ob dort ein Dr. Prof. oder Professor eingetragen ist. Wenn ja, dann soll in eine andere Spalte zwischen Geehrter Herr und dem Nachnamen entweder Dr. oder Professor (für Prof. und Professor) eingetragen werden. Hoffe das ist verständlich, ansonsten hier ein Beispiel:
Spalte 1 (vor Makro) Spalte2
Geehrter Herr Huber Dr. Prof. dent.
Spalte 1 (nach Makro)
Geehrter Dr. Professor Huber
Habe einen Code geschrieben, welcher aber noch nicht ganz funktioniert:
Sub anrede()
Dim i As Double
Dim H As String
Dim F As String
H = "Herr"
F = "Frau"
i = 2
Do Until EndofDocument = True
Columns("i:i").Select
If Cells("Z:i").Value = "Dr." Then
Cells("X:i").Select
Select Case Cells("X:i").Value
Case "Herr"
Selection.InsertAfter(Herr) = " Dr. "
Case "Frau"
Selection.InsertAfter(Frau) = " Dr. "
End Select
End If
i = i + 1
Loop
End Sub
Kann mir vielleicht jemand einen Tip geben?
Danke!
Gruss
kleister |