Anzeige
Archiv - Navigation
1028to1032
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

Geb. im Kommentar anzeigen

Geb. im Kommentar anzeigen
10.12.2008 22:16:08
Peter
Hallo Leute
ich hab da in einer Tabelle einen Kalender und in der anderen schreibe ich Daten rein. Ist es möglich das die Geb. als Kommentar im Kalender anzeigen kann. Bitte um hilfe !!!
Gruß Peter
https://www.herber.de/bbs/user/57533.xls

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Es ist zwar nicht ganz klar wie das...
11.12.2008 05:37:00
Luc:-?
...aussehen soll, Peter,
aber ich zeige dir mal meine Interpretation. Ich habe es mit Formeln realisiert. Darin wdn neben xlStandardfktt auch etliche udFktt benutzt - leider zumeist noch undokumentierte, die auch zumeist nicht in einem publizierbaren Zustand sind. Daraus folgt für dich - VBA muss her, denn auch udFktt sind VBA. Allerdings wird da Recorder-VBA evtl nicht reichen. Trotzdem empfehle ich, das manuelle Anlegen eines Kommentars aufzuzeichnen, vorausgesetzt, du willst das wirklich automatisieren. Ansonsten ist ohnehin Handarbeit angesagt, es sei denn, du meinst nicht wirklich Kommentar im xlSinn. Aber deine Kalenderzellen sind ohnehin zu klein, um mehr als ein X aufzunehmen.
Wenn du das also wirklich automatisieren willst, ist das eine schon anspruchsvollere VBA-Anfänger-Aufgabe.
Meiner Fml-Lösung kannst du zumindest entnehmen wie der Datenvgl ungefähr zu organisieren wäre. Glücklicherweise basiert deine Kalendertagangabe auf einem vollen Datum, so dass ich nur aus diesem Tag einen VglBegriff ermitteln konnte, den ich in der udF ChooseIn zur Auswahl der signifikanten Zellen aus den beiden Datenbereichen nutzen konnte. Name und Geburtsjahr wdn dann vereinigt (auch mehrere an einem Tag) und dienen so als Kommentartext, der von der kommentargenerierenden udF ComGen verwendet wird. Das musst du natürlich in einem Makro in Gänze, nicht in meinen udF-"Portionen" nachbauen. Falls du in deinem Makro TabBlattFormeln verwenden willst, musst du wissen, dass das mit Matrixformeln idR nicht klappt - also stattdessen PgmSchleifen verwenden!
Wenn dir das nicht gelingen will, musst du dich (hier) noch mal melden. Vielleicht findet sich ja auch ein Anderer, der das übernehmen will (deshalb noch offen). Evtl kann ich auch meinen Schwager dafür begeistern, der auch gerne an Kalendern bosselt (seit Kurzem auch mit VBA)... ;-)
Noch ein Tipp: Vermeide möglichst Zellverbindungen! Für die Monatsnamen hätte 1 (breitere) Spalte gereicht (oder horizontal über Auswahl zentrieren).
So, und hier mein Ergebnis...
Userbild
Gruß Luc :-?
Anzeige
AW: Geb. im Kommentar anzeigen
11.12.2008 07:48:47
Beverly
Hi Peter,
diesen Code ins Codemodul des Tabellenblattes "Daten"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZelle As Range
Dim raBereich As Range
Set raBereich = Union(Range("D2:AH2"), Range("D5:AH5"), Range("D8:AH8"), Range("D11:AH1"), _
Range("D14:AH14"), Range("D17:AH17"), Range("D20:AH20"), Range("D23:AH23"), Range("D26: _
AH26"), _
Range("D29:AH29"), Range("D32:AH32"), Range("D35:AH35"))
If Target.Column  7 Then Exit Sub
If IsDate(Target) Then
For Each raZelle In Worksheets("Kalender").Range(raBereich.Address)
If Day(raZelle) = Day(Target) And Month(raZelle) = Month(Target) Then
If raZelle.Offset(2, 0).Comment Is Nothing Then
raZelle.Offset(2, 0).AddComment Target.Offset(0, -1) & " " & Year(Target)
Else
If InStr(raZelle.Offset(2, 0).Comment.Text, Target.Offset(0, -1) & " " & Year( _
Target)) = 0 Then
raZelle.Offset(2, 0).Comment.Text raZelle.Offset(2, 0).Comment.Text & vbLf &  _
Target.Offset(0, -1) & " " & Year(Target)
End If
End If
raZelle.Offset(2, 0).Comment.Shape.OLEFormat.Object.AutoSize = True
Exit For
End If
Next raZelle
End If
End Sub




Anzeige
AW: Geb. im Kommentar anzeigen
11.12.2008 09:01:00
Luschi
Hallo Karin,
klasse Idee und prima umgesetzt!
Gruß von Luschi
aus klein-Paris
PS: Beispiel wurde sofort archiviert.
AW: Geb. im Kommentar anzeigen
11.12.2008 10:10:24
Peter
Hallo Beverly
ich hab den code in das datenblatt eingefügt aber es klappt nicht. Ich hab keine ahnung was ich falsch gemacht habe.
Gruß Peter
AW: Geb. im Kommentar anzeigen
11.12.2008 10:33:00
Beverly
Hi Peter,
und was klappt nicht?


Beverly hat dir leider die Gebrauchsanleitung...
11.12.2008 15:35:00
Luc:-?
...nicht mitgeliefert, Peter!
Du musst anschließend im TabBlatt Daten jedes einzelne Geburtsdatum anklicken, weil nur so ein Ereignis ausgelöst wird, das letztlich die Kommentargenerierung bewirkt. D.h., ein neu angelegter Eintrag in Daten wird sofort in einen Kommentar umgesetzt, sobald du den Datumseintrag abschließt.
Außerdem scheinen in deinem Blatt evtl Ereignisprozeduren disabled zu sein. Mit folgender Subroutine in einem Standardmodul kannst du das beliebig an-/ausschalten...

Sub EventFlipFlop()
With Application: .EnableEvents = Not .EnableEvents: End With
End Sub


Des weiteren empfehle ich, nicht die Geburtsjahre, sondern das erreichte Alter im Kommentar anzuzeigen. Dazu müsste aber entweder jedes Jahr wieder alles angeklickt oder aber die Prozedurregie geändert wdn. Außerdem müsste die Fml ab H2 wie folgt ersetzt wdn:
=WENN(G2="";"";A$1-JAHR(G2))
Die Gründe wdn einsichtig, wenn du bspw jetzt ein Geburtsdatum 24.12. einfügst.
Gruß Luc :-?

Anzeige
AW: Geb. im Kommentar anzeigen
11.12.2008 17:29:00
Beverly
Hi Peter,
die Reaktion auf die Eingabe (das ist das was Lucius damit meint dass deine "Ereignisprozeduren disabled" zu sein scheinen) ist in der von dir hochgeladenen Arbeitsmappe nicht abgeschaltet und ich würde mich auch hüten, den Code von Lucius zu verwenden, denn falls sie nicht ausgeschaltet ist, würdest du sie damit ausschalten. Wenn man einen Zustand wieder herstellen will, ist es unwichtig zu wissen ob er vorher verändert wurde. Zum Einschalten der Reaktion auf die Eingabe (d.h. ein Code wird ausgeführt wenn ein Eintrag in den im Code festgelegten Bereich - hier Spalte G - gemacht wird) würde ich dir dann besser diesen Code empfehlen

Sub reaktion_einschalten()
Application.EnableEvents = True
End Sub




Anzeige
...und beim 2.Aufruf wieder einschalten! Was...
11.12.2008 18:00:00
Luc:-?
...ist daran problematisch? Deshalb heißt das ja auch FlipFlop und ist als separates Testhilfsmittel gedacht, das vor allem nach Pgmabstürzen sinnvoll einsetzbar ist!
Allerdings scheint die Abschaltung der Events bei mir durch PgmAbsturz entstanden zu sein. Ist ja auch schnurz, auf jeden Fall musst du, Peter, erst mal die EventProc auslösen, indem du (scheinbar) was änderst...
Gruß Luc :-?
warum doppelt gemoppelt und erst testen...
11.12.2008 18:18:04
Beverly
Hi Lucius,
...wenn man nur vor hat, den Urzustand wieder herzustellen? Ich habe nicht vor, mich mit dir zu streiten, und dein Code ist zum Hin- und Herschalten zwischen den beiden Zuständen gewiss ganz nützlich, aber insbesondere nach Programmabstürzen (bzw. wenn der Codeablauf unterbrochen wurde), sollte man einen Code nicht erst 2 mal ausführen und auch noch testen müssen, ob denn der Urzustand wieder hergestellt ist oder vielleicht doch nicht. In diesem Fall ist es auf jeden Fall empfehlenswerter, gleich Nägel mit Köpfen zu machen.


Anzeige
Glaub mir, hab das schon oft gebraucht... ;-) orT
11.12.2008 18:22:06
Luc:-?
Gruß Luc :-?
AW: Glaub mir, hab das schon oft gebraucht... ;-) orT
12.12.2008 18:32:56
Peter
Hallo Beverly
ich hab jetzt jden Grb. angeklickt und es klappt super. Ich würde aber noch gern etwas ändern. Als Anzeige im Kommentar würde der Name und das Alter reichen. Das Geburtsjahr könnte man weglassen. Ich habe an dem Code nichts geändert. Soll ich jetzt den letzten Code von dir noch einfügen? Bitte noch mal um hilfe.
Gruß Peter
Aha! Meine Anregungen aufgenommen! Dann...
13.12.2008 03:06:00
Luc:-?
...ändere aber auch deine Fml zur Altersermittlung nach meinem Vorschlag, Peter!
Ansonsten reichst es nicht, nur den entsprechenden Bereich auszutauschen; die Extraktion des Jahres muss auch unterbleiben. Außerdem muss sichergestellt sein, dass das Alter schon berechnet wurde, wenn das Pgm nach Eintragung des Geb'datums startet. Aber das ist wohl das kleinere Problem. Wenn Beverly hier noch mal reinschaut, wird sie dir das schon machen. Allerdings hast du dich schon 'ne Weile nicht mehr gemeldet und B. ist vielbeschäftigt... ;-)
Gruß + schöWE
Luc :-?
Anzeige
Geb. im Kommentar anzeigen
13.12.2008 10:05:00
Beverly
Hi Peter,
ersetze an allen Stellen im Code den Ausdruck Year(Target) durch Target.Offset(0, 1)


AW: Geb. im Kommentar anzeigen--Danke !!!
13.12.2008 16:00:34
Peter
Hallo Karin
danke für deine hilfe. Klappt super
Gruß Peter
...und... Formel geändert? owT
14.12.2008 01:40:00
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige