Makro umstellen
07.12.2003 17:40:31
Rolf 2
ich brauche Eure Hilfe.
Ich möchte in einer Tabelle mit mehreren Tabellenblättern erreichen, dass bei der Eingabe von bestimmten Werten in Zeile 2 die zuvor eingetragenen Werte in Zeile 1 in Klammer gesetzt werden. Gleichzeitig soll bei Eingabe eines Wertes in Zeile 1, eine Angabe in Zeile drei gemacht werden.
Beispiel:
Zeile 1 S
Zeile 2
Zeile 3 7
Zeile 1 (S)
Zeile 2 K
Zeile 3 7
Die Daten in Zeile 3 und die Kriterien, durch welche Info in Zeile 2 der Wert in Zeile 1 in Klammer gesetzt werden soll, kommen aus einer Data-Tabelle.
Um dies zu ermöglichen hat mir ein Fachmann bereits ein Makro programmiert. Dieses funktionierte auch wunderbar, aber nur wenn man das Ganz in Zeile 1 bis 3 benutzt.
In meinen Tabellenblättern soll das aber über mehrere Zeilen gelten, wobei immer drei zusammenhängend sind. Also
Zeile 1
Zeile 2
Zeile 3
Dann
Zeile 4
Zeile 5
Zeile 6
Etc.
Man müsste also wahrscheinlich nur das Makro in dessen Erfassungsbereich umstellen. So hoffe ich zumindest.
Ich schreibe das Makro hier mit ein. Wenn jemand möchte maile ich die excel Datei auch gerne zu, das würde bestimmt helfen. Ich bekomme sie leider hier nicht auf den Server hochgeladen. Warum das nicht geht weiß ich leider nicht.
Kann mir jemand von Euch helfen?
Viele Grüße
Rolf
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
Dim iCol As Integer
If Target.Row > 2 Then Exit Sub
Set wks = Worksheets("Data")
iCol = Target.Column
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
If Not IsError(Application.Match(Cells(1, iCol).Value, wks.Columns(1), 0)) And _
Not IsError(Application.Match(Cells(2, iCol).Value, wks.Columns(3), 0)) Then
Cells(1, iCol).NumberFormat = """(""@"")"""
End If
If Not IsError(Application.Match(Cells(1, iCol).Value, wks.Columns(1), 0)) And _
IsError(Application.Match(Cells(2, iCol).Value, wks.Columns(3), 0)) Then
Cells(1, iCol).NumberFormat = "@"
End If
ERRORHANDLER:
Application.EnableEvents = True
End Sub