Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 116
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von Flodnug1 vom 17.03.2017, 11:13 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


VBA für Kommentaranzeige

 (243 Hits)

Hallo zusammen,
ich brauche heute eure Hilfe bei folgendem Problem.
Ich habe eine Oberschiedsrichtereinsatzdatei mit ca. 50 Arbeitsblättern.
Im Hauptmenu sind Buttons (Userform) , mit denen ich in die Arb.-blätter springen kann.
Mit dem Button "Kommentare" lass ich mir für 10sec anzeigen, wieviel Kommentare ich in den Arb.-blättern gemacht habe.
Zur Auswertung ist es aber ziehmlich mühselig die Arb.-blätter zu suchen, wo die Kommentare stehen.
Meine Frage: Ist es auch möglich, sich per Button (im Idealfall auch für ein paar Sekunden) anzeigen zu lassen (Anzeige ab Zeile 32 wäre gut da Platz), in welchem Arb.-blatt die Kommentare stehen?
Hinter den Button- und Arb.blattnamen verstecken sich in der Originaldatei Namen.
Danke im voraus und
Gruß Flodnug

Link für Screenshot vom Hauptmenu


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von M.O. vom 17.03.2017, 11:56 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Flodnug,

probier mal das folgende Makro:

Sub KommentareDokumentieren()

Dim Blatt As Worksheet
Dim Ziel As Worksheet
Dim Notiz As Comment
Dim zeile As Long
 
'Arbeitsblatt definieren, auf denen die Kommentar ausgegeben werden sollen
Set Ziel = ThisWorkbook.Worksheets("Hauptmenu")

'eventuell vorhandene Kommentar-Liste löschen
With Ziel
 .Range(Cells(32, 1), Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 4)).ClearContents
End With
 
'erste Einfügezeile festlegen
zeile = 32
 
'Blätter durchlaufen und Kommentare in Zelle schreiben
For Each Blatt In ActiveWorkbook.Worksheets
 For Each Notiz In Blatt.Comments
  With Ziel
   .Cells(zeile, 1).Value = Blatt.Name
   .Cells(zeile, 2).Value = Notiz.Parent.Address
   .Cells(zeile, 3).Value = Notiz.Author
   .Cells(zeile, 4).Value = Notiz.Text
  End With
   zeile = zeile + 1
 Next Notiz
Next Blatt

'Breite der Spalten A bis C automatisch anpassen
Columns("A:C").AutoFit
End Sub


Den Namen für das Arbeitsblatt mit dem Hauptmenu musst du noch anpassen. Kopiere das Makro in ein Standard-Modul deiner Arbeitsmappe.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von Flodnug1 vom 17.03.2017, 14:09 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,
vielen Dank für die schnelle Antwort.
Ich bin schon froh, dass es überhaupt geht. Du hast ja sogar mehr gemacht als erwartet und das sogar blind, denn ich sehe gerade, dass ich den Link gar nicht eingefügt habe. Zusätzlich wird nämlich auch noch die Zelle angezeigt.

Darum jetzt hier der Link: http://www.xup.in/dl,19263079/Menu-HC.jpg/

Da aber die Spaltenbreiten und -höhen sich nicht ändern dürfen, habe ich noch ein paar Zusatzbitten.
a) könntest Du bitte die Anzeige von Arb.blattnamen und Zelle (jetzt A-B)
tauschen (zu B-A) und Die Anzeige des Kommentartextes erst in Spalte D beginnen lassen. Im Moment zeigt er in Spalte C meinen Vornamen an. Weiß nicht woher der kommt. Dann würden die Spaltengrößen nämlich ausreichen (s. Link)
Die automatische Anpassung habe ich einfach durch löschen der letzten Zeile vor End sub geändert.
b) könntest Du bitte auch den Zeilenumbruch bei der Anzeige des Kommentartextes
wegnehmen.


Antwort noch nicht bewertet
Antwort 3 von Flodnug1 vom 17.03.2017, 14:19 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,
ich habe gerade noch einen schwerwiegenden Fehler festgestellt.
Bei jedem ausführen des Makros löscht er mir den Inhalt von A+B 29. Beim nächsten ausführen den Inhalt von A+B 27, dann A+B 25 usw.
Kannst Du das bitte korrigieren.
Falls Du dafür die Musterdatei brauchst, sag es bitte.
Danke und Gruß Flodnug


Antwort noch nicht bewertet
Antwort 4 von Flodnug1 vom 19.03.2017, 17:56 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,
ich habe mich jetzt das ganze WE mit Deinem Makro beschäftigt und so abändern können, dass ich damit leben kann.
Alle in Antwort 3 beschriebenen Probleme konnte ich durch löschen einzelner Abschnitte oder einfügen von Makroaufzeichnungen lösen.
So habe ich z.Bsp. das ungewollte ´schrittweise löschen durch löschen des Abschnittes

'eventuell vorhandene Kommentar-Liste löschen
With Ziel
.Range(Cells(32, 1), Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 4)).ClearContents
End With

das ändern der Sp.-breiten durch löschen des Abschnittes
'Breite der Spalten A bis C automatisch anpassen
Columns("A:C").AutoFit

das tauschen der Einträge durch ändern folgenden Abschnittes zu
.Cells(zeile, 2).Value = Blatt.Name
.Cells(zeile, 1).Value = Notiz.Parent.Address
.Cells(zeile, 4).Value = Notiz.Text
gelöst.

Ich habe das aufgeschrieben, um dich zu fragen, ob ich mir damit hoffentlich keine noch nicht entdeckten neuen Probleme geschaffen habe??
Jetzt habe ich nur noch eine Bitte: Ich wollte mir die Kommentare in einem anderen Arbeitsblatt ("Auswertung") ausgeben lassen. Ich dachte, das erreiche ich ganz einfach, indem ich die Zeile -
Set Ziel = ThisWorkbook.Worksheets("Hauptmenu") - ändere in
Set Ziel = ThisWorkbook.Worksheets("Auswertung").
Das hat leider nicht geklappt. Kannst Du mir da bitte noch weiterhelfen?
Danke und Gruß Flodnug


Antwort noch nicht bewertet
Antwort 5 von M.O. vom 20.03.2017, 08:16 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Flodnug,

eigentlich sollte deine Änderung für das Arbeitsblatt Auswertung klappen.
Ich habe das Makro entsprechend deinen Wünschen angepasst und auch die Löschroutine noch mal etwas überarbeitet. Schau mal ob das jetzt so klappt, wie du willst:

Sub KommentareDokumentieren()

Dim Blatt As Worksheet
Dim Ziel As Worksheet
Dim Notiz As Comment
Dim zeile As Long
Dim lngLetzte As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False
 
'Arbeitsblatt definieren, auf denen die Kommentar ausgegeben werden sollen
Set Ziel = ThisWorkbook.Worksheets("Auswertung")

'eventuell vorhandene Kommentar-Liste löschen
With Ziel
 lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
 If lngLetzte > 31 Then .Range(Cells(32, 1), Cells(lngLetzte, 4)).ClearContents
End With
 
'erste Einfügezeile festlegen
zeile = 32
 
'Blätter durchlaufen und Kommentare in Zelle schreiben
For Each Blatt In ActiveWorkbook.Worksheets
 For Each Notiz In Blatt.Comments
  With Ziel
   .Cells(zeile, 1).Value = Notiz.Parent.Address
   .Cells(zeile, 2).Value = Blatt.Name
   .Cells(zeile, 4).Value = Notiz.Text
   .Cells(zeile, 4).WrapText = False 'kein Zeilenumbruch in Spalte D
  End With
   zeile = zeile + 1
 Next Notiz
Next Blatt

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 6 von Flodnug1 vom 20.03.2017, 10:26 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,
vielen Dank erstmal für Deine Änderung.
Leider kommt jetzt die Meldung: 'Laufzeitfehler 1004':
Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen.
Gruß Flodnug


Antwort noch nicht bewertet
Antwort 7 von M.O. vom 20.03.2017, 11:19 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Flodnug,

gibt es denn das Arbeitsblatt "Auswertung"? Ansonsten musst du ein entsprechendes Arbeitsblatt erstellen.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 8 von Flodnug1 vom 20.03.2017, 11:47 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.
danke für Deine Antwort.
Ja es gibt das Arb.blatt "Auswertung" und zwar an 5.Stelle nach 'Menü', 'Vorrunde', 'Rückrunde' und 'Mannschaften'.
Das Makro bleibt an folgender Stelle gelb unterlegt hängen:
Range(Cells(32, 1), Cells(lngLetzte, 4)).ClearContents
Hoffentlich hilft Dir das weiter.
Gruß Flodnug


Antwort noch nicht bewertet
Antwort 9 von M.O. vom 20.03.2017, 12:00 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Flodnug,

sehe gerade den Fehler. Ersetze die gelb markierte Zeile durch diese hier:
If lngLetzte > 31 Then .Range(.Cells(32, 1), .Cells(lngLetzte, 4)).ClearContents


Dann sollte es funktionieren.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 10 von Flodnug1 vom 20.03.2017, 12:28 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,
vielen Dank.
Jetzt habe ich es so, wie ich es wollte, außer dass das Makro auch noch in das Arb.blatt 'Auswertung' springen sollte.
Aber da habe ich jetzt einfach per Hand den Sprung in 'Auswertung' aufgezeichnet und dann an den Anfang Deines Makros "call Ausw" geschrieben.
Danke nochmal für alles und
Gruß Flodnug


Antwort noch nicht bewertet




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Sun May 14 21:51:28 2017