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 Karin, ich bin es nocheinmal. Es klappt soweit alles wunderbar. Nachdem ich nun noch viele weitere Autoformen hinzugefügt habe, kommt die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stseca, 9. August 2018.

  1. stseca hat Ahnung

    VBA Autoform einfärben


    Hallo Karin,

    ich bin es nocheinmal. Es klappt soweit alles wunderbar. Nachdem ich nun noch viele weitere Autoformen hinzugefügt habe, kommt die Fehlermeldung, dass die Prozedur zu groß ist. Jetzt habe ich versucht, meinen Code in zwei Prozeduren zu unterteilen, aber leider erfolglos.
    Kannst du mir sagen, wie ich den Code anpassen muss.

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

    das kann ich so nicht nachvollziehen, dazu musst du schon mal die Mappe hochladen.

    Bis später,
    Karin
     
    Beverly, 13. August 2018
    #17
  3. stseca hat Ahnung
    Hallo,

    die Datei ist leider zu groß zum Hochladen. Ich habe jetzt nur meinen Code in eine Datei eingefügt. Hoffe, dass das hilft.
    Oder kann ich dir die Datei anders zukommen lassen?

    Liebe Grüße
    stseca
     

    Anhänge:

  4. Beverly
    Beverly Erfahrener User

    VBA Autoform einfärben

    Hi,

    lade eine Kopie deiner Mappe mit nur einigen Tabellenblättern hoch. Wahrscheinlich muss das in einer Schleife gelöst werden oder komplett anders.

    Bis später,
    Karin
     
    Beverly, 13. August 2018
    #19
  5. stseca hat Ahnung
  6. Beverly
    Beverly Erfahrener User
    Hi,

    von File upload lade ich nichts herunter, da ich dort schon schlechte Erfahrungen gemacht habe.
    Auf meiner Homepage http://excel-inn.de/ unter Impressum findest du meine E-Mailadresse.

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

    kein Problem. Ich habe dir eine E-Mail geschrieben:)

    Grüße
    stseca
     
  8. Beverly
    Beverly Erfahrener User

    VBA Autoform einfärben

    Hi,

    ausgehend von deiner Mappe musst du folgendes machen: benenne alle Shapes um - entsprechend der Zelle auf die es sich beziehen soll. Beachte dabei aber, dass du ans Ende noch einen Unterstrich setzt, weil Zelladressen nicht als Name für ein Shape verwendet werden dürfen - also z.B. C11_ D11_ F11_ usw. Da es sich um sehr viele Shapes handelt empfehle ich dir, dies nur für 1 Tabellenblatt auszuführen und dasnn das komplette Tabellenblatt zu kopieren - dann bleiben die Namen der Shapes erhalten. Allerdings musst du dann logischerweise die Formeln ändern und auf die betreffende Spalte im Tabellenblatt "Übersicht" beziehen - das ist jedoch wesentlich einfacher, als wenn du jedes Shape in jedem Tabellenblatt von Hand ändern musst, denn das kannst du über Suchen -> Ersetzen realisieren.

    Danach kannst du folgenden Code verwenden:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim shaShape As Shape
        Dim strZelle As String
        Dim strTabelle As String
        Dim blnAusfuehren As Boolean
        If Not Intersect(Target, Columns(11)) Is Nothing Then
            If UCase(Target.Cells(1)) = "X" Then
                strTabelle = "DEBI"
                blnAusfuehren = True
            End If
        ElseIf Not Intersect(Target, Columns(12)) Is Nothing Then
            If UCase(Target.Cells(1)) = "X" Then
                strTabelle = "Messgrößen"
                blnAusfuehren = True
            End If
        ElseIf Not Intersect(Target, Columns(13)) Is Nothing Then
            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
    End Sub
    
    

    Noch einfacher wäre der Code, wenn die Spaltenüberschiften in Tabelle "Übersicht" den genauen Tabellennamen rerpäsentieren würden, da man den Code dann nicht extra nach Spaltennummer unterscheiden müsste.


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

    ich habe alles befolgt was du gesagt hast, bekomme allerdings die Fehlermeldung wie in den Screenshots dargestellt.
    Woran könnte das liegen?

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

    das kann ich so nicht ohne weiteres sagen, aber ich würde annehmen, dass die Variable strZelle entweder leer ist oder einen Inhalt hat, der nicht als Zelladresse interpretiert werden kann. Musst du halt mal im Einzelschrittmodus durchlaufen und sehen, weshalb sie falsch gefüllt wird.

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

    tut mir leid, aber auf was genau bezieht sich denn die Variable strZelle?

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

    hast du - wie ich in meinem Beitrag von 14.08.2018, 16:21 geschrieben habe - alle deine Shapes enstprechend umbenannt?

    Bis später,
    Karin
     
    Beverly, 21. August 2018
    #27
  13. stseca hat Ahnung

    VBA Autoform einfärben

    Hey,

    die Shapes sind die einzelnen Formen richtig? Ja das habe ich gemacht. Habe sie enstprechend der Zelle (auf dem gleichen Arbeitsblatt) auf die es sich beziehen soll, umbenannt.

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

    ja, mit Shapes meine ich deine Formen.
    Ich habe den Code in deiner Mappe getestet und erhalte keine Fehlermeldung. In der angehängten Mappe habe ich das mal für einige Shapes in Tabelle DEBI realisiert (habe sie erstmal weiß gefärbt damit du nach Codedurcblauf die Änderung siehst). Gib einfach in der Tabelle Übersicht in der grau formatierten Zelle ein x ein - der Code wird ausgeführt und färbt die Shapes im Tabellenblatt DEBI
    Es ist also anzunehmen, dass (mindestens) 1 der Shapes nicht korrekt umbenannt wurde. Du kannst das mit folgendem Code prüfen:

    Code:
    Sub NamePruefen()
        Dim shaShape As Shape
        Dim wksTab As Worksheet
        For Each wksTab In Worksheets
            For Each shaShape In wksTab.Shapes
                If shaShape.AutoShapeType = 51 Or shaShape.AutoShapeType = 52 Then
                    If Right(shaShape.Name, 1) <> "_" Then
                        shaShape.Parent.Activate
                        shaShape.Select
                        Exit Sub
                    End If
                End If
            Next shaShape
        Next wksTab
    End Sub
    
    
    Der Code läuft über alle Tabellenblätter und darin über alle Shapes. Wird eins gefunden, welches keinen "_" am Ende des Namen hat, wird das Tabellenblatt aktiviert, das Shapes selektiert und der Code abgebrochen, sodass du sehen kannst, welches Shape es ist und den Namen ändern kannst. Du musst den Code also mehrmals durchlaufen lassen bis er ohne ein Shape zu aktivieren durchläuft.


    Bis später,
    Karin
     
    Beverly, 22. August 2018
    #29
  15. stseca hat Ahnung
    Hey,

    danke dir! Es klappt soweit, aber es gibt immer noch ein Problem. Die Farben ändern sich nur, wenn ich die Daten der Reihenfolge nach ändere. Wenn ich die Daten aber willkürlich ändere, dann passiert garnichts.
    Bei Chancen und Risiken geht leider auch garnichts. Du hast in deinem Code beim Part "ChancenundRisiken" Columns (12) angegeben. Das soll warscheinlich Columns (14) sein, richtig?

    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 HTTP Post - Probleme JSON Payload

    in Microsoft Excel Hilfe
    VBA HTTP Post - Probleme JSON Payload: Moin, ich steh auf dem Schlauch.... Ich möchte mit VBA einen HTTP Post senden. Das klappt beim versenden OHNE Payload auch soweit auch ganz gut. Private Function http_post(url As String,...
  3. Kombinationsfeld in VBA auswerten

    in Microsoft Access Hilfe
    Kombinationsfeld in VBA auswerten: Guten Tag, ich habe ein VBA-Problem mit Kombinationsfeldern. Umfeld: Eine Tabelle A mit Namen incl. Adressen, indiziert (NamenID), keine doppelten Einträge möglich. Eine Tabelle B mit Rechnungen,...
  4. Download per VBA nicht aktuell

    in Microsoft Access Hilfe
    Download per VBA nicht aktuell: Hallo, ich nutze in VBA eine Download-Funktion, die mir die neueste Version meines Frontend downloaden soll. Der Download an sich funktioniert, doch leider wird eine alte Version gespeichert. Ich...
  5. Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA

    in Microsoft Excel Hilfe
    Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA: Hallo zusammen, ich habe eine Frage zur automatischen Aktualisierung von Autofilter-Ergebnissen in einer intelligenten Tabelle – und zwar ohne VBA. Ausgangssituation: Ich habe eine intelligente...
  6. Bereich mit VBA zusammenhalten

    in Microsoft Word Hilfe
    Bereich mit VBA zusammenhalten: Ich schreibe aus Access mit VBA Anschriften in ein Worddokument. Jede Anschrift soll zusammengehalten werdem, damit am Seitenende keine Anschrift getrennt wird. Wie muss ich vorgehen um eine...
  7. bedingte Formatierung Schriftgröße (VBA?)

    in Microsoft Excel Hilfe
    bedingte Formatierung Schriftgröße (VBA?): Hallo zusammen, ich kämpfe mich gerade durch die bedingte Formatierung von Excel. So langsam habe ich das Gefühl, dass ich damit die Schriftgröße einer Tabelle nicht ändern kann. Laut Google...
  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