2.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo.....

Ich habe das Problem, in einigen tausend Excel Zeilen, einen unterschiedlichen Kommentar einfügen zu müssen. Ich möchte daher mit einer Tastenkombination eine bestimmte Größe eines Kommentarfeldes in die Zeile einfügen und in den "bearbeiten" Modus gelangen.

Hat da jemand eine Lösung als Makro ??????

5 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Disa,

So wie Du es Dir allerdings vorgestellt hattest, dass man ein Kommentar einfügt und danach in den Bearbeitungszustand gelangt geht glaube ich nicht. jedenfalls fällt mir nicht ein, wie. Daher nachfolgend mal ein Makro, dass Dir in die aktive Zelle ein Kommentarfeld mit einem Text, den Du in eine InputBox eintragen musst, einträgt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
[b]Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.[/b]

[b][code] Option Explicit

Sub Lommentarfeld_einfuegen()
Dim objComment As Comment
Dim strKommentarText As String
Dim intMeldung As Integer

'Wenn kein Kommentar vorhanden, Kommentar einfügen
If ActiveCell.Comment Is Nothing Then
Anfang:
    'Eingabe des Kommentartextes
    strKommentarText = InputBox("Bitte Kommentartext eintragen", "Kommentartext einfügen...", ActiveCell.Value)
    
    'Kommentarfeld setzen
    Set objComment = ActiveCell.AddComment
        
    'Formatierung des Kommentarfeldes
    With objComment
        With .Shape.TextFrame.Characters
            .Text = strKommentarText
            'Textformatierung
            .Font.Name = "Arial"
            .Font.Size = 7
            .Font.Bold = True
        End With
        .Visible = False
        'Größenformatierung
        .Shape.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
        .Shape.ScaleWidth 1.3, msoFalse, msoScaleFromTopLeft
        End With
        
        Set objComment = Nothing
'Wenn Kommenar vorhanden, abfragen ob gelöscht werden soll
Else
    intMeldung = MsgBox("Bereits ein Kommentar vorhanden. Diesen löschen?", _
            vbQuestion + vbYesNo, "Kommentar vorhanden, löschen?")
            
    If intMeldung = 6 Then
         ActiveCell.Comment.Delete
        GoTo Anfang
    End If
End If
    
End Sub
 [/code][/b] Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf [url=http://www.excelbeispiele.de] [b][u] meiner HP [/u][/b][/url] in der [b] Rubrik Anleitungen [/b]und dort dann in der[b] Anleitungsnummer 3 [/b]nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo,

ich nochmal. Nachfolgend das obige Makro noch etwas modifiziert. Hier wird der vorhandene Kommentar auf Wunsch ausgelesen und in die InputBox eingefügt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte wieder erst in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Kommentarfeld_einfuegen()
Dim objComment As Comment
Dim strKommentarText As String
Dim intMeldung As Integer
Dim strKommentarTextGesichert As String

strKommentarTextGesichert = ""

'Wenn kein Kommentar vorhanden, Kommentar einfügen
If ActiveCell.Comment Is Nothing Then
Anfang:
'Eingabe des Kommentartextes
strKommentarText = InputBox("Bitte Kommentartext eintragen", "Kommentartext einfügen...", strKommentarTextGesichert)

'Kommentarfeld setzen
Set objComment = ActiveCell.AddComment

'Formatierung des Kommentarfeldes
With objComment
With .Shape.TextFrame.Characters
.Text = strKommentarText
'Textformatierung
.Font.Name = "Arial"
.Font.Size = 10
.Font.Bold = True
End With
.Visible = False
'Größenformatierung
.Shape.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
.Shape.ScaleWidth 1.3, msoFalse, msoScaleFromTopLeft
End With

Set objComment = Nothing
'Wenn Kommenar vorhanden, abfragen ob gelöscht werden soll
Else
intMeldung = MsgBox("Bereits ein Kommentar vorhanden. Diesen löschen?", _
vbQuestion + vbYesNo, "Kommentar vorhanden, löschen?")

'Wenn "Ja", Kommentar löschen ausgewählt wurde
If intMeldung = 6 Then

'Abfrage, ob vorhandener Kommentartext ausgelesen werden soll
intMeldung = MsgBox("Soll der vorhandene Text ausgelesen und in den neuen Kommentar " _
& "eingefügt werden", vbQuestion + vbYesNo, "Kommentar vorhanden, löschen?")

'Auswahl "Nein" Kommentar nicht auslesen
If intMeldung = 7 Then
ActiveCell.Comment.Delete
GoTo Anfang
End If

'Auswahl "Ja" Kommentar auslesen
If intMeldung = 6 Then
strKommentarTextGesichert = ActiveCell.Comment.Text
ActiveCell.Comment.Delete
GoTo Anfang
End If
End If
End If

End Sub
Du kannst Dir meine Beispieldatei auch unter http://www.excelbeispiele.de/beispiele_supportnet/Beispiel_Kommentar_in_aktiver_Zelle.xls herunterladen.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

in den Edit-Modus gelangt man mit VBA nicht - das höchste der Gefühle wäre das Selektieren des Rahmen des Kommentars.

Wie willst du denn festlegen, welche Größe das Kommentarfeld haben soll? Stehen die Kommentartexte, die eingefügt werden sollen, von vornherein fest oder sind sie so unterschiedlich, dass du sie immer von Hand eintragen musst? Wenn es feststehende (unterschiedliche) Kommentare sind, könnte man sie in ein separates Tabellenblatt eintragen, ebenso wie die zu verwendende Breite/Höhe des betreffenden Kommentarfeldes. Diese Daten könnte man dann entnehmen und den Kommentar mit der betreffenden Feldgröße und dem betreffenden Text erstellen.

Bis später,
Karin
0 Punkte
Beantwortet von casimann Einsteiger_in (17 Punkte)
Hallo Diesa12,

ich hatte mal ein änliches Problem. Es hat sich herausgestellt, dass zuviele Kommentare äußerst unwirksam sind. Ich kann daher nur empfehlen eine zusätzliche Spalte mit dem jeweiligem Text einzufügen.

Auch Hyperlinks können, bei längeren Texten, eine sehr gute Lösung sein.

Gruß
Carsten
0 Punkte
Beantwortet von
Hallo "Coros", "Beverly" und "Casimann"

ich möchte mich erst einmal für Eure Bemühungen bedanken und Euch mitteilen, dass ich mich für die Lösung mit dem Hyperlink entschieden habe, da es mir so möglich ist in einer anderen Datei alles das zu implementieren, was ich für die Excel - Zeile brauche.


Nochmals herzlichen Dank euch Allen...


Diesa12
...