Hallo Christian,
es wäre schön, wenn du auf Anregungen antwortest, ob sie dein Problem gelöst haben. Nur so können Helfer erkennen, ob sie mit ihrem Beitrag richtig lagen und ob er verständlich war. Außerdem wäre es angebracht, deine eigenen Überlegungen und Programmansätze darzustellen, denn offenbar lernst du gerade VBA - und das wird nur gelingen, wenn du dir selbst Gedanken zu des Aufgaben machst und übst. Alle fingen einmal mit viel Probieren an. Auch heute muss ich das noch tun. Kommentarfelder habe ich z.B. vorher noch nie bearbeitet. Die BVA-Hilfe ist zwar am Anfang schwierig zu verstehen, doch da müssen alle durch, die VBA anwenden wollen!
Für dein neues Problem gehe ich davon aus, dass
- nur dann, wenn die veränderte Zelle in dem bestimmten Bereich liegt, die Aktionen erfolgen sollen,
- ein Kommentarfeld ein "Comment" ist und
- nur der neue Wert der veränderten Zelle in das Kommentarfeld geschrieben werden soll.
Wenn du nachstehendes Makro ins Code-Fenster deiner Tabelle unter Microsoft Excel Objekte kopierst, errreichst du das Gewünschte. Für die Eingabe der Bereichsgröße kannst du leicht einige Zeilen hinzufügen, hier sind sie fest im Makro verankert (hier z.B. B5 bis E10). Der Kommentar wird hier dem Feld A1 zugefügt und sichtbar gemacht. Das ist natürlich auch änderbar.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range(Cells(5, 2), Cells(10, 5)) 'Hier deinen Bereich angeben
a = Target.Address
ba = Bereich.Column 'Prüfung, ob die Zelle im Bereich liegt
be = ba + Bereich.Columns.Count - 1
c = Target.Column
If c be Then Exit Sub
ba = Bereich.Row
be = ba + Bereich.Rows.Count - 1
c = Target.Row
If c be Then Exit Sub
Range("a1").ClearComments 'oder ein anderes Feld für den Kommentar
With Range("a1").AddComment
.Visible = True
If IsNumeric(Range(a).Value) = True Then
.Text Str(Range(a).Value)
Else
.Text Range(a).Value
End If
End With
Range(a).Interior.ColorIndex = 6 'gelb
End Sub
Viel Erfolg
Holger
Christian schrieb am 14.12.2007 15:50:05:
Hallo zusammen,
ich habe folgenden Fall. Ich brauche ein Makro, das für jede Zelle eines bestimmten Bereichs des Tabellenblattes den Inhalt der Zelle in einen Kommentarfeld kopiert. Zudem soll sich bei einer Änderung des Zellinhaltes die Hintergrundfarbe ändern, sodass sofort ersichtlich ist, was wo geändert wurde. Im Kommentarfeld bleibt der Original-Eintrag vorhanden.
Nochmals zusammengefasst:
Inhalt einer Zelle in ein Kommentarfeld übertragen,
Wenn Zellinhalt geändert wird, verändert sich die Hintergrundfarbe der Zelle.
Zellinhalt kann Text oder auch Zahl beinhalten.
Herzlichen Dank für Eure Hilfe.
Grüße Christian |