AW: Noch offen
28.03.2007 16:23:00
André
Hallo Martin,
habe den Code nochmal reingesetzt.
Da ich mich mit VBA nicht gut auskenne kann ich leider nicht erläutern an welcher Stelle der Code ein Fehler hat. Bzw. ob überhaupt ein Fehler vorhanden ist, da er funzt.
Mein Problem ist eigentlich nur, dass wenn sich in einer der Zellen ein Wert verändert er nicht sofort übernommen wird. Sprich ich gebe nichts in die Zellen ein sondern eine Formel holt sich die Werte.
D.h. für mich also, dass ich den Bereich E4:E8 immer manuell aktualisieren muss und ich die Formeln immer runter (von E4 bis E8) und hoch (von E8 zu E4) kopieren muss.
Dies wollte ich nun umgehen und mit Hilfe eines Makros umgehen, nur wie?
Gruß
André
Hier der Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer
For ii = 4 To 8 ' Zeilen 4 bis 8
If Not Intersect(Cells(ii, 5), Target) Is Nothing Then ' Spalte 5 = E
If BlattNam_Pruefung(Cells(ii, 5)) Then
Sheets(ii + 1).Name = Cells(ii, 5) ' Blätter 5 bis 9
Else
MsgBox "E" & ii & " enthält keinen gültigen Blattnamen: " & vbLf & Cells(ii, 5)
End If
End If
Next ii
End Sub
Function BlattNam_Pruefung(BlaNam As String) As Boolean
If BlaNam = "" Or Len(BlaNam) > 31 Then Exit Function
If Application.Evaluate("=SUM((MID(""" & BlaNam & """,COLUMN(1:1),1)" & _
"={"":"";""/"";""\"";""?"";""*"";""]"";""[""})*1)") > 0 Then Exit Function
BlattNam_Pruefung = True
End Function