Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrspaltiger Kommentar aus Zelle

Mehrspaltiger Kommentar aus Zelle
25.01.2014 16:13:30
Werner
Hallo zusammen,
habe mit folgenden Makro ein kleines Problem......
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s$, i%
i = 2
While Not IsEmpty(Cells(i, Target.Column))
s = s & Cells(i, Target.Column) & vbLf
i = i + 1
Wend
On Error Resume Next
With Sheets("Blatt2").Cells(Target.Column, 1)
.Comment.Delete
If s = "" Then
Exit Sub
Else
s = Left(s, Len(s) - 1)
End If
.AddComment
.Comment.Text Text:=s
.Comment.Shape.TextFrame.AutoSize = True
End With
End Sub

1.Wenn ich eine Spalte habe in der folgendes steht:
Werner
Hans
Peter
Susi
Petr
klapt das wunderbar,es werden alle Namen angezeigt, aber wenn eine leere zeile trin ist:
Werner
Hans
Susi
Peter
dann wird nur der Bereich bis zur Leerzeile angezeigt:
Werner
Hans
Wie kann ich das Umgehen das auch mit der Leerzeile alles angezeigt wird.
2. geht es auch mit mehrspaltigen Bereich ("B5:E12")
Gruß Werner

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrspaltiger Kommentar aus Zelle
25.01.2014 18:24:37
Bastian
Hallo Werner,
zu Deinem ersten Problem:
While i 
zu Deinem zweiten Problem: Soll dann immer dieser feste Bereich "B5:E12" ausgelesen werden? Egal welche Zelle geändert wurde? Oder soll der feste Bereich "B5:E12" ausgelesen werden, wenn eine Zelle in diesem Bereich geändert wurde? Bitte ein bisschen genauer beschreiben.
Gruß, Bastian

AW: Mehrspaltiger Kommentar aus Zelle
26.01.2014 15:05:00
Werner
Hallo Bastian,
Danke für Deine Antwort, aber wie muß ich es in meinen Makro einbauen.
Zu Frage 2 ich möchte den Bereich B5:E12 als festen Bereich angezeigt haben (auch wenn sich eine Zelle in den Bereich ändert soll immer der ganze Bereich angezeigt werden).
Gruß Werner

Anzeige
AW: Mehrspaltiger Kommentar aus Zelle
26.01.2014 21:45:29
Bastian
Hallo Werner,
ich weiß nicht, ob das Deinen Vorstellungen entspricht, aber versuch mal folgenden Code.
Die Einträge in Bereich "B5:E12" werden Zeilenweise mit Komma getrennt in den Kommentar eingetragen.
Gruß, Bastian
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Makro startet nur, wenn Zelle im Bereich "B5:E12" geändert wird
If Intersect(Target, Range("B:E")) Is Nothing Then Exit Sub
If Intersect(Target, Range("5:12")) Is Nothing Then Exit Sub
Dim s$, i%, j%
Dim varBereich As Variant
varBereich = Range("B5:E12")
For i = 1 To UBound(varBereich, 1)
For j = 1 To UBound(varBereich, 2)
If Not IsEmpty(varBereich(i, j)) Then
s = s & varBereich(i, j) & ","
End If
Next j
s = Left(s, Len(s) - 1) & vbLf
Next i
Debug.Print s
On Error Resume Next
With Sheets("Blatt2").Cells(Target.Column, 1)
.Comment.Delete
If s = "" Then Exit Sub
.AddComment
.Comment.Text Text:=s
.Comment.Shape.TextFrame.AutoSize = True
End With
End Sub

Anzeige
AW: Mehrspaltiger Kommentar aus Zelle
26.01.2014 22:12:41
Werner
Hallo Bastian,
Danke für die Antwort, dass hilft mir sehr.
Gruß
Werner

AW: Mehrspaltiger Kommentar aus Zelle
27.01.2014 06:46:13
Werner
Hallo Bastian,
ist es möglich das der Kommentar immer in der selben Zelle steht, denn wenn ich im Bereich was ändere wird der Kommentar ja in eine anderen Zelle geschrieben.
Danke in vorraus
Gruß Werner

AW: Mehrspaltiger Kommentar aus Zelle
27.01.2014 10:15:18
Bastian
Hallo Werner,
natürlich kann man den Kommentar auch immer in die selbe Zelle schreiben. Ich habe den Code entsprechend angepasst.
Der Befehl

With Sheets("Blatt2").Cells(1, 1)
legt fest, in welche Zelle der Kommentar geschriben wird. Also in Blatt2, Zelle "A1". Wenn Du eine andere Zelle haben möchtest, musst Du den Teil Cells(1, 1) anpassen. Die erste Zahl steht für die Zeile und die Zweite Zahl für die Spalte.
Ich habe den Code mal mit ein paar Kommentaren versehen. So kannst Du nachvollziehen, was die einzelnen Befehle bewirken. So fällt Dir das Anpassen des Codes sicher leichter.
Gruß, Bastian
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Makro startet nur, wenn Zelle im Bereich "B5:E12" geändert wird
If Intersect(Target, Range("B:E")) Is Nothing Then Exit Sub
If Intersect(Target, Range("5:12")) Is Nothing Then Exit Sub
'Variablendeklaration
Dim s$, i%, j%   'Variable s ist vom Typ String ($), i und j sind vom Typ Integer (%)
Dim varBereich As Variant
'Bereich in Array einlesen
varBereich = Range("B5:E12")
'Schleife über die Zeilen des Bereichs
For i = 1 To UBound(varBereich, 1)
'Innere Schleife über die Spalten des Bereichs
For j = 1 To UBound(varBereich, 2)
If Not IsEmpty(varBereich(i, j)) Then   'Leere Zellen werden nicht berücksichtigt
s = s & varBereich(i, j) & ","      'Zellinhalt in Variable s schreiben. Werte  _
durch Komma trennen.
End If
Next j
s = Left(s, Len(s) - 1) & vbLf  'letztes Komma löschen und Zeilenumbruch einfügen
Next i
On Error Resume Next    ' Fehler ignorieren. Bei Fehler mit nächstem Befehl fortfahren. ( _
ist das so gewollt?)
With Sheets("Blatt2").Cells(1, 1) 'Hier Zelle anpassen, in der der Kommentar stehen soll
.Comment.Delete             'Bestehenden Kommentar löschen
If s = "" Then Exit Sub     'Falls s leer ist, Makro verlassen
.AddComment                 'Kommentar hinzufügen
.Comment.Text Text:=s       'Text "s" in den Kommentar schreiben
.Comment.Shape.TextFrame.AutoSize = True    'Größe des Kommentars automatisch anpassen
End With
End Sub

Anzeige
AW: Mehrspaltiger Kommentar aus Zelle
27.01.2014 19:42:48
Werner
Hallo Bastian,
das ist genau das, was ich gesucht habe ! Du bist Spitze !!!
Nochmals herzlichen Dank auch für die ausfürliche Erklärung.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige