Discussion:
Excel Mouseover- Verhalten
(zu alt für eine Antwort)
Hans Alborg
2014-10-15 12:49:32 UTC
Permalink
Hallo.

<Excel 2007>

Es kommt manchmal vor, daß Excel ähnlich wie bei einem Kommentar, den Inhalt
einer Zelle anzeigt wenn der Cursor drübersteht. Was ich gemerkt habe: nur
wenn eine Zelle derselben Spalte selektiert ist passiert das.
Das ist dann aber auch nicht bei jeder Zelle in der Spalte so.

Kann man über dieses Verhalten irgendwo was lesen?

Mir ist das aufgefallen, weil in den entsprechenden Zellen addierte Zeiten
angezeigt werden, und Excel mit der Mouseover- Meldung nochmal genau
dasselbe zeigt.
So ein Unsinn! Lieber wäre mir die Anzeige der Summe aus mehreren solcher
Zellen.
Da ich Excel aber als Mouseover- faul kenne, wird sich sowas nicht machen
lassen, oder?

Hans
Claus Busch
2014-10-15 16:36:30 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Es kommt manchmal vor, daß Excel ähnlich wie bei einem Kommentar, den Inhalt
einer Zelle anzeigt wenn der Cursor drübersteht. Was ich gemerkt habe: nur
wenn eine Zelle derselben Spalte selektiert ist passiert das.
Das ist dann aber auch nicht bei jeder Zelle in der Spalte so.
das habe ich noch nie festgestellt. Ich kenne nur die Eingabemeldung der
Datengültigkeit.
Post by Hans Alborg
So ein Unsinn! Lieber wäre mir die Anzeige der Summe aus mehreren solcher
Zellen.
Mache einen Rechtsklick auf die Statusleiste und aktiviere die von dir
gewünschten Rechenoperationen, dann kannst du das Ergebnis der
selektierten Zellen in der Statusleiste auslesen.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-10-15 18:10:05 UTC
Permalink
Hi Claus,

"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Es kommt manchmal vor, daß Excel ähnlich wie bei einem Kommentar, den
Inhalt einer Zelle anzeigt wenn der Cursor drübersteht.
das habe ich noch nie festgestellt. Ich kenne nur die Eingabemeldung der
Datengültigkeit.
Vielleicht weil Du mit dem Cursor zu fix bist als Profi ;-)
Das dauert so 1/2 Sekunde.

...Hochladen klappt! Jetzt kann ich es mal zeigen:

[img]Loading Image...[/img]

Wie Du siehst, ist doch eine Spalte daneben angewählt. Der auf der Zelle
"12:20" stehende Cursor ist im Bild nicht sichtbar (Screenshot, muß wohl so
sein?).
Diese und umliegende Zellen enthalten keine Formeln (mehr).

Was mir aber noch auffiel: nur Zellen mit 4 Stellen haben diesen Effekt! Bei
"5:40" tut sich nichts.
Die Zellen sind [h]:mm formatiert und gesperrt, und werden mit VBA gefüllt.
Post by Claus Busch
Mache einen Rechtsklick auf die Statusleiste und aktiviere die von dir
gewünschten Rechenoperationen, dann kannst du das Ergebnis der
selektierten Zellen in der Statusleiste auslesen.

Statusleiste möchte ich nicht, da ich soweit wie möglich Vollbildmodus
laufen lasse. Und es sind nicht immer die gleichen Zellen oder die gleiche
Anzahl.

Wäre nur schick, _diese_ Anzeige dafür einzuspannen :-)

Hans
Hans Alborg
2014-10-15 18:24:16 UTC
Permalink
"Hans Alborg" schrieb...
Post by Hans Alborg
[img]http://up.picr.de/19825851cj.jpg[/img]
das [IMG] vorn und hinten muß weg:

http://up.picr.de/19825851cj.jpg

Sorry.

Hans
Claus Busch
2014-10-15 18:29:49 UTC
Permalink
Hallo Hans,
das habe ich schon bemerkt und es mir angeschaut. Aber obwohl ich am
liebsten mit xl2007 arbeite, kann ich das nicht nachvollziehen. Ich
bekomme es nicht hin.

Aber du könntest dir doch eine Textbox ins Blatt machen und sie auf
unsichtbar stellen. Sobald du mehrere Zellen auswählst in einer
bestimmten Spalte, wird die Textbox sichtbar und zeigt dir die Summe der
selektierten Zellen an.

Hier z.B: für Spalte B:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 Then
With ActiveSheet.TextBox1
If Target.Count > 1 Then
.Visible = True
.Left = Target.Left + 50
.Top = Target.Top + 80
.Value = Format(WorksheetFunction.Sum(Selection), _
Target.NumberFormat)
Else
.Visible = False
End If
End With
End If
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-10-15 18:53:50 UTC
Permalink
"Claus Busch" schrieb...
Aber obwohl ich am liebsten mit xl2007 arbeite, kann ich das nicht
nachvollziehen. Ich bekomme es nicht hin.
Schade. Ich seh das auch nicht überall in meinen Mappen. Aber wer weiß?
Vielleicht sind in meinem Windows noch irgendwelche Ballontips oder sowas
aktiv?
Aber du könntest dir doch eine Textbox ins Blatt machen und sie auf
unsichtbar stellen. Sobald du mehrere Zellen auswählst in einer bestimmten
Spalte, wird die Textbox sichtbar und zeigt dir die Summe der selektierten
Zellen an.
[Code]
Ja muß ich mal gucken wie sich das handhabt. Nämlich wenn ich nur eine Zelle
anklicke starte ich eine Neuberechnung der Zeiten (genau der Zellen, wo mich
die Summe interessiert übrigens).

Ich muß also Markieren einer bzw. mehrerer Zellen meistern (nicht VBA,
ich!!!)...

Einklich wollte ich dem Mouseover- Dings ja nur was Sinnvolles beibringen
:-(

Hans
Hans Alborg
2014-10-15 19:31:27 UTC
Permalink
"Hans Alborg" schrieb...
Post by Hans Alborg
"Claus Busch" schrieb...
[Code]
Ja muß ich mal gucken wie sich das handhabt.
Gut geht das. Da meine Codezeilen im Blatt ein Limit haben mußte ich Deinen
Code in ein Modul verfrachten und ihn mit ActiveCell und
Selection.Cells.Count betreiben. Das klappt soweit gut bis auf die
Formatierung bzw. Berechnung. Da steht nur ":12".
Aber das klärt sich auch noch.
Und Visible.False mach' ich evtl. mit einem Timercode, mal sehen.

Allerdings gibt's zum Jahresende ca. 140 solcher Blätter. Da sollte ich die
Textboxen -hm.- des letzten Monats? dann löschen...

Hans
Claus Busch
2014-10-15 19:36:24 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Formatierung bzw. Berechnung. Da steht nur ":12".
dann ist es auch nicht mehr Target.NimberFormat sondern
ActiveCell.NumberFormat.
Aber bei Zeiten, die im Blatt hh:mm formatiert sind, solltest du doch
besser für die TextBox [h]:mm nehmen, wenn du summierst. Sonst werden
dir ganze Tage nicht angezeigt.
Wenn also die Summe z.B. 26 Stunden ist, bekommst du mit h:mm nur 2
Stunden angezeigt.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-10-15 20:22:30 UTC
Permalink
"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Formatierung bzw. Berechnung. Da steht nur ":12".
dann ist es auch nicht mehr Target.NimberFormat sondern
ActiveCell.NumberFormat.
Ja...
Post by Claus Busch
Aber bei Zeiten, die im Blatt hh:mm formatiert sind, solltest du doch
besser für die TextBox [h]:mm nehmen
Und da liegt der Hase im Pfeffer!
Textbox will nicht mit [h]:mm!
Als ich h:mm eingesetzt hatte, zeigte die Textbox richtig an (bis 23:59
eben).

Über so ein Verhalten bin ich schonmal gestolpert. Da muß wohl die Summe
"[h]:mm" in eine Zelle geschrieben werden und dann als Text in die Textbox
gelockt werden :-(

Was Deine Verbesserung nebenan betrifft: wegen des Zeilenlimits im Blatt
steht der Code ja in einem Modul. Aber im Blatt wurde eh schon Spalte und
Zeilen X-Y ausgesiebt um in den Berechnungscode zu gelangen.
Der hat jetzt nur Deinen Code an den Anfang bekommen:

With ActiveSheet.TextBox1
If Selection.Cells.Count > 1 Then
.Visible = True
.Left = ActiveCell.Left + 50
.Top = ActiveCell.Top + 10
'.Value = Format(WorksheetFunction.Sum(Selection. _
Cells.Value), "h:mm")
.Value = Format(WorksheetFunction.Sum(Selection), _
"h:mm")
'.Value = Format(WorksheetFunction.Sum(Selection), _
"[h]:mm")
'.Value = Format(WorksheetFunction.Sum(Selection), _
ActiveCell.NumberFormat)
Exit Sub
Else
.Value = ""
.Visible = False
End If
End With

Mehr braucht es in diesem Codebereich nicht.
Die Test- Values hab ich mal mitgepostet.

Na wie ich die Textbox überliste wird sich morgen zeigen!

Gute Nacht!

Hans
Claus Busch
2014-10-15 20:49:16 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Und da liegt der Hase im Pfeffer!
Textbox will nicht mit [h]:mm!
probiere es auf einem dieser Wege:
dim Res as double
Res = WorksheetFunction.Sum(Selection) * 24
.Text = Int(Res) & ":" & Format(Int((Res - Int(Res)) * 60), "00")

oder lass dir die Zeit als Dezimalzahl ausgeben:

.Text = Format(WorksheetFunction.Sum(Selection) * 24, "#0.00")


Wenn du 140 gleich aufgebaute Blätter hast und immer die Summenbildung
in der gleichen Spalte machst, könntest du auch mit
Private Sub Workbook_SheetSelectionChange
eine modale UserForm mit einer Textbox oder einem Label für die Anzeige
darauf sichtbar machen und bei Klick in einen anderen Bereich Hide
anwenden, um sie zu verstecken. Dann bräuchtest du nicht auf jedem Blatt
eine Textbox.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-10-16 17:44:18 UTC
Permalink
"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Textbox will nicht mit [h]:mm!
dim Res as double
Res = WorksheetFunction.Sum(Selection) * 24
.Text = Int(Res) & ":" & Format(Int((Res - Int(Res)) * 60), "00")
Das ergibt nur glatte Stunden. Ich hab noch die Variable Remi (as Date) dazu
erfunden:

' ...
Res = WorksheetFunction.Sum(Selection) * 24
Remi = Format(WorksheetFunction.Sum(Selection), "h:mm")
.Text = Int(Res) & ":" & Mid(Str(Remi), 5, 2)
' ...

Das funktioniert jetzt prima, ich bin zufrieden.
Mit dem Selbst-Ausblenden nach kurzer Zeit hat's noch nicht geklappt, da der
Code den ich dazu aus dem Netz kenne mit einer Message- Box läuft:

Sub Msg_box_autom_ausblenden()
' Demo! selbstlöschende Infobox anzeigen
Dim AckTime As Integer, InfoBox As Object
Set InfoBox = CreateObject("WScript.Shell")
AckTime = 5
Select Case InfoBox.PopUp("Vorgang läuft", _
AckTime, "This is your Message Box", 0)
Case 1, -1
GoTo testend
End Select
testend:
End Sub

-aber ich wollte das ja nur mal versucht haben.
Post by Claus Busch
Wenn du 140 gleich aufgebaute Blätter hast und immer die Summenbildung in
der gleichen Spalte machst, könntest du auch...
Nene. Ich sehe höchstens in den letzten x Blättern nach, daher kann die
Textbox bei den früheren (äh, älteren?) Blättern gelöscht werden (Speicher
sparen).
Das aktuelle Blatt wird, wenn voll, nach hinten kopiert und ein leeres
erzeugt. So entstehen die ca. 140 Blätter. Dabei werden Formeln,
Datenbereiche, Gültigkeiten, Shapes und vieles andere gelöscht oder in Text/
Zahlen umgewandelt.
Dieses Schicksal soll die Textbox auch ereilen, aber evtl. ab dem 5.
abgelegten Blatt oder einfach dem (vor?)letzten Monat oder so.
Post by Claus Busch
eine modale UserForm mit einer Textbox oder einem Label
Ich find die "Nur"- Textbox toll. Hat auch Bestand wenn eine andere Userform
aufpoppt (z.B. Druckoptionen).
Das lass ich jetzt so!

Danke mal wieder für Deine Hilfe und die tollen Ideen!

Hans
Claus Busch
2014-10-16 17:49:57 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Das ergibt nur glatte Stunden. Ich hab noch die Variable Remi (as Date) dazu
das kann ich nicht verstehen. Ist doch bei mir getestet.
Schau aber trotzdem mal nach der Lösung mit der UserForm:
https://onedrive.live.com/?cid=9378AAB6121822A3&id=9378AAB6121822A3%21326#cid=9378AAB6121822A3&id=9378AAB6121822A3%21326
Sie ist dort in der Mappe "Hans"
Diese Userform funktioniert auf allen Blättern.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-10-17 13:34:49 UTC
Permalink
"Claus Busch" schrieb...
Post by Hans Alborg
Das ergibt nur glatte Stunden.
Grrr. Asche auf mein Haupt! Hatte "Res" als Integer deklariert. Und meine
Kreation hat's dann wieder nicht über die 24h- Grenze geschafft.
Jetzt funktioniert die Textbox mit Deinem Code richtig.

Bis auf: 10 min plus 0:00 gibt 9 min in der Textbox, erst 10 min + 0:00 +
0:00 ergibt wieder 10 Minuten.

Schade daß Excel sowas macht. Ist aber überschaubar, solange die größeren
Werte stimmen.
https://onedrive.live.com/?cid=[...] in der Mappe "Hans"
Diese Userform funktioniert auf allen Blättern.
Die ist nicht so elegant wie die reine Textbox, und wie ich ahnte wird das
Öffnen anderer Userformen verhindert.
Ich überlege, als Alternative die Textbox jedesmal "frisch" zu erzeugen und
gleich wieder zu löschen. Mal sehn was das für ein Aufwand wird...

Hans

Claus Busch
2014-10-15 20:05:39 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Formatierung bzw. Berechnung. Da steht nur ":12".
die TextBox tut sich etwas schwer bei der Zeit.
Da es ja nur eine Kontrolle sein soll (oder willst du damit rechnen?),
mache einen Zwischenschritt und löse es so:

Res = WorksheetFunction.Sum(Selection) * 24
.Text = Int(Res) & ":" & Format(Int((Res - Int(Res)) * 60), "00")

oder lass dir die Zeit als Dezimalzahl ausgeben:

.Text = Format(WorksheetFunction.Sum(Selection) * 24, "#0.00")


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-10-15 19:33:26 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Ja muß ich mal gucken wie sich das handhabt. Nämlich wenn ich nur eine Zelle
anklicke starte ich eine Neuberechnung der Zeiten (genau der Zellen, wo mich
die Summe interessiert übrigens).
hier eine Verbesserung (wieder für Spalte B)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveSheet.TextBox1
If Selection.Column = 2 And Target.Count > 1 Then
.Visible = True
.Left = Target.Left + 50
.Top = Target.Top + 80
.Value = Format(WorksheetFunction.Sum(Selection), _
Target.NumberFormat)
Else
.Visible = False
End If
End With

End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Lesen Sie weiter auf narkive:
Loading...