Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kommenare beim Klick in die leere Zelle anzeigen?

Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 12:17:00
Selma
Hallo Leute,
ich möchte in Zellen der Spalte E und Spalte F die Kommmentare als errechnete Werte beim Klick in die Zelle anzeigen, wenn diese Zelle leer sind. Sind die Zelle gefüllt, dann soll der Kommentar nicht angezeigt werden.
Die Voraussetzung ist, dass in Zelle der Spalte D die Zahlen stehen (keine Buchstaben).
1. Steht in Zelle der Spalte D der Zahl und die Zelle der Spalte E und F beide leer sind,
dann soll beim Klick in die Zelle der Spalte E oder F als Kommentar das Ergebnis folgende Formel angezeigt werden:
In Zelle D2 steht als Beispiel: 6000
Berechnungsbeispiel für Zeile 2:
E2 für erste erste Zeile des Kommentars
=WURZEL(D2/(4*3600))*1000 ergibt als Ergebnis 645
E2 für zweite Zeile des Kommentars
=WURZEL(D2/(5*3600))*1000 ergibt als Ergebnis 577
E2 für dritte erste Zeile des Kommentars
=WURZEL(D2/(6*3600))*1000 ergibt als Ergebnis 527
Kommentar:
erste Zeile des Kommentars: a und b = 645 mm bei w = 4 m/s
zweite Zeile des Kommentars: a und b = 577 mm bei w = 5 m/s
dritte Zeile des Kommentars: a und b = 527 mm bei w = 6 m/s
Screenshot:
2. Steht in Zelle der Spalte D der Zahl und die Zelle der Spalte F leer ist,
dann soll beim Klick in die Zelle der Spalte F als Kommentar das Ergebnis folgende Formel angezeigt werden:
In Zelle D2 steht als Beispiel: 6000
In Zelle E2 steht als Beispiel: 580
Berechnungsbeispiel für Zeile 2:
F2 für erste erste Zeile des Kommentars
=D2/(4*3600*E2)*1000000 ergibt als Ergebnis 718
F2 für zweite Zeile des Kommentars
=D2/(5*3600*E2)*1000000 ergibt als Ergebnis 575
F2 für dritte erste Zeile des Kommentars
=D2/(6*3600*E2)*1000000 ergibt als Ergebnis 479
Kommentar:
erste Zeile des Kommentars: b = 718 mm bei w = 4 m/s
zweite Zeile des Kommentars: b = 575 mm bei w = 5 m/s
dritte Zeile des Kommentars: b = 479 mm bei w = 6 m/s
Screenshot:
3. Steht in Zelle der Spalte D der Zahl und die Zelle der Spalte E leer ist,
dann soll beim Klick in die Zelle der Spalte E als Kommentar das Ergebnis folgende Formel angezeigt werden:
In Zelle D2 steht als Beispiel: 6000
In Zelle F2 steht als Beispiel: 650
Berechnungsbeispiel für Zeile 2:
E2 für erste erste Zeile des Kommentars
=D2/(4*3600*F2)*1000000 ergibt als Ergebnis 641
E2 für zweite Zeile des Kommentars
=D2/(5*3600*F2)*1000000 ergibt als Ergebnis 513
E2 für dritte erste Zeile des Kommentars
=D2/(6*3600*F2)*1000000 ergibt als Ergebnis 427
Kommentar:
erste Zeile des Kommentars: a = 641 mm bei w = 4 m/s
zweite Zeile des Kommentars: a = 513 mm bei w = 5 m/s
dritte Zeile des Kommentars: a = 427 mm bei w = 6 m/s
Screenshot:
Wie mache ich das?
Vielen Dank im Voraus !
Liebe Grüße,
Selma

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

Betreff
Datum
Anwender
Anzeige
AW: Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 17:01:00
Tino
Hallo,
teste mal diesen Code.
Kommt als Code ins entsprechende Tabellenblatt.
Habe den Code nicht ausreichend getestet sollte aber funktionieren.
Bin mir auch nicht sicher, ob es die Sqr (Wurzel) Funktion in xl2000 gibt.
Bin jetzt außer Haus und kann erst heute Abend wieder online.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim Wert1 As Long, Wert2 As Long, Wert3 As Long 
 
With Target 
If .Count > 1 Then Exit Sub 
 
If .Column = 5 Then 
 If Cells(.Row, "E") = "" And Cells(.Row, "F") = "" Then 
   Wert1 = Sqr(Cells(.Row, "D") / (4 * 3600)) * 1000 
   Wert2 = Sqr(Cells(.Row, "D") / (5 * 3600)) * 1000 
   Wert3 = Sqr(Cells(.Row, "D") / (6 * 3600)) * 1000 
  .ClearComments 
  .AddComment strText(Wert1, Wert2, Wert3, 2) 
  .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
  .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
 End If 
ElseIf .Column = 6 And Target <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "E")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 0) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
ElseIf .Column = 7 And Target <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "F")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 1) 
 .ShapeRange.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .ShapeRange.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
End If 
End With 
End Sub 
 
Function strText(Wert1 As Long, Wert2 As Long, Wert3 As Long, byCol As Byte) As String 
Dim strErsatz As String 
strErsatz = IIf(byCol = 0, "b = ", IIf(byCol = 2, "a = ", "a und b = ")) 
strText = strErsatz & Wert1 & " mm bei w = 4 m/s" & Chr(10) 
strText = strText & strErsatz & Wert2 & " mm bei w = 5 m/s" & Chr(10) 
strText = strText & strErsatz & Wert3 & " mm bei w = 6 m/s" 
 
End Function 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 19:12:31
Selma
Hallo Tino,
ich habe mit folgenden Ergebnissen getestet:
- Die Kommentare sollen nur dann angezeigt werden, wenn die Zelle leer ist mit Voraussetztung das in Zelle der Spalte D der Zahl steht. Beim Buchstaben sollen die Kommentare nicht angezeigt werden.
Sind die Zelle in Spalte E und F mit Inhalten gefüllt, dann sollen die Komentare gelöscht werden.
- zu Punkt 1: es soll im Kommentar wie folgt heißen a und b = ..... (wenn E und F leer sind)
- zu Punkt 1: beim Klick in Zelle F wird der Kommentar nicht angezeigt, sondern in Zelle E eine Zeile drunter
Könntest du bitte die obige Punkte noch korrigieren, dann kann ich es noch einmal durchtesten ?
Besten Dank !
LG,
Selma
Anzeige
AW: Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 20:33:00
Tino
Hallo,
ok. noch ein Versuch, beachten den Code der in ein Modul muss.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim Wert1 As Long, Wert2 As Long, Wert3 As Long 
 
If Not MerkTarget Is Nothing Then MerkTarget.ClearComments 
 
With Target 
    If .Count > 1 Then Exit Sub 
    If .Value <> "" Then Exit Sub 
 
If .Column = 5 Then 
 If Cells(.Row, "E") = "" And Cells(.Row, "D") <> "" Then 
   Wert1 = Sqr(Cells(.Row, "D") / (4 * 3600)) * 1000 
   Wert2 = Sqr(Cells(.Row, "D") / (5 * 3600)) * 1000 
   Wert3 = Sqr(Cells(.Row, "D") / (6 * 3600)) * 1000 
  .ClearComments 
  .AddComment strText(Wert1, Wert2, Wert3, 2) 
  .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
  .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
  Set MerkTarget = Target 
 End If 
ElseIf .Column = 6 And Target = "" Then 
If Cells(.Row, "D") <> "" And Cells(.Row, "E") <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "E")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 0) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
Set MerkTarget = Target 
 End If 
ElseIf .Column = 7 And Target = "" Then 
If Cells(.Row, "D") <> "" And Cells(.Row, "E") <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "F")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 1) 
 .ShapeRange.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .ShapeRange.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
 Set MerkTarget = Target 
End If 
End If 
End With 
 
End Sub 
 
Function strText(Wert1 As Long, Wert2 As Long, Wert3 As Long, byCol As Byte) As String 
Dim strErsatz As String 
strErsatz = IIf(byCol = 0, "b = ", IIf(byCol = 1, "a = ", "a und b = ")) 
strText = strErsatz & Wert1 & " mm bei w = 4 m/s" & Chr(10) 
strText = strText & strErsatz & Wert2 & " mm bei w = 5 m/s" & Chr(10) 
strText = strText & strErsatz & Wert3 & " mm bei w = 6 m/s" 
 
End Function 

Modul Modul1

Option Explicit 
 
Public MerkTarget As Range 


Gruß Tino

Anzeige
AW: Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 22:25:00
Selma
Hallo Tino,
fast alles richtig ;)
- wenn in Zelle der Spalte D der Wert drin steht, und die Zellen der Spalte E und F beide leer sind,
dann soll gleiche Kommentar wie in Spalte E auch in Spalte F angezeigt werden.
Beispiel:
D2 = 6000
E2 = nichts
F2 = nichts
Beide Kommenare sind dann gleich sprich a und b = .....
- wenn in Zelle der Spalte D und Spalte F die Werte drin stehen, und die Zelle der Spalte E leer ist,
dann soll der Kommentar in Zelle der Spalte E als a = ..... angezeigt werden.
Erläuterung der Kommentare:
Kommentar in Spalte E fängt mit a = .... an, wenn der Wert in Zelle der Spalte F fehlt
Kommentar in Spalte F fängt mit b = .... an, wenn der Wert in Zelle der Spalte E fehlt
Kommentar in Spalte E und F fängt mit a und b = .... an, wenn die Werte in Zelle der Spalte E und F fehlen.
Könntest du bitte die obige Punkte noch korrigieren?
Besten Dank !!!
LG,
Selma
Anzeige
AW: Kommenare beim Klick in die leere Zelle anzeigen?
11.10.2008 23:27:00
Tino
Hallo,
das mit den beiden Kommentaren in zwei Zellen habe ich noch nicht eingebaut.
Schaue jetzt Boxen.
Microsoft Excel Objekt Tabelle1
Option Explicit 
  
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim Wert1 As Long, Wert2 As Long, Wert3 As Long 
  
If Not MerkTarget Is Nothing Then MerkTarget.ClearComments 
  
With Target 
    If .Count > 1 Then Exit Sub 
    If .Value <> "" Then Exit Sub 
  
If .Column = 5 And (Cells(.Row, "E") = "" And Cells(.Row, "D") <> "" And Cells(.Row, "F") = "") Then 
 
   Wert1 = Sqr(Cells(.Row, "D") / (4 * 3600)) * 1000 
   Wert2 = Sqr(Cells(.Row, "D") / (5 * 3600)) * 1000 
   Wert3 = Sqr(Cells(.Row, "D") / (6 * 3600)) * 1000 
  .ClearComments 
  .AddComment strText(Wert1, Wert2, Wert3, 2) 
  .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
  .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
  Set MerkTarget = Target 
 
 
ElseIf .Column = 6 And Target = "" Then 
If Cells(.Row, "D") <> "" And Cells(.Row, "E") <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "E")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 0) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
Set MerkTarget = Target 
 End If 
 
ElseIf .Column = 5 And (Cells(.Row, "F") <> "" And Cells(.Row, "D") <> "") Then 
If Cells(.Row, "D") <> "" And Cells(.Row, "F") <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "F")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 1) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
 Set MerkTarget = Target 
End If 
 
End If 
 
End With 
  
End Sub 
  
Function strText(Wert1 As Long, Wert2 As Long, Wert3 As Long, byCol As Byte) As String 
Dim strErsatz As String 
strErsatz = IIf(byCol = 0, "b = ", IIf(byCol = 1, "a = ", "a und b = ")) 
strText = strErsatz & Wert1 & " mm bei w = 4 m/s" & Chr(10) 
strText = strText & strErsatz & Wert2 & " mm bei w = 5 m/s" & Chr(10) 
strText = strText & strErsatz & Wert3 & " mm bei w = 6 m/s" 
  
End Function 

Modul Modul1

Option Explicit 
 
Public MerkTarget As Range 


Gruß Tino

Anzeige
jetzt gehts
12.10.2008 00:27:00
Tino
Hallo,
Boxen ist vorbei und jetzt hab ich alles.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim Wert1 As Long, Wert2 As Long, Wert3 As Long 
 
 
If Not MerkTarget Is Nothing Then MerkTarget.ClearComments 
 
With Target 
    If .Count > 1 Then Exit Sub 
    If .Value <> "" Or Cells(.Row, "D") = "" Then Exit Sub 
 
If (.Column = 5 Or .Column = 6) And Cells(.Row, "E") = "" And Cells(.Row, "F") = "" Then 
 
   Wert1 = Sqr(Cells(.Row, "D") / (4 * 3600)) * 1000 
   Wert2 = Sqr(Cells(.Row, "D") / (5 * 3600)) * 1000 
   Wert3 = Sqr(Cells(.Row, "D") / (6 * 3600)) * 1000 
   Set MerkTarget = Range(Cells(.Row, "E"), Cells(.Row, "F")) 
  MerkTarget.ClearComments 
  MerkTarget(1).AddComment strText(Wert1, Wert2, Wert3, 2) 
  MerkTarget(1).Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
  MerkTarget(1).Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
  MerkTarget(2).AddComment strText(Wert1, Wert2, Wert3, 2) 
  MerkTarget(2).Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
  MerkTarget(2).Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
 
 
ElseIf .Column = 5 And (Cells(.Row, "E") = "" And Cells(.Row, "F") <> "") Then 
 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "F")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "F")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 1) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
 
 Set MerkTarget = Target 
 
 
 
ElseIf .Column = 6 And Cells(.Row, "E") <> "" And Cells(.Row, "F") = "" Then 
 
If Cells(.Row, "D") <> "" And Cells(.Row, "E") <> "" Then 
 Wert1 = Cells(.Row, "D") / (4 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert2 = Cells(.Row, "D") / (5 * 3600 * Cells(.Row, "E")) * 1000000 
 Wert3 = Cells(.Row, "D") / (6 * 3600 * Cells(.Row, "E")) * 1000000 
 .ClearComments 
 .AddComment strText(Wert1, Wert2, Wert3, 0) 
 .Comment.Shape.ScaleWidth 1.42, msoFalse, msoScaleFromTopLeft 
 .Comment.Shape.ScaleHeight 0.63, msoFalse, msoScaleFromTopLeft 
Set MerkTarget = Target 
 End If 
 
 
End If 
 
 
 
End With 
 
End Sub 
 
Function strText(Wert1 As Long, Wert2 As Long, Wert3 As Long, byCol As Byte) As String 
Dim strErsatz As String 
strErsatz = IIf(byCol = 0, "b = ", IIf(byCol = 1, "a = ", "a und b = ")) 
strText = strErsatz & Wert1 & " mm bei w = 4 m/s" & Chr(10) 
strText = strText & strErsatz & Wert2 & " mm bei w = 5 m/s" & Chr(10) 
strText = strText & strErsatz & Wert3 & " mm bei w = 6 m/s" 
 
End Function 

Modul Modul1

Option Explicit 
 
Public MerkTarget As Range 


Gruß Tino

Anzeige
AW: jetzt gehts
12.10.2008 10:51:24
Selma
Vielen Dank Tino !
LG,
Selma

368 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige