Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Kommentar mit VBA formatieren

Kommentar mit VBA formatieren
21.12.2012 15:25:01
Golem
Hallo Excel-Fachleute,
ich habe folgenden Code, um damit ein Tabellenblatt aus einer Datei zu kopieren
und als neue Datei weiter zu verwenden:
Private Sub CommandButton1_Click()
'Arbeitsblatt kopieren und Verknüpfungen löschen
Dim strQuelldateiPfadName As String
Dim strQuelldateiName As String
Dim wksArbeitsblatt As Worksheet
Dim Dateiname As String
strQuelldateiPfadName = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name
strQuelldateiName = ActiveWorkbook.Name
'   Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'   Arbeitsblatt kopieren
ActiveSheet.Copy
For Each wksArbeitsblatt In ActiveWorkbook.Sheets
'   Passwort entsperren
wksArbeitsblatt.Unprotect
Next wksArbeitsblatt
'   Verknüpfungen zu anderen Tabellenblättewr werden entfernt
ActiveWorkbook.BreakLink Name:=strQuelldateiPfadName, Type:=xlExcelLinks
For Each wksArbeitsblatt In ActiveWorkbook.Sheets
'   Blattschutz aufheben
wksArbeitsblatt.EnableSelection = xlUnlockedCells
Next wksArbeitsblatt
'   Button löschen
ActiveSheet.DrawingObjects(1).Delete
'   Kommentar in Zelle T4 einfügen
ActiveSheet.Range("T4").AddComment "Kopiertes Tabellenblatt zuerst speichern!"
'   Dateiname erstellen
Dateiname = ActiveWorkbook.ActiveSheet.Name & " " & Range("M2")
'   Dialog "Speichern unter" öffnen um Datei mit Dateiname zu speichern
Application.Dialogs(xlDialogSaveAs).Show Dateiname
'   Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End Sub

Dieser Code funktioniert ( zumindest nach meiner bescheidenen Meinung ) für mich einwandfrei.
Ich probiere an Codes, die ich verwende, gerne viele Möglichkeiten aus, um VBA besser zu verstehen.
Meine Frage ist, wie ich in diesen Code den Kommentar formatiert bekomme. Z.B. Kommentar eingeblendet,
Schriftformatierung, die Größe des Kommentarfeldes usw. .
Die Sinnhaftigkeit dieser Formatierung ist nicht wichtig, es kommt für mich auf das Verstehen an.
Bisher sind bei mir alle Versuche fehlgeschlagen.
Schöne Grüße
Golem

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

Betreff
Datum
Anwender
Anzeige
AW: Kommentar mit VBA formatieren
21.12.2012 17:43:30
ransi
Hallo Golem
Am besten kommst du dahinter wenn du dir die Eigenschaften im Lokalfenster anschaust.
Option Explicit

Sub machs()
    Dim myComment As Comment
    If Range("A1").Comment Is Nothing Then
        Set myComment = ActiveSheet.Range("A1").AddComment(Text:="Kopiertes Tabellenblatt zuerst speichern!")
        Else:
        Set myComment = ActiveSheet.Range("A1").Comment
    End If
    MsgBox "Schau dir jetzt im Lokalfenster die Eigenschaften von myComment an." & vbCrLf & _
        "Besonders den Zweig: Shape-->Drawingobject"
    Stop
End Sub


ransi

Anzeige
AW: Kommentar mit VBA formatieren
21.12.2012 19:24:10
Golem
Hallo Ransi
ich habe mir Drawingobject angeschaut. Ist beeindruckend.
Nur ich komme damit nicht weiter. D.h. ich bekomme keine Zeile in meinen Code eingetragen,
um an dem erstellten Kommentar Veränderungen vonehmen zu können.
Wenn Du mir eine Hilfe geben würdest, um z.B. das Kommentarfeld in dem neuen Tabellenblatt eingeblendet anzuzeigen.
Schöne Grüße
Golem

.Visible=True? Gruß owT
21.12.2012 20:59:06
Luc:-?
:-?

AW: .Visible=True? Gruß owT
22.12.2012 14:11:27
Golem
Hallo Luc,
so sieht mein Code aus:
Private Sub CommandButton1_Click()
'Arbeitsblatt kopieren und Verknüpfungen löschen
Dim strQuelldateiPfadName As String
Dim strQuelldateiName As String
Dim wksArbeitsblatt As Worksheet
Dim Dateiname As String
Dim myComment As Comment
strQuelldateiPfadName = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name
strQuelldateiName = ActiveWorkbook.Name
'   Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'   Arbeitsblatt kopieren
ActiveSheet.Copy
For Each wksArbeitsblatt In ActiveWorkbook.Sheets
'   Passwort entsperren
wksArbeitsblatt.Unprotect
Next wksArbeitsblatt
'   Verknüpfungen zu anderen Tabellenblättewr werden entfernt
ActiveWorkbook.BreakLink Name:=strQuelldateiPfadName, Type:=xlExcelLinks
For Each wksArbeitsblatt In ActiveWorkbook.Sheets
'   Blattschutz aufheben
wksArbeitsblatt.EnableSelection = xlUnlockedCells
Next wksArbeitsblatt
'   Button löschen
ActiveSheet.DrawingObjects(1).Delete
'   Kommentar in Zelle T4 einfügen
If Range("T4").Comment Is Nothing Then
Set myComment = ActiveSheet.Range("T4").AddComment(Text:="Kopiertes Tabellenblatt  _
zuerst speichern!")
Else:
Set myComment = ActiveSheet.Range("T4").Comment
End If
'   Dateiname erstellen
Dateiname = ActiveWorkbook.ActiveSheet.Name & " " & Range("M2")
'   Dialog "Speichern unter" öffnen um Datei mit Dateiname zu speichern
Application.Dialogs(xlDialogSaveAs).Show Dateiname
'   Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End Sub

und funktioniert auch.
Ich habe als Ergebnis eine neue Datei mit einem Tabellenblatt vorliegen, ohne Verknüpfungen ,ohne einen Code und
in der Zelle T4 ein Kommentar.
Ich würde aber gerne in den obigen Code die Möglichkeit einbauen, die Formatierung für den Kommentar vorzugeben.
Wenn das neue Tabellenblatt erstellt worden ist, wird der Kommentar ( mit seiner vorgegeben Formatierung ) nicht mehr verändert.
Ich weis nicht, wo oder wie ich das .Visible=True einbauen kann. Weiterhin habe ich schon einige Beispiel-Codes gefunden, mit denen
die Möglichkeiten der individuellen Formatierung aufgezeigt werden.
Aber ich finde keine Lösung, wie ich in den obigen Code das umsetzen kann.
Schöne Grüße
Golem

Anzeige
AW: .Visible=True? Gruß owT
22.12.2012 16:46:13
Tino
Hallo,
sollte so gehen schreibe nach End If
myComment.Visible = True
Gruß Tino

AW: .Visible=True? Gruß owT
22.12.2012 17:43:57
Golem
Hallo Tino,
das ist die Lösung, die mir bisher gefehlt hatte.
Jetzt funktioniert der Code einwandfrei und ich komme mit der Formatierung weiter.
Einen schönen Dank für Deine Hilfe!
Ich wünsche allen Excel-Fachleuten, die mir bisher in diesem Forum geholfen haben,
frohe Weihnachten und ein gutes und gesundes neues Jahr.
Schöne Grüße
Golem

...Und das hat sich dir aus meinem, ...
22.12.2012 19:52:53
Luc:-?
…von euch über den ganzen Rest-Thread geschleppten Betreff nicht erschlossen, Golem?! :->
Na, glücklicherweise sind ja jetzt 'n paar Feiertage und das Jahr ist bald zuende… ;-)
FroWeihn, Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige