Microsoft Excel

Herbers Excel/VBA-Archiv

Bearbeitungsleiste einmal anders... | Herbers Excel-Forum


Betrifft: Bearbeitungsleiste einmal anders... von: doc
Geschrieben am: 11.11.2009 23:15:27

Hallo VBA-Kollegen -

habe hier eine (vermeintlich?) harte Nuss:

Anforderung:
Kalender über mehrere Jahre in einer Spalte unterbringen
Spalte B Zeile 10: 01.10.2009
Spalte B Zeile 11: 02.10.2009
Spalte B Zeile nn: 07.05.2013
usw.
Die Spalten daneben sind belegt.

Problem:
Aus den der Spalte B foldenden Spalten ist beim "tiefen" scrollen zwar ersichtlich,
auf welchem Datum man im Moment steht, jedoch nicht in welchem Jahr
(Monat, Wochentag, Wochentagname und Kalenderwoche sind angegeben, das Jahr
jedoch nur beim Jahreswechsel).

Bisherige Lösung:
Im Worksheet_SelectionChange kann die aktuelle Curserposition ohne Probleme
abgefangen, das Datumsfeld ermittelt und mitsamt dem Jahr in irgendeiner Zelle
im fixierten Fensterbereich angezeigt werden.
Soweit und auch so gut.
Aber:
Wie erwartet wird bei jeder Curserbewegung das SelectionChange-Ereignis
aufgerufen, was das schnelle scrollen deutlich verlangsamt (obwohl der Code
sehr übersichtlich ist).

Grundsätzlich zeigt aber die Bearbeitungsleiste - auch beim schnellsten schrollen - immer
und immer schnell den tatsächlichen Zellwert an.

Daher die Frage:
Gibt es z.B. über die API eine Möglichkeit, den Wert der gerade aktuell gewählten
Zelle ohne das performancelastige Worksheet_SelectionChange Ereignis auszulösen
in eine andere Zelle zu schreiben, um ein unbehindertes und schnellen scrollen
zu ermöglichen?

Bin mal auf die Vorschläge gespannt,
Einstweilen - Vielen Dank -

Gruß
Doc

  

Betrifft: AW: Bearbeitungsleiste einmal anders... von: Adelhorst
Geschrieben am: 12.11.2009 00:24:04

Hallo Doc

Wieso fixierst du nicht die ersten beiden Spalten, dann hast du links immer die Datumsspalte im Blick?

Gruß Adelhorst


  

Betrifft: AW: Bearbeitungsleiste einmal anders... von: Adelhorst
Geschrieben am: 12.11.2009 00:29:52

Hallo Doc

Noch eine Idee:

  • Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Application.StatusBar = "Datum: " & Cells(Target.row, "B")
    End Sub



  • Gruß Adelhorst


      

    Betrifft: AW: Bearbeitungsleiste einmal anders... von: doc
    Geschrieben am: 12.11.2009 01:00:24

    Hallo Adelhorst,

    Danke erst einmal für die Antworten.

    Zur Fixierung der Spalten:
    Löst das Problem nicht, da die Jahreszahl durch das vorgegebene Layout nur am
    Jahresanfang stehen darf.
    Die ersten 30 Tage des Jahres ist das Jahr noch zu sehen, dann verschwindet es
    durch das scrollen.

    Zur Statusleiste
    Dies ist eine guter Lösungsansatz und auf jeden Fall performanter. Ich fürchte nur, das es für
    den User eher ungewohnt ist Sicher kommt: "Können Sie nicht dafür sorgen dass.... - und
    noch in Farbe".


    Gruß
    Doc
    Bezieht sich auf diese Nachr


      

    Betrifft: AW: Bearbeitungsleiste einmal anders... von: Adelhorst
    Geschrieben am: 12.11.2009 01:11:38

    Hallo Doc

    Was für ein Code steht denn in dem Worksheet_SelectionChange-Ereignis im Moment bei dir drinnen, um diese Anzeige zu realisieren?
    Stehen da noch andere Aktivitäten drinnen, oder nur dieses Anzeigeproblem?
    Vielleicht kann man ja den Code noch tunen?


    Gruß Adelhorst


      

    Betrifft: AW: Bearbeitungsleiste einmal anders... von: Jonas Hansen
    Geschrieben am: 12.11.2009 18:24:55

    Hallo Adelhorst,

    Habe verschiedene Varianten geprüft - die hier
    läuft noch am besten:

    Cells(5, 4).Value = Cells(ActiveCell.Row, 5).Value
    (ist auch ganz bewusst der einzige Code - keine If's keine Schleifen etc.)

    Gruß
    Doc


      

    Betrifft: oder einfach per Formel? von: Erich G.
    Geschrieben am: 12.11.2009 09:36:50

    Hi Vorname, ( zu Vornamen und Nicknames schau bitte mal in die Forums-FAQ )

    Zitat:
    NickNames sind nicht erwünscht.
    Diese Frager werden bei der Beantwortung nicht gerade bevorzugt behandelt.
    Nenne Deinen Vornamen, damit man Dich ansprechen kann.
    wenn du schreibst:
    ... "das Datumsfeld ermittelt und mitsamt dem Jahr in irgendeiner Zelle
    im fixierten Fensterbereich angezeigt werden."
    bedeutet das, dass dafür eine leere Spalte zur Ferfügung steht,
    in der jeweils eine Zelle mit den anzuzeigenden Daten gefüllt werden kann?

    Könntest dann nicht in diese Spalte eine Formel schreiben,
    die z. B. an jedem 1. und 15. des Monats die gewünschten Daten permanent ausgibt?

    Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


      

    Betrifft: AW: oder einfach per Formel? von: Jonas Hansen
    Geschrieben am: 12.11.2009 18:39:51

    Hallo Erich -
    Danke für die Hinweise.
    Meine Erfahrungen in diesen (aktuellen) Angelegenheiten lassen mich vorsichtig bleiben.

    Zur Sache:
    Nein - es stehen für den Auswertungskopf knapp 4 Zeilen zur Verfügung die einfach
    fixiert werden können.
    Die Spalten links neben den Daten unter dem fixierten Fenster sind vorgegeben und sollen
    - wunschgemäß - frei bleiben (gegebenenfalls wird hier vom Nutzer noch etwas
    hineingeschrieben).

    Das genze stellt sicher kein "existenzielles" Problem dar, würde dem eher unerfahrenen Nutzer
    dieser Datei aber die Übersicht erleichtern.

    Gruß
    Dr. J.Hansen


      

    Betrifft: Username - Vorname- Infos von: Erich G.
    Geschrieben am: 12.11.2009 20:02:48

    Hi Jonas,
    wenn du nur bei deinem Usernamen "doc" geblieben wärest und deinen Beitrag nur mit "Gruß Jonas"
    beendet hättest, wäre das im Sinne der Forumsregeln schon völlig ok gewesen.

    So hast du jetzt vielleicht mehr als nötig verraten. Vielleicht aber auch nicht... ;-)

    Grüße von Erich aus Kamp-Lintfort


    Beiträge aus den Excel-Beispielen zum Thema "Bearbeitungsleiste einmal anders..."