Office: Benötige Hilfe bei VBA unter Excel 2010

Helfe beim Thema Benötige Hilfe bei VBA unter Excel 2010 in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich habe ein selbst erstelltes Excel-Sheet und benötige Hilfe bei der Umsetzung mit VBA. Ich bin VBA-Neuling und relativ unerfahren.... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von beefjerckey, 11. April 2012.

  1. beefjerckey Erfahrener User

    Benötige Hilfe bei VBA unter Excel 2010


    Hallo Forum,

    ich habe ein selbst erstelltes Excel-Sheet und benötige Hilfe bei der Umsetzung mit VBA. Ich bin VBA-Neuling und relativ unerfahren.

    Folgendes enthält die Tabelle:
    Spalte A: Kalenderwochen in verbundenen Zellen
    Spalte B: Wochentage
    Spalte C: Datum (TT.MM.JJJJ)
    Spalten D bis I teilweise verbunde Zellen mit Textinhalten oder auch leer
    Zeilen mit Sams- und Sonntagen per bedingter Formatierung grau hinterlegt.
    Vier Buttons mit Heute, Datum, KW und Anfang. Diese funktionieren.

    Was ich noch möchte:
    Klicke ich z.B. auf den Button "Heute" springt der Cursor auf das aktuelle Datum. Was fehlt ist, dass die aktuelle Zeile eingefärbt wird (Lesbarkeit) und nach dem Verlassen der Zeile wieder auf die alte Hintergrundfarbe gesetzt wird. Sinngemäß das Gleiche bei "KW" und "Datum". Das sollte doch per VBA-Script realisierbar sein, oder?

    Danke!

    Benötige Hilfe bei VBA unter Excel 2010 Excel1.jpg
     
    Zuletzt bearbeitet: 11. April 2012
    beefjerckey, 11. April 2012
    #1
  2. fette Elfe Erfahrener User
    Hallo beefjerckey,

    umsetzen lässt sich das, aber nur in Excel, nicht mittels Bildbearbeitungsprogramm.
    ;O)
    Lade mal Deine Datei mit den funktionierenden Buttons hier hoch, dann sehen wir weiter.
     
    fette Elfe, 11. April 2012
    #2
  3. beefjerckey Erfahrener User
    beefjerckey, 12. April 2012
    #3
  4. fette Elfe Erfahrener User

    Benötige Hilfe bei VBA unter Excel 2010

    Hallo beefjerckey,

    nachdem ich jetzt Deinen Tabellenaufbau in natura gesehen habe, streiche ich die Segel, ziehe alles zurück und bestreite jemals irgend etwas gesagt zu haben.
    ;O)

    1. Problem: Du färbst die Wochenendzeilen mittels bedingter Formatierung. Die setzt sich immer gegen "normales" Färben durch.
    2. Problem: Du arbeitest zeilenübergreifend mit verbundenen Zellen, teilweise sogar KW-übergreifend. Das Misslingen der Zellfärbung siehst Du ja bereits bei den Wochenendzeilen, wo die verbundenen Zellen nicht mitgefärbt werden.

    Ich sehe bei dem jetzigen Aufbau keine Chance.
    Sry.
     
    fette Elfe, 12. April 2012
    #4
  5. miriki Erfahrener User
    Also mal so grundsätzlich: Ja, das ist möglich. Gleich dazu: Nein, es ist nicht sinnvoll.

    Was dazu nötig ist: Bei jeder Cursor-Bewegung muß eine (langsam, weil BASIC-Interpreter) Routine durchlaufen werden, die
    a) diverseste Prüfungen macht, ob überhaupt eine Aktion durchgeführt werden soll.
    b) die Farbe der "alten" Position restauriert.
    c) die aktuelle Position und die dortige Farbe speichert.
    d) die Farbe der aktuellen Position neu setzt.

    Und dabei kann etliches schief gehen... Punkte, die mir auf Anhieb einfallen:
    a) Wenn die "alte" oder die "neue" Position nicht eine einzelne Zelle, sondern ein größerer Bereich ist, sollte wohl besser nichts eingefärbt werden.
    b) Wenn die Hintergrundfarbe der aktuellen Zelle geändert, danach woanders hin gesprungen wird, dann restauriert die Routine die vorherige Farbe - Änderung für die Katz.
    c) [ to be continued ]

    Aber mal so als Ansatz, wie man das machen könnte, hab ich Dir mal was im Anhang gebastelt. Im "SelectionChange" des Arbeitsblatts wird nur die Routine aufgerufen, die sich im ausgelagerten Modul befindet. Das WorkbookOpen bastelt nur eine Tabelle mit den 56 Farben auf das Blatt, was aber nicht zum eigentlichen Kram dazugehört.

    Wenn ich jetzt aber noch Achim's Kommentar lese, insbesondere was bedingte Formatierung und verbundene Zellen betrifft, dann seh ich schwarz, daß Du das irgendwie für Deine Belange adaptiert bekommst.

    Gruß, Michael

    PS: Das Ding ist jetzt x2003, sollte aber auch unter x2010 laufen.
     
    miriki, 13. April 2012
    #5
  6. beefjerckey Erfahrener User
    Okay, dann geb ich damit auf.
    Aber noch eine Idee:
    Ist es möglich eine Art Balken/Pfeil/Form "über" die Zeile mit den heutigen Datum zu legen? Sollte halt relativ transparent sein, damit man den Inhalt noch lesen kann.
     
    beefjerckey, 17. April 2012
    #6
  7. miriki Erfahrener User
    Das sollte mit der bedingten Formatiuerung möglich sein. So in der Art:
    Formel: =(d4=heute())
    Wobei d4 dann die Zelle mit dem Datum ist. Du kannst in dem Beispiel, bevor Du ins Menü für die bedingte Formatierung gehst, auch einen ganzen Bereich von d4 ausgehend markieren. Die Formel in der Bedingung wird dann für alle Zellen entsprechend angepaßt.

    Gruß, Michael
     
    miriki, 18. April 2012
    #7
  8. beefjerckey Erfahrener User

    Benötige Hilfe bei VBA unter Excel 2010

    Hallo miriki,

    das mit der bedingten Formatierung klappt hier nicht.
    Gibt es unter Excel 2010 denn eine Möglichkeit einen Balken/Form in Abhängigkeit des Datums ÜBER die Zeile zu legen?

    Danke schon mal.
     
    beefjerckey, 18. April 2012
    #8
  9. miriki Erfahrener User
    Naja, diese Aussage ist etwas... ähm... "was" klappt denn nicht?

    Also "über" im Sinne von "weiter oben"? Na, dann eben auch bedingte Formatierung...

    Gruß, Michael
     
    miriki, 18. April 2012
    #9
  10. beefjerckey Erfahrener User
    Ja, sorry.
    Dadurch dass ich schon mehrere Formatierungen und verbundene Zellen habe, funktioniert das eben nicht.
    Mit "über" meine ich nicht weiteroben, sondern im Vordergrund. Ist etwas schwer zu beschreiben. Es gibt ja die Möglichkeit über "Einfügen" - "Formen" z.Bsp. einen Pfeil oder Ähnliches im Vordergrund über die Zellen zu legen. Geht sowas auch mit VBA, in Abhängigkeit des Datums in Spalte "C"?
     
    beefjerckey, 18. April 2012
    #10
  11. miriki Erfahrener User
    Ok, da läßt sich was in VBA machen, ist aber zumindest in Teilen auch wieder problematisch, u.a. was das "Ausbremsen" betrifft. Aber grundsätzlich:

    Beim Aktivieren des Worksheets kann der Marker gesetzt werden, wenn eine Zelle gefunden wird, die das heutige Datum enthält. Dann läuft das Ding wenigstens nicht bei jeder Cursorbewegung an...

    Code:
    Option ExplicitPrivate Function FindeHeute(rng As Range) As Range
        Dim r As Range
        Dim cell As Range
        For Each cell In rng
            If Int(cell.Value) = Int(Now()) Then
                Set r = cell
            End If
        Next cell
        Set FindeHeute = r
    End Function
    '----------------------------------------------------------------------
    Private Sub Worksheet_Activate()
        Dim s1 As Worksheet
        Dim r1 As Range
        Dim g1 As Shape
        Dim y1 As Long
        Dim x1 As Long
        Set s1 = Worksheets("Tabelle1")
        Set g1 = s1.Shapes("AutoForm 1")
        Set r1 = FindeHeute(s1.Range("b6:o6"))
        If (Not r1 Is Nothing) Then
            y1 = r1.Top
            x1 = r1.Left
            g1.Top = y1
            g1.Left = x1
            g1.Visible = True
          Else
            g1.Visible = False
        End If
    End Sub
    Gruß, Michael
     
  12. beefjerckey Erfahrener User
    Danke für den Code,
    leider passiert bei mir rein gar nichts.
    Auch keine Meldung.

    Habe den fehlenden Zeilenumbruch nach Option Explicit eingefügt und die Range (B86:B380) angepasst. Passieren tut aber nichts.

    Wo muss denn der Code hin? Hab' den unter "Tabelle1" stehen. Passt das?

    Danke Axel

    Den Anhang Übersicht_Test.xlsm betrachten
     
    Zuletzt bearbeitet: 18. April 2012
    beefjerckey, 18. April 2012
    #12
  13. miriki Erfahrener User

    Benötige Hilfe bei VBA unter Excel 2010

    no news are good news... ;-)

    Wenn Du den Anhang öffnest, dann sollte was passieren. Und zwar:

    Auf dem einen Blatt ist eine Reihe mit Datumsen, Datümern, Dat... achwasweißichdenn! Das andere Blatt ist leer. Das dient nur dazu, damit ein Wechsel zu dem einen Blatt möglich ist.

    Den roten Pfeil kannst Du ja mal irgendwo auf dem Blatt wild verschieben. Wechsel dann auf das andere, leere Blatt und wieder zurück. Der Pfeil sollte dann auf dem passenden Datum landen.

    Stell im Source einen anderen Bereich ein, fülle den Bereich mit anderen Datumswerten oder stell Dein Systemdatum im Rechner um - Hauptsache, das Datum taucht nicht mehr auf. Wechsel dann auf das leere Blatt und wieder zurück: Der Pfeil sollte verschwunden sein.

    Das paßt, wenn einige kleine Anpassungen im Source erfolgt sind. Das betrifft die "set ..." Zeilen.

    Außerdem müßte, der Vollständigkeit halber, auch noch ein weiterer Fehler abgefangen werden:

    Code:
        Set g1 = s1.Shapes("AutoForm 1")
    >   If (Not g1 Is Nothing) Then
            Set r1 = FindeHeute(s1.Range("b6:o6"))
            [...]
            End If
    >   End If
    Nur, falls jemand den Pfeil löscht oder so...

    Gruß, Michael
     
  14. beefjerckey Erfahrener User
    Hi Michael,
    cool, das funktioniert.
    Habe die Range angepasst, geht auch.
    Mit so wenig Code. Bin begeistert.
    Was ich nicht wirklich verstehe, ist wo(wie) die Form des Pfeiles definiert wird.
    Ich z.Bsp. benötige den Pfeil nicht von oben nach unten zeigend, sondern von links nach rechts. Wie definiere ich das? Und dann möchte ich den Pfeil in Länge, Füllung und Transparenz ändern. Gibt es hierzu Informationen die ich mir mal anschauen kann?

    Besten Dank.

    Axel
     
    beefjerckey, 19. April 2012
    #14
  15. beefjerckey Erfahrener User
    Hmm,
    habe jetzt den Code in "mein" Sheet kopiert.
    Leider bekomme ich da diesen Laufzeitfehler:

    Benötige Hilfe bei VBA unter Excel 2010 Fehler.JPG

    Im Code wird dies gelb eingefärbt:

    Set g1 = s1.Shapes("AutoForm 1")

    Was passt da denn nicht?

    Axel
     
    beefjerckey, 19. April 2012
    #15
Thema:

Benötige Hilfe bei VBA unter Excel 2010

Die Seite wird geladen...
  1. Benötige Hilfe bei VBA unter Excel 2010 - Similar Threads - Benötige Hilfe VBA

  2. Benötige bitte dringend Hilfe

    in Microsoft Excel Hilfe
    Benötige bitte dringend Hilfe: Hallo zusammen, ich würde gerne über eine Formel den Inhalt aus A1 von Blatt 1 in A1 von Blatt 2 anzeigen lassen, wenn A1 in Blatt 1 einen bestimmten Text beinhaltet. Danke euch schon mal für...
  3. benötige Hilfe bei einer Formelerstellung

    in Microsoft Excel Hilfe
    benötige Hilfe bei einer Formelerstellung: Hallo Zusammen, ich hoffe mir kann hier weitergeholfen werden. Die Sache sah eigentlich auch nicht so kompliziert aus, aber anscheinend ist das für mich als Excel-Laie doch eine Nummer zu viel....
  4. benötige Hilfe bei Problem Feiertag und bestimmte Menge auf anderen Tag verschieben

    in Microsoft Excel Hilfe
    benötige Hilfe bei Problem Feiertag und bestimmte Menge auf anderen Tag verschieben: Hallo liebe Gemeinde, bei folgenden 2 Problemstellungen komme ich nicht zurecht. angenommen: 1. ich muss jeden Tag eine Menge von 1 Stück erbringen, außer an einem Feiertag, dann soll dieses...
  5. Benötige Hilfe zu vba

    in Microsoft Excel Hilfe
    Benötige Hilfe zu vba: Hallo zusammen, ich habe eine Herausforderung, die ich mit meinen vba-Kenntnissen nicht lösen kann. Die Problematik stelle ich per Screenshot da. Ich bedanke mich schon im Vorfeld bei Euch für...
  6. Benötige Hilfe bei Formeln über 2 Tabellen

    in Microsoft Excel Hilfe
    Benötige Hilfe bei Formeln über 2 Tabellen: Guten Tag zusammen, ich darf etwas im Excel zaubern, bei dem ich leider keinen Schimmer davon habe. Beigefügt mein Excelbeispiel mit Kommentaren was alles in der jeweiligen Zelle zusammengezählt...
  7. Benötige Hilfe zu Formel

    in Microsoft Excel Hilfe
    Benötige Hilfe zu Formel: Wie in der Beispiel Tabelle hier benötige ich folgendes: [ATTACH] Wenn kein x in der Spalte gefunden werden sollte, über der das heutige datum steht, soll nichts passieren. Vielen Dank im Voraus...
  8. Benötige hilfe bei formel

    in Microsoft Excel Hilfe
    Benötige hilfe bei formel: *:)*Seit gegrüßt ich bräuchte unbedingt hilfe bei einer kleinen sache, und zwar geht es darum die zelle F1 zu sperren wenn in zelle A1-E1 sich nichts befindet. Erst wenn in zelle A1-E1 sich ein...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden