Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Kommentare umschalten | Herbers Excel-Forum


Betrifft: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 03.01.2010 18:06:14

Hallo
habe folgendes Problem:

In einer Mappe sind in Tabelle1 SpalteA Kommentare eingetragen. Diese können aber über Button umgeschaltet werden (Spalten kopieren) Das funktioniert auch.

Nun möchte ich von Tabelle2 auf diese Kommentare zugreifen aber dies funktioniert nicht richtig.

Bei den kommentaren erscheint "#Wert". Wenn ich dann die Formel im Formeleditor öffne, nichts ändere, den Formeleditor schließs, wird der Kommentar angezeigt. Wenn ich dann umschalte, tut sich wieder nichts.

in der Zelle E11 wo der Kommentar erscheinen soll ist folgender Code hinterlegt

Code:
=TakeComment(Tabelle1!A8;E11)

In einem Modul dazu

Code:

Public Function TakeComment(rngQuelle As Range, Optional rngZiel As Range) 
    If rngZiel Is Nothing Then 
        Set rngZiel = Application.Caller 
    End If 
    With rngZiel 
        If Not .Comment Is Nothing Then 
            .Comment.Delete 
        End If 
        If rngQuelle.Value <> "" Then 
            .AddComment rngQuelle(1, 1).Text 
            TakeComment = "OK" 
        Else 
            TakeComment = "leer" 
        End If 
    End With 
End Function


wenn nach oben geschilderter Methode der Kommentar erscheint, so ist er immer eingeblendet. Muß dann immer von Hand ausgeblendet werden.

Bei der Suche nach dem Fehler "Spur zum Fehler" erhalte ich folgende Meldung:

Der Fehlerdetektiv hat Spurpfeile oder Zirkelbezüge gefunden.

ich find aber keinen Zirkelbezug

habe noch mal einiges probiert:
wenn ich die Daten in Spalte A von Hand lösche und neu eintrage wechselt der Kommentar

Vielleicht liegt der Fehler auch im Code der Button mit denen kopiert wird.

Sie sehen so aus:

Button 1
Code:
Private Sub CommandButton1_Click()
Worksheets("Tabelle1").Range("C1:C15").Copy Destination:=Worksheets("Tabelle1").Range("A1")
End Sub

Button 2
Code:
Private Sub CommandButton2_Click()
Worksheets("Tabelle1").Range("D1:D15").Copy Destination:=Worksheets("Tabelle1").Range("A1")
End Sub

Sonderbar ist nur das es bei Text,Hyperlinks und Steuerelementbezeichnungen funktioniert.

Allerdings ist auch bei der manuellen Änderung der Kommentar eingeblendet.

Habe versucht mit Code:
Comment.Visible = False
auszublenden, funktionierte allerdings auch nicht.

Vielleicht hat ja jemand eine Lösung zum Problem

Gruß




  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 03.01.2010 18:16:16

Hallo Ewald,

eine Tabellenfunktion kann keine Veränderungen an Zellen vornehmen,
also auch keinen kommentar einfügen.


Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 03.01.2010 18:28:06

Hallo Sepp

danke für deine schnelle Antwort

nur könntest du erklären, was du damit meinst ????

Die selbe Methode funktioniert bei Text, Hyperlinks und auch bei Steuerelementbeschriftungen.

Warum das bei Kommentaren nicht gehen soll, ist mir unverständlich

Gruß Ewald


  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 03.01.2010 18:45:38

Hallo Ewald,

deine UDF versucht eine Zelleigenschaft zu verändern und das geht halt
nunmal nicht. Eine Funktion kann nur den Zellwert ändern, aber nicht
die Eigenschaften der Zelle oder der Exceloberfläche.


Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 03.01.2010 19:55:27

Hallo Sepp

jetzt weiß ich gar nichts mehr, ich ändere doch keine Zelleneigenschaft oder die Oberfläche, es geht doch nur um den Text im Kommentar. Der Text des Kommentars steht in Spalte A und wird dort abgefragt. Dieser Text ist aber veränderbar.

Habe jetzt einmal mit dem Makrorecorder aufgezeichnet und folgenden Code für die Button erhalten:

Private Sub CommandButton1_Click()
 Columns("A:A").Select
    Selection.ClearContents
    Columns("C:C").Select
    Selection.Copy
    Columns("A:A").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

Private Sub CommandButton2_Click()
 Columns("A:A").Select
    Selection.ClearContents
    Columns("D:D").Select
    Selection.Copy
    Columns("A:A").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
Ist zwar wahrscheinlch nicht optimaler Code, aber damit kann ich den Text im Kommentar der Zielzelle umschalten.
Allerdings wird in der Zelle wo die Funktion drinsteht immer noch #Wert angezeigt, und der Kommentar in der Zielzelle ist nach Umschaltung eingeblendet, obwohl vorher ausgeblendet.

Gruß Ewald


  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 03.01.2010 20:13:21

Hallo Edgar,

der Kommentar ist eine Zelleigenschaft und
dein Code hat nichts mit Kommentaren zu tun.


Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 03.01.2010 21:18:22

Hallo Sepp

hast ja recht der letzte Code ist für die Button die Spalte C oder D nach A kopieren.

Habe es jetzt aber hinbekommen mit folgendem Code:

Public Function TakeComment(rngQuelle As Range, Optional rngZiel As Range)
    If rngZiel Is Nothing Then
        Set rngZiel = Application.Caller
    End If
    With rngZiel
        If Not .Comment Is Nothing Then
            .Comment.Delete
        End If
        If rngQuelle.Value <> "" Then
            .AddComment rngQuelle(1, 1).text
            .Comment.Visible = False
            TakeComment = "OK"
        Else
            TakeComment = "leer"
        End If
    End With
End Function
Entscheidend scheint zu sein, das der Kommentar ausgeblendet ist.

Kannst du mir noch einen Tip geben, wie ich den Code für das Kopieren der Spalten optimieren kann.

Schon mal ein Danke für deine Hilfe

Gruß Ewald


  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 03.01.2010 21:28:29

Hallo Ewald,

dafür reicht das.

Private Sub CommandButton1_Click()
  Columns("A:A") = Columns("C:C").Value
End Sub



Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 05.01.2010 15:45:03

Hallo Sepp

bin erst heute dazu gekommen reinzuschauen.
Habe deinen Code probiert,funktioniert zwar, dauert aber lange (Sanduhr läuft) etwa 3-4 sec.

Ist bei meinem nicht optimalen Code nicht so (Sanduhr ist erst garnicht zu sehen)

Habe ich da was falsch gemacht,

Gruß Ewald


  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 05.01.2010 15:54:33

Hallo Ewald,

dann schreib

Columns("C:C").Copy Columns("A:A")

Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 05.01.2010 17:44:03

Hallo Sepp
danke für die schnelle Antwort

habe es probiert, jetzt geht das Kopieren richtig schnell, aber ich bekomme bei den Kommentaren wieder die Fehlermeldung.
Es scheint mir das zuerst die Werte in A gelöscht werden müssen, bevor kopiert wird.

Gruß Ewald


  

Betrifft: AW: Kommentare umschalten von: Josef Ehrensberger
Geschrieben am: 05.01.2010 18:24:42

Hallo Ewald,

ein bisschen Mitarbeit, könnte man aber schon voeaussetzen!

Columns("A:A").ClearContents
Columns("C:C").Copy Columns("A:A")

Gruß Sepp



  

Betrifft: AW: Kommentare umschalten von: Ewald Sadowski
Geschrieben am: 06.01.2010 10:20:15

Hallo Sepp

bitte nicht böse sein, ich probiere schon um das hinzukriegen nur bekomme ich keine Lösung hin.

Habe mal das aufgezeichnete Makro für die Button im Einzelschritt laufen lassen, da gab es einen Sprung nach "Selektion.ClearContens" in das Modul1 (Public Function TakeComment) das dann komplett durchlaufen wurde.
Vielleicht ist es ja möglich, da wir ja nur das Makro für die Button betrachtet haben, keine Zeit für das Durchlaufen der Funktion bleibt,weil durch Copy ja wieder ein Wert in A drinsteht und das Comment.delete nicht ausgeführt wird.


Vielleicht hilft dies ja weiter

Gruß Ewald


Beiträge aus den Excel-Beispielen zum Thema "Kommentare umschalten"