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
     
  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. 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