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; Hey, eine andere Frage habe ich auch noch. Kann man den Code zu schreiben, dass bestimmte Shapes weiß bleiben. Immer der jeweils erste soll eig weiß... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stseca, 9. August 2018.

  1. stseca hat Ahnung

    VBA Autoform einfärben


    Hey,

    eine andere Frage habe ich auch noch. Kann man den Code zu schreiben, dass bestimmte Shapes weiß bleiben. Immer der jeweils erste soll eig weiß bleiben und die Werte beziehen sich erst auf die jeweils darauffolgenden Shapes.
    Sprich: Der Shape, der bei dir "C11_" heißt, soll weiß bleiben (kein Bezug zu den Daten) und der Shape "D11_" ist dann bei mir erst "C11_".
    Dadrunter dann genau das gleiche immer.

    Viele Grüße
    stseca
     
  2. Beverly
    Beverly Erfahrener User
    Hi,

    was meinst du mit "der Reihe nach ändere"? Man kann zuerst in Spalte 13 ein x eintragen, dann wird zuerst im Tabellenblatt mit der Überschrift aus Spalte 13 etwas geändert und wenn anschließend in Spalte 11 ein x eingetragen wird, ändern sich die Farben im Tabellenblatt mit der Überschrift aus Spalte 11 usw. Dasselbe trifft auch zu, wenn zuerst in Zeile 48 ein x und dann in Zeile 28 ein X eignetragen wird. Der Code ist völlig unabhängig von der Reihenfolge.

    Die Spaltennummer darf natürlich nicht mehrfach vorkomen - schau einfach in welcher Spalte sich deine Überschriften zu welchem Tabellenblatt befindet.
     
    Beverly, 24. August 2018
    #32
  3. stseca hat Ahnung
    Hey,
    wenn ich zum Beispiel in Zeile K10 ein x setze, dann wird das entsprechende shape grün. Wenn ich dann in Zeile K12 bis K15 ein x setze passiert mit dem zugehörigen Shape nichts (müsste gelb werden). Erst wenn ich in Zeile K21 wieder ein x setze, färben sich das zugehörige und das vorherige Shape.
    Kannst du nachvollziehen was ich meine?

    Grüße
    stseca
     
  4. Beverly
    Beverly Erfahrener User

    VBA Autoform einfärben

    Hi,

    wenn ich in K10 ein x setze erhalte ich folgende Farbabfolge: Grün -> Rot -> Gelb -> Grün (100% -> 0% -> 33,33% -> 100% in den Zellen C10, D10, F10, G10)
    danach in K12 ein x ergibt folgende Farbabfolge: Grün -> Rot -> Gelb -> Grün (100% -> 16,67% -> 33,33% -> 100% in den Zellen C10, D10, F10, G10)
    danach in K13 ein x ergibt folgende Farbabfolge: Grün -> Gelb -> Gelb -> Grün (100% -> 33,33% ->33,33% -> 100% in den Zellen C10, D10, F10, G10)
    danach in K14 ein x ergibt folgened Farbabfolge: Grün -> Gelb -> Gelb -> Grün (100% -> 50% ->33,33% -> 100% in den Zellen C10, D10, F10, G10)
    danach in K15 ein x ergibt folgende Farbabfolge: Grün -> Gelb -> Gelb -> Grün (100% -> 66,67% ->33,33% -> 100% in den Zellen C10, D10, F10, G10)

    Das entspricht genau den vorgegebenen %-Angaben.


    Aber mal davon abgesehen solltest du nicht nur die Eingabe von X prüfen sondern auch das Löschen einer Eingabe - davon war zwar bisher nicht die Rede, ist m.E. aber richtiger so, weil dann beim Löschen von Eingaben der Code ebenfalls ausgeführt und Farben zurückgesetzt werden:

    Code:
        If blnAusfuehren Then
            With Worksheets(strTabelle)
                For Each shaShape In .Shapes
                    If shaShape.AutoShapeType = 51 Or shaShape.AutoShapeType = 52 Then
                        strZelle = Application.Substitute(shaShape.Name, "_", "")
                        If .Range(strZelle).Value > 79 Then
                            shaShape.Fill.ForeColor.RGB = RGB(0, 179, 0)
                        ElseIf .Range(strZelle).Value > 30 And Range(strZelle).Value < 80 Then
                            shaShape.Fill.ForeColor.RGB = RGB(255, 255, 0)
                        ElseIf .Range(strZelle).Value < 31 Then
                            shaShape.Fill.ForeColor.RGB = RGB(238, 0, 0)
                        End If
                    End If
                Next shaShape
            End With
        End If
    
    
    Bis später,
    Karin
     
    Beverly, 24. August 2018
    #34
  5. stseca hat Ahnung
    Hey,

    ich bin mir nicht ganz sicher, aber vielleicht war genau das das Problem. Wie muss ich diesen neuen Code in meinen alten einfügen, damit dies funktioniert? Habe ihn so eingesetzt, aber das klappt dann noch nicht.



    Code:
            If UCase(Target.Cells(1)) = "X" Then
                strTabelle = "Prozessverantwortung"
                blnAusfuehren = True
            End If
        ElseIf Not Intersect(Target, Columns(12)) Is Nothing Then
            If UCase(Target.Cells(1)) = "X" Then
                strTabelle = "ChancenRisiken"
                blnAusfuehren = True
            End If
        End If
        If blnAusfuehren Then
            With Worksheets(strTabelle)
                For Each shaShape In .Shapes
                    If shaShape.AutoShapeType = 51 Or shaShape.AutoShapeType = 52 Then
                        strZelle = Application.Substitute(shaShape.Name, "_", "")
                        If .Range(strZelle).Value > 79 Then
                            shaShape.Fill.ForeColor.RGB = RGB(0, 179, 0)
                        ElseIf .Range(strZelle).Value > 30 And Range(strZelle).Value < 80 Then
                            shaShape.Fill.ForeColor.RGB = RGB(255, 255, 0)
                        ElseIf .Range(strZelle).Value < 31 Then
                            shaShape.Fill.ForeColor.RGB = RGB(238, 0, 0)
                        End If
                    End If
                Next shaShape
            End With
        End If
          If blnAusfuehren Then
            With Worksheets(strTabelle)
                For Each shaShape In .Shapes
                    If shaShape.AutoShapeType = 51 Or shaShape.AutoShapeType = 52 Then
                        strZelle = Application.Substitute(shaShape.Name, "_", "")
                        If .Range(strZelle).Value > 79 Then
                            shaShape.Fill.ForeColor.RGB = RGB(0, 179, 0)
                        ElseIf .Range(strZelle).Value > 30 And Range(strZelle).Value < 80 Then
                            shaShape.Fill.ForeColor.RGB = RGB(255, 255, 0)
                        ElseIf .Range(strZelle).Value < 31 Then
                            shaShape.Fill.ForeColor.RGB = RGB(238, 0, 0)
                        End If
                    End If
                Next shaShape
            End With
        End If
    End Sub

    Grüße
    stseca
     
  6. Beverly
    Beverly Erfahrener User
    Hi,

    oh sorry, da habe ich den falschen Code gepostet - also dieser ist der richtige

    Code:
            If UCase(Target.Cells(1)) = "X" [COLOR=#ff0000][B]Or Target.Cells(1) = ""[/B][/COLOR] Then
                strTabelle = "DEBI"
                blnAusfuehren = True
            End If

    Du musst an allen Stellen den rot formatierten Text ergänzen (einfach die Zeile markieren und im alten Code komplett ersetzen - ist ja bei jedem Tabellenblatt derselbe)

    Bis später,
    Karin
     
    Beverly, 24. August 2018
    #36
  7. stseca hat Ahnung
    Hallo Karin,

    es funktioniert :)
    Eine allerletzte Frage: Ich würde eigentlich gerne das Shape E11_ weiß lassen. Hier soll sich die Farbe nicht ändern. Gibt es einen möglichen Zusatz für den Code, dass dieses Shape nicht betrachtet wird, bzw. weiß gelassen wird?

    Viele Grüße
    stseca
     
  8. Beverly
    Beverly Erfahrener User

    VBA Autoform einfärben

    Hi,

    ergänze den Code wir folgt:

    Code:
                    If shaShape.AutoShapeType = 51 Or shaShape.AutoShapeType = 52 Then
                        strZelle = Application.Substitute(shaShape.Name, "_", "")
                        [COLOR=#ff0000]If strZelle <> "E11_" Then[/COLOR]
                            If .Range(strZelle).Value > 79 Then
                                shaShape.Fill.ForeColor.RGB = RGB(0, 179, 0)
                            ElseIf .Range(strZelle).Value > 30 And Range(strZelle).Value < 80 Then
                                shaShape.Fill.ForeColor.RGB = RGB(255, 255, 0)
                            ElseIf .Range(strZelle).Value < 31 Then
                                shaShape.Fill.ForeColor.RGB = RGB(238, 0, 0)
                            End If
                        [COLOR=#ff0000]End If[/COLOR]
                    End If
    
    
    Bis später,
    Karin
     
    Beverly, 27. August 2018
    #38
  9. stseca hat Ahnung
    Hallo Karin,

    komischerweise verfärbt es sich immer noch immer wieder rot.

    Lieben Gruß
    stseca
     
  10. Beverly
    Beverly Erfahrener User
    Hi,

    entferne den "_" bei "E11_" in der rot markierten Zeile, der wird bereits in der vorergehennden Codezeile entfernt.

    Bis später,
    Karin
     
    Beverly, 27. August 2018
    #40
  11. stseca hat Ahnung
    Hey Karin,

    ich weiß garnicht wie ich dir danken soll. Jetzt ist alles perfekt. Vielen vielen Dank für deine Hilfe!

    Ganz lieben Gruß
    stseca :-)
     
  12. Beverly
    Beverly Erfahrener User
    Hi,

    deine Rückmeldung und dass das Programm jetzt das macht was du dir vorgestellt hast, sind mir Dank genug. :)

    Bis später,
    Karin
     
    Beverly, 27. August 2018
    #42
Thema:

VBA Autoform einfärben

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

  2. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  5. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  6. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  7. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  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