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

Kleine Knobelei mit Kommentaren

Kleine Knobelei mit Kommentaren
12.12.2015 13:28:29
Bernd Holzhauer

Hallo Ihr lieben Excel Götter,
eine kleine Knobelei mit Kommentaren hätte ich mal.
https://www.herber.de/bbs/user/102202.xlsm
Im Anhang habe ich eine Tabelle, wie ich sie mir vorstelle angehangen.
Es soll ein Patchplan werden wo die Patche automatisch in der Geräteübersicht als Kommentare eingefügt werden.
eine private Funktion zum erstellen habe ich auch schon gefunden und eingebunden:

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
.AddComment rngQuelle(1, 1).Text
End With
End Function
Hab ich also in der Zelle xx z.B. auf der Hilfsseite die Funktion

=TakeComment(D3;C1)
so wird der Inhalt von D3 in C1 als Kommentar eingefügt soweit so gut.
Nun komme ich aber nicht weiter, da das ganz ja dynamisch funtionieren soll, d.h.auf der Seite Patchplan gebe ich in C4:Cxxxx den Port an und in E4:Exxxx die HE aus der Kombination soll sich dann der VON Wert für TakeComment ergeben nach dem selben Prinzip hatte ich mir das für das Ziel auch vorgestellt und das sich der Kommentar in Ziel und Quelle einträgt.
Für Hilfe und Denkanstöße wäre ich euch sehr Dankbar.
lG Bernd

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kleine Knobelei mit Kommentaren
13.12.2015 09:58:08
Tino
Hallo,
wenn ich dich richtig verstanden habe,
willst Du mit einer Formel einen/mehrere Kommentare erstellen.
Das geht so nicht, eine Funktion aus einer Zelle aufgerufen kann keine Änderung
an der Tabelle durchführen.
Evtl. könntest du diese entkoppeln und über OnTime danach eine Sub/Function aufrufen
die den Kommentar erstellt.
Persönlich würde ich über Worksheet_Change machen.
In etwa so
kommt als Code in Tabelle1
Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Intersect(Range("C4:C254"), Target)
If rng Is Nothing Then Exit Sub
For Each rng In rng.Cells
TakeComment Cells(rng.Row, 4), Cells(rng.Row, 3)
Next rng
End Sub
Gruß Tino

Anzeige
AW: Kleine Knobelei mit Kommentaren
13.12.2015 10:52:14
Bernd Holzhauer
Hallo Timo,
danke für den Denkansatz
aber ich will ja auch keine Tabellen verändern sonder nur einzele Kommentare erstellen.
die Quell und die Zieladressen müssen sich aber dynamisch generieren:
z.B. der Eintrag im Patchplan
von			HE	nach			HE
Gerät	Port	Standort		Gerät	Port	Standort		Beschreibung
SW01	a	Schrank1	3	PF01	a	Schrank1	21
soll folgendes erzeugen:
in der Zelle Schrank1!A21 einen Kommentar der Schrank1!A3 heist
und
in der Zelle Schrank1!A3 einen Kommentar der Schrank1!A21 heist
mit =TakeComment(rngQuelle;rngZiel) erfülle ich das ganze zum Teil aber das rngZiel bekomme ich nicht zusammen gebastel
rngQuelle wäre z.B AA4 AA4 =D4&"1"&C4&E4 ==> Schrank1!A3

Anzeige
AW: Kleine Knobelei mit Kommentaren
13.12.2015 11:26:17
Hajo_Zi
Zu Crossposting lies diese Seite Hajo-Excel.de
Durch Crosspostuing werden mehrere Gruppen von Leuten mit dem gleichen Thema befasst, ohne dass sie voneinander wissen.
Naturgemäß laufen dann die Antworten, die im einen Forum "zu spät" gegeben wurden, ins Leere und bleiben ohne Resonanz.
Es reicht also, zunächst in einem Forum zu posten - wenn die Antworten dann unbefriedigend sein sollten, steht es einem anschließend immer noch offen, ein anderes Forum zu Rate zu ziehen.
Ich mache keine Werbung für andere Foren und verzichte darum auf den Link.
Lese FAQ

Anzeige
AW: Kleine Knobelei mit Kommentaren
13.12.2015 11:37:15
Bernd Holzhauer
Danke mein Lieber für die kleine aber bestimmt Rüge,
Ich werde sie mir zu Herzen nehmen und da ich weis das du und viele andere hier zu den besten und aktivsten zählen. Bin Ich auch gerne hier Zuhause.
lG
Bernd

Criossposting NEIN DANKE
13.12.2015 11:45:05
Hajo_Zi
das muss man nicht als offen kennzeichnen.

nochmal
13.12.2015 13:19:53
Tino
Hallo,
eine Function die aus einer Zelle aufgerufen wird
kann in der Tabelle kein Änderungen durchführen dazu gehört auch Kommentare erstellen.
Zumeist beschrenk sich dies nur aufs Ergebnis der Function
Gruß Tino

AW: nochmal
13.12.2015 13:57:05
Bernd Holzhauer
Dank dir Timo,
ich glaube nun das ich es verstanden habe was du meinst.
Habe gerade angefangen ein VBA zu erstellen der den Bereich Patchplan zeilenweise einliest und dann daraus die Kommentare erstellt und diese in den entsprechenden Tabellen und Zellen hinterlegt.
Über die UDF wäre eine einfache Lösung gewesen, die leider recht statisch im Bereich Ziel des Kommentares ist.
lG

Anzeige
AW: nochmal
15.12.2015 09:23:32
Bernd Holzhauer
Dank einem richtigen Denkanstoss funtioniert es nun wie es soll.
Verbesserungspotential wie z.B. Abfrage für doppelte Werte, Automatische Blatterstellung usw.... sind noch gegeben und werden gerne angenommen.
Das Problem wurde nun wie folgt behoben:
in Modul1
Public Function Ziel(Schrank As Integer, Ebene As Integer, Port As Integer) As String
' Bastelfunktion für Ziel und Quelladresse verwendet im Blatt Patchplan Spalten R&S
Ziel = Sheets(Schrank + 1).Name & "!" & Cells(Ebene + 1, Port + 1).Address(0, 0)
End Function
Public Function HasComment(Optional rngZelle As Range) As Boolean
' Prüfunktion ob ein Kommentar vorhanden oder nicht
HasComment = Not rngZelle.Comment Is Nothing
End Function
Public Sub Alle_Kommentare_loeschen()
'Es werden alle Kommentare der aktiven Datei gelöscht
Dim wks As Worksheet
For Each wks In Worksheets
If wks.Comments.Count > 0 Then
wks.Cells.SpecialCells(xlCellTypeComments).ClearComments
End If
Next
End Sub

und unter Diese Arbeitsmappe:
Sub MakeComment()
Dim rng As Range
Dim c As Range
Dim Bereich
Call Alle_Kommentare_loeschen
' Kommentar Erstellung für "von"
Set Bereich = Range("Patchplan!R4:Patchplan!R500")
For Each c In Bereich
If c.Value <> "" Then
Set rng = Range(c.Value)
If rng.Comment Is Nothing Then rng.AddComment
rng.Comment.Text Text:="Patch nach: " & c.Offset(0, 3).Value & vbLf & c.Offset(0, 2).Value & _
vbLf & "Beschreibung: " & c.Offset(0, -6).Value & vbLf & "VLAN: " & c.Offset(0, -5) & vbLf & "IP Range: " & c.Offset(0, -4).Value
rng.Comment.Shape.TextFrame.AutoSize = True
' rng.Interior.Color = 50000
End If
Next
' Kommentar Erstellung für "nach"
Set Bereich = Range("Patchplan!S4:Patchplan!S500")
For Each c In Bereich
If c.Value <> "" Then
Set rng = Range(c.Value)
If rng.Comment Is Nothing Then rng.AddComment
rng.Comment.Text Text:="Patch nach: " & c.Offset(0, -3).Value & vbLf & c.Offset(0, -2). _
Value & vbLf & "Beschreibung:" & vbLf & c.Offset(0, -7).Value
rng.Comment.Shape.TextFrame.AutoSize = True
'rng.Interior.Color = 50000
End If
Next
Application.CalculateFull ' zur Neuberechnung der Tabelle
MsgBox "Alle Patche wurden eingetragen", 64
End Sub
falls jemand also einen Tool zur Erstellung von Patchplänen brauch mit Schrank Übersicht dan findet ihr es hier:
https://www.herber.de/bbs/user/102258.xlsm
lG @ all Bernd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige