Office: (Office 2013) VBA Autoform einfärben

Helfe beim Thema VBA Autoform einfärben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich brauche dringend eure Hilfe. Habe schon überall nach einer Lösung gesucht, aber komme nicht zum richtigen Ergebnis. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stseca, 9. August 2018.

  1. stseca hat Ahnung

    VBA Autoform einfärben


    Hallo zusammen,

    ich brauche dringend eure Hilfe. Habe schon überall nach einer Lösung gesucht, aber komme nicht zum richtigen Ergebnis.

    Ich habe zwei verschiedene Arbeitsblätter in meiner Exceldatei erstellt.
    Auf dem einen Blatt "Tabelle4" sind alle Werte zusammengeführt.
    Auf dem anderen Blatt "Tabelle8" sind meine Autoformen wiederzufinden.

    Meine Autoform "rechteck1" soll die Farbe unter drei verschiedenen Bedingungen ändern.

    - Wenn der Wert (Zelle C11) auf Blatt "Tabelle4" < 31 ist, soll die Form auf Blatt "Tabelle8" rot werden.
    - Wenn der Wert (Zelle C11) auf Blatt "Tabelle4" > 30 und < 80 ist, soll die Form auf Blatt "Tabelle8" orange werden.
    - Wenn der Wert (Zelle C11) auf Blatt "Tabelle4" >79 ist, soll die Form auf Blatt "Tabelle8" grün werden.

    Ich habe bisher folgenden Code verwendet:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Sub FarbeRechteck()

    If Tabelle4.Range("C11") > 79 Then
    With Tabelle8.Shapes("Rechteck1").Fill
    .ForeColor.RGB = RGB(0, 179, 0)
    End With
    End If
    If Tabelle4.Range("C11") < 31 Then
    With Tabelle8.Shapes("Rechteck1").Fill
    .ForeColor.RGB = RGB(238, 0, 0)
    End With
    End If
    If Tabelle4.Range("C11") > 30 And Tabelle4.Range("C11") < 80 Then
    With Tabelle8.Shapes("Rechteck1").Fill
    .ForeColor.RGB = RGB(255, 140, 0)
    End With
    End If
    End Sub

    Der Code funktioniert aber die Farben ändern sich nicht automatisch, sondern ich muss erst immer wieder den Code anzeigen und ausführen lassen. Ich möchte aber, dass sich die Autoform automatisch ändert, sobald sich der Wert verändert.

    Ich muss dazu sagen, dass ich ein echter Anfänger in Sachen VBA bin..


    Ich hoffe, ihr könnt mir helfen :)

    Betse Grüße
    stseca
     
    stseca, 9. August 2018
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    meinst du das vielleicht so:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Cells(1).Address(False, False) = "C11" Then
            If Target.Cells(1).Value > 79 Then
                Tabelle8.Shapes("Rechteck1").Fill.ForeColor.RGB = RGB(0, 179, 0)
            ElseIf Target.Cells(1).Value > 30 And Target.Cells(1).Value < 80 Then
                Tabelle8.Shapes("Rechteck1").Fill.ForeColor.RGB = RGB(238, 0, 0)
            ElseIf Target.Cells(1).Value < 31 Then
                Tabelle8.Shapes("Rechteck1").Fill.ForeColor.RGB = RGB(255, 140, 0)
            End If
        End If
    End Sub
    
    

    Der Code befindet sich im Codemodul von Tabelle4

    Bis später,
    Karin
     
    Beverly, 9. August 2018
    #2
  3. stseca hat Ahnung
    Hey Karin,
    vielen Dank für deine schnelle Antwort. Es hat geklappt:) Jetzt habe ich allerdings einmal alle alten Codes rausgelöscht und in Tabelle 4 den neuen Code geschrieben.
    Jetzt erscheint die Fehlermeldung "Objekt erforderlich". Was bedeutet dies?

    Beste Grüße
    stseca
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
  4. Beverly
    Beverly Erfahrener User

    VBA Autoform einfärben

    Hi,

    an weclher Stelle im Code erschjeint die Fehlermeldung? Gibt es vielleicht Tabelle8 nicht oder heißt das Rechteck nicht "Rechteck1"?
    Falls keins davon zutrifft solltest du mal deine Mappe hochladen.

    Bis später,
    Karin
     
    Beverly, 10. August 2018
    #4
  5. stseca hat Ahnung
    Es hat geklappt :) Habe noch einmal alles gelöscht und neu eingefügt. Juhu vielen lieben Dank !! :-)

    Jetzt besteht nur noch ein Problem: Wenn ich den Wert in der Zelle "C11" manuell ändere, dann verändert sich die Farbe der Autoform wie gewünscht automatisch.
    Der Wert in der Zelle "C11" entsteht aber durch eine Formel.
    Und so funktioniert die automatische Farbänderung der Autoform leider nicht. Irgendwie wird der Wert nicht erkannt...Was muss ich tun ?:/

    Grüße
    stseca
     
  6. Beverly
    Beverly Erfahrener User

    Darauf hättest du gleich in deinem Eröffnungsbeitrag hinweisen sollen...

    Auf welche Zellen bezieht sich deine Formel? Diese Zellen musst du dann überwachen anstelle von C11.

    Bis später,
    Karin
     
    Beverly, 10. August 2018
    #6
  7. stseca hat Ahnung
    Hey,

    das tut mir leid. Ich habe eine lange Tabelle auf einem anderen Arbeitsblatt "Tabelle3". Die dort aufgeführten Punkte werden nach einer Bedingung überprüft. Wenn die Bedingung zutrifft, kommt in die Spalte daneben ein "x".
    Auf dem Arbeitsblatt "Tabelle4" werden diese "x" gezählt und in Abhänngigkeit von der Gesamtanzahl an Zeilen berechnet und dann in der Zeile C11 wiedergegeben.
    Ich will quasi angeben, dass wenn mind. 80% mit einem x versehen sind, dann soll die Autoform grün sein, wenn unter 30% dann rot, usw.

    Grüße
    stseca
     
  8. stseca hat Ahnung

    VBA Autoform einfärben

    Datei

    Ich habe eine Beispieldatei mit meinem Problem einmal beigefügt :)
     
  9. Beverly
    Beverly Erfahrener User
    Folgenden Code ins Codemodul der Tabelle3:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Columns(2)) Is Nothing Then
            If Worksheets("Tabelle4").Range("C11").Value > 79 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(0, 179, 0)
            ElseIf Target.Cells(1).Value > 30 And Target.Cells(1).Value < 80 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(238, 0, 0)
            ElseIf Target.Cells(1).Value < 31 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(255, 140, 0)
            End If
        End If
    End Sub
    
    
    Es wird also Spalte B der "Tabelle3" überwacht, da du dort die "x" einträgst oder löschst.


    Wenn du ein Tabellenblatt mit dem Namen ansprechen willst der unten auf dem Reiter steht (bzw. im VBA-Editor in Klammern), dann musst du Worksheets("TabellenName") verwenden. Deine Verwendung von Tabelle8.Shapes(....) spricht das Tabellenblatt mit seinem internen oder Code-Namen an - das ist der Name der im VBA-Editor vor dem Namen in Klammern steht. Beides ist möglich, aber mann muss es richtig einsetzen.
    Außerdem musst du darauf achten, wie die genaue Bezeichnung der eingefügten Form ist: in deinem Beispiel ist es "Rechteck 1" und nicht "Rechteck1" - achte auf das Leerzeichen vor der 1.

    Bis später,
    Karin
     
    Beverly, 10. August 2018
    #9
  10. stseca hat Ahnung
    Hallo,

    ich habe noch einmal eine zweite Datei reingestellt.

    Mein Problem ist nämlich, dass diese Datei nur ein Ausschnitt war. Die Tabelle ist noch deutlich größer. Die neue Datei veranschaulicht das Problem, dass der Code sich auf unterschiedliche Abschnitte beziehen soll. Sprich in der Spalte sind noch deutlich mehr Fakten.
    Das Ziel ist, dass ich mehrere Codes erstelle und jeder sich auf einen Abschnitt der Spalte bezieht.


    Grüße
    stseca
     
  11. stseca hat Ahnung
    Das ist die neue Datei. Sorry
     
  12. Beverly
    Beverly Erfahrener User
    Hi,

    das ist doch dieselbe Datei nur als xlsx-Version. und es gibt nur einen Bereich in den etwas eignetragen wird und nicht mehrere.

    Außerdem sollte man schon eine xlsm-Datei mit dem entsprechenden bereits vorhandenen Code hochladen, wenn man ein VBA-Problem erörtert.

    Bis später,
    Karin
     
    Beverly, 10. August 2018
    #12
  13. stseca hat Ahnung

    VBA Autoform einfärben

    Hallo,

    du hast Recht. Das war nicht verständlich.

    Jetzt noch einmal eine vernünftige Datei, aus dessen Code hoffentlich mein Problem hervorgeht.
    Ich will einen Code erstellen, der einmal für Affe-Löwe die Bedingung prüft, dann für A-D die Bedingung prüft und für 1-5 die Bedingung prüft.


    Liebe Grüße
    stseca
     
  14. Beverly
    Beverly Erfahrener User
    So sollte der Code richtig sein:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Columns(2)) Is Nothing Then
            If Worksheets("Tabelle4").Range("C11").Value > 79 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(0, 179, 0)
            ElseIf Worksheets("Tabelle4").Range("C11").Value > 30 And Worksheets("Tabelle4").Range("C11").Value < 80 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(238, 0, 0)
            ElseIf Worksheets("Tabelle4").Range("C11").Value < 31 Then
                Worksheets("Tabelle8").Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(255, 140, 0)
            End If
            If Worksheets("Tabelle4").Range("D11").Value > 79 Then
                Worksheets("Tabelle8").Shapes("Rechteck 2").Fill.ForeColor.RGB = RGB(0, 179, 0)
            ElseIf Worksheets("Tabelle4").Range("D11").Value > 30 And Worksheets("Tabelle4").Range("D11").Value < 80 Then
                Worksheets("Tabelle8").Shapes("Rechteck 2").Fill.ForeColor.RGB = RGB(238, 0, 0)
            ElseIf Worksheets("Tabelle4").Range("D11").Value < 31 Then
                Worksheets("Tabelle8").Shapes("Rechteck 2").Fill.ForeColor.RGB = RGB(255, 140, 0)
            End If
            If Worksheets("Tabelle4").Range("E11").Value > 79 Then
                Worksheets("Tabelle8").Shapes("Rechteck 3").Fill.ForeColor.RGB = RGB(0, 179, 0)
            ElseIf Worksheets("Tabelle4").Range("E11").Value > 30 And Worksheets("Tabelle4").Range("E11").Value < 80 Then
                Worksheets("Tabelle8").Shapes("Rechteck 3").Fill.ForeColor.RGB = RGB(238, 0, 0)
            ElseIf Worksheets("Tabelle4").Range("E11").Value < 31 Then
                Worksheets("Tabelle8").Shapes("Rechteck 3").Fill.ForeColor.RGB = RGB(255, 140, 0)
            End If
        End If
    End Sub
    
    
    Bis später,
    Karin
     
    Beverly, 10. August 2018
    #14
  15. stseca hat Ahnung
    Es hat geklappt! Danke! Tausend Dank Karin:))

    Grüße
    stseca
     
Thema:

VBA Autoform einfärben

Die Seite wird geladen...
  1. VBA Autoform einfärben - Similar Threads - VBA Autoform einfärben

  2. VBA Summe bilden

    in Microsoft Excel Hilfe
    VBA Summe bilden: Hallo zusammen, in meiner per VBA generierten Tabelle mit unterschiedlicher Anzahl Zeilen möchte ich in Spalte D die Summe bilden, als von D1 bis Dx. Meine Formel bei 12 Zeilen:...
  3. [VBA] CSV einlesen, mit zeilennummer

    in Microsoft Excel Hilfe
    [VBA] CSV einlesen, mit zeilennummer: Hallo zusammen, ich versuche eine CSV einzulesen, das klappt recht gut. Jedoch wrüde ich gerne ein Zeilennummer (ID, Messpunkt) vor meine Daten schreiben lassen. doch wie mache ich das ohne...
  4. Per VBA Zeilen einfügen und danach in diese Texte kopieren

    in Microsoft Excel Hilfe
    Per VBA Zeilen einfügen und danach in diese Texte kopieren: Hallo zusammen, ich möchte im 1. Schritt via VBA-Code eine bestimmte, variable Anzahl Zeilen (der Wert wird immer im Reiter "Data" in der Zelle S32 ermittelt) in einem anderen Reiter namens...
  5. VBA Code für Zeilen ausblenden einblenden mit JA/Nein

    in Microsoft Excel Hilfe
    VBA Code für Zeilen ausblenden einblenden mit JA/Nein: Hallo, habe eine Exceltabelle, bei der ich bei einer Zelle eine Ja/Nein abfrage mache, wenn in der Zelle Nein steht, dann soll ein bestimmter Zeilenbereich, den ich definieren möchte, ausgeblendet...
  6. Excel Range als Bild in Word einfügen

    in Microsoft Excel Hilfe
    Excel Range als Bild in Word einfügen: Hallo, ich möchte gerne per Makro in einem Wordtemplate Mustergrafiken, die als Platzhalter dienen durch Bereiche in meiner Exceldatei ersetzen, die ich als Bild einfüge. Per Hand mache ich das...
  7. VBA Verlust der Muttersprache (Mid)

    in Microsoft Access Hilfe
    VBA Verlust der Muttersprache (Mid): Hallo, If Len(Me.TxMat) = 10 And IsNumeric(Me.TxMat) Then Me.TxMat = Left(Me.TxMat, 4) & "." & mID(Me.TxMat, 5, 2) & "." & Right(Me.TxMat, 4) End IfDieser Codeschnipsel soll aus 1234567890 in...
  8. Autoform Recheck in Excel mit bestimmten Farben einfärben

    in Microsoft Excel Hilfe
    Autoform Recheck in Excel mit bestimmten Farben einfärben: Hallo zusammen, ich habe ich Excel eine Autoform "Rechteck 1". Dieses möchte ich automatisch einfärben, wenn in der Zelle A5 ein bestimmter Wert steht. In diesem Fall steht da "F7" drin. Das...
  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