Office: Kleine Anpassung am Farbmakro

Helfe beim Thema Kleine Anpassung am Farbmakro in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Ich hab ein Super Farbmakro für eine Zelle. Ich wusste mal wie ich das Makro anpassen musste wenn ich z.B. 10 Zellen einfärben musste. Habs aber... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von N123456789, 25. Februar 2012.

  1. N123456789 Erfahrener User

    Kleine Anpassung am Farbmakro


    Hallo Ich hab ein Super Farbmakro für eine Zelle. Ich wusste mal wie ich das Makro anpassen musste wenn ich z.B. 10 Zellen einfärben musste. Habs aber leider vergessen. Kann mir bitte jemand helfen?

    Ich will in Spalte A entweder Eig.ant, Sel.ant, Ku.zeit oder Verh.pf eintragen. Wenn einer diese Begriffe in A erscheinen soll die gesamte Zeile von Spalte A - T eingefärbt werden.

    Und das ganze im Bereich von A5 bis T3000

    Hier ist bisher mein Code für eine Zelle

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range
    Set isect = Application.Intersect(Target, Range("A1:T2500"))
    If Not isect Is Nothing Then
        Select Case Target
            Case "Eig.ant": Target.Interior.ColorIndex = 10
            Case "Sel.ant": Target.Interior.ColorIndex = 43
            Case "Ku.zeit": Target.Interior.ColorIndex = 27
            Case "Verh.pf": Target.Interior.ColorIndex = 44
            'Case "Ersatz": Target.Interior.ColorIndex = 46
            'Case "Ersatz": Target.Interior.ColorIndex = 3
       
        Case Else
            Target.Interior.ColorIndex = xlNone
    End Select
    End If
    End Sub
    
    Ich bedanke mich schon einmal im voraus.
     
    N123456789, 25. Februar 2012
    #1
  2. cpt. Nemo Erfahrener User
    Hallo,

    das sollte hinhauen:
    Code:
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim isect As Range
       Dim Ze As Long, Sp As Integer
       Dim Such As Variant
       
       Set isect = Application.Intersect(Target, Range("A5:T3000"))
       If Not isect Is Nothing Then
           Ze = Target.Row
           Sp = 1
           Such = Cells(Ze, Sp)
           Select Case Such
               Case "Eig.ant": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 10
               Case "Sel.ant": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 43
               Case "Ku.zeit": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 27
               Case "Verh.pf": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 44
               'Case "Ersatz": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 46
               'Case "Ersatz": Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 3
             Case Else
               Target.Interior.ColorIndex = xlNone
             End Select
       End If
    End Sub
    Dir ist aber klar, dass JEDE Änderung in dem Bereich A5:T3000 dazu führt, dass das Makro ausgeführt wird. Es wird nicht nur in Spalte A auf Änderungen geachtet.
     
    cpt. Nemo, 25. Februar 2012
    #2
  3. N123456789 Erfahrener User
    Hallo Cpt. Nemo

    Vielen Dank deine Anpassung hat super funktioniert. In dem Fall muss ich mir das mal irgendwo abspeichern. Ich wusste das schon einmal. Aber gut.

    Funktioniert wie gewünscht.
    Ich versteh nur nicht deine Anmerkung
    Weil ich will ja genau dass es in dem Bereich funktioniert.
    Wenn ich nun in Spalte B, sagen wir, Eig.ant eintrage funktioniert es nicht. Eben wie gewünscht. Danke
     
    N123456789, 25. Februar 2012
    #3
  4. cpt. Nemo Erfahrener User

    Kleine Anpassung am Farbmakro

    OK,

    ich meine damit folgendes: Immer, wenn irgend etwas im genannten Bereich geändert wird, ruft Excel das Makro auf und arbeitet es ab. Also, auch wenn in Spalte C eine Zahl geändert wird, läuft das Makro durch (und das kostet natürlich Ressourcen). Es gibt ja auch noch die Möglichkeit, nur auf Änderungen in Spalte A zu reagieren, dann wird wesentlich seltener abgefragt, ob der neue Wert in Spalte A einem der Stichworte entspricht.

    Beispiel: Du gibst eine komplette neue Zeile ein, alle 20 Spalten. Dann wird 20 mal das Makro aufgerufen, obwohl es nur sinnvoll ist, wenn in Spalte A etwas geändert wird.

    Ich weiß, schwer zu erklären. Aber vielleicht ist es mir ja gelungen …
     
    cpt. Nemo, 25. Februar 2012
    #4
  5. N123456789 Erfahrener User
    Jetzt verstehe ich was du meinst. Danke für die Geduld :)....

    Aber jetzt ahnst du es schon ;)

    Weißt du denn wie ich es Ressourcenschonend programmiere?

    Liebe Grüße

    PS: hab gerade gesehen wenn ich eines der Wörter aus spalte A entferne geht nur die Farbe in Spalte A weg. Nicht in der gesamten Zeile Kleine Anpassung am Farbmakro :(... können wir das noch abändern?
     
    Zuletzt bearbeitet: 25. Februar 2012
    N123456789, 25. Februar 2012
    #5
  6. cpt. Nemo Erfahrener User
    OK,

    was du im PS beschrieben hast, hatte ich übersehen. Habe das ELSE entsprechend angepasst:
    Code:
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim isect As Range
       Dim Ze As Long, Sp As Integer
       Dim Such As Variant
       
       Set isect = Application.Intersect(Target, Range("A5:A3000"))
       If Not isect Is Nothing Then
           Ze = Target.Row
           Sp = 1
           Such = Cells(Ze, Sp)
           Select Case Such
               Case "Eig.ant"
                  Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 10
               Case "Sel.ant"
                  Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 43
               Case "Ku.zeit"
                  Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 27
               Case "Verh.pf"
                  Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 44
               'Case "Ersatz"
                  'Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 46
               'Case "Ersatz"
                  'Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = 3
             Case Else
               Range(Cells(Ze, 1), Cells(Ze, 20)).Interior.ColorIndex = xlNone
             End Select
       End If
    End Sub
    Na ja, und die Sache mit den Ressourcen: Ich prüfe eben nur auf Änderungen in A5:A3000 und ignoriere die anderen Spalten. Das INTERSECT fragt ab, ob mit der aktuellen Zelle und dem Bereich isect eine Schnittmenge besteht, also ob da eine Überlappung da ist. Und wenn ich in eine Spalte außerhalb von Spalte A klicke, gibt es keine Überschneidung und das Makro wird sofort beendet, ohne den Inhalt der Zelle zu prüfen.

    … und ich habe die Doppelpunkte aus dem Code entfernt. So ist es einfach übersichtlicher und entspricht mehr dem Standard.
     
    Zuletzt bearbeitet: 26. Februar 2012
    cpt. Nemo, 26. Februar 2012
    #6
  7. N123456789 Erfahrener User
    Thank you Captain. Funktioniert genau wie gefordert. Danke dafür, und danke für die Erklärung. Bei jeder Erklärung versteht man mehr über Makros und Codes. Ich bin zwar selbst weit davon entfernt sowas selbst zu schreiben, dennoch bekommt man ein besseres Gefühl was ist möglich, und wenn es möglich ist, was ist die beste Vorgehensweise.

    noch eine weitere kleine Erklärungsfrage

    diese Programmzeile löscht ja komplett meinen Zellinhalt. Gibt es einen Befehlt der zwar den Wert löscht, aber eine zugrunde liegende Formel beibehält?
    Also wenn ich in Zelle F21 die Formel hab z.B. =A1+A2 .... und das Ergebnis ist z.b. 10. Kann ich dann über einen Befehl sagen "lass die Zelle leer aussehen, aber behalte die Formel bei"
     
    N123456789, 26. Februar 2012
    #7
  8. cpt. Nemo Erfahrener User

    Kleine Anpassung am Farbmakro

    Moin,

    das geht zwar auch per Makro aber die "normale" Lösung ist oft sinnvoller: Formatiere die Zelle als Benutzerdefiniert so: ;;; und schon ist alles unsichtbar :).
    Und wie das per Makro/VBA geht, das siehst du am besten, wenn du diesen Vorgang einmal aufzeichnest. Du bekommst dann zwar einen Wust von Zeilen, aber dabei lernst du auch, dass du dieses oder jenes aus aufgezeichnetem Code streichen kannst.
     
    cpt. Nemo, 26. Februar 2012
    #8
  9. N123456789 Erfahrener User
    Sehr interessant. ich machs mit ;;; Danke :)
     
    N123456789, 26. Februar 2012
    #9
Thema:

Kleine Anpassung am Farbmakro

Die Seite wird geladen...
  1. Kleine Anpassung am Farbmakro - Similar Threads - Kleine Anpassung Farbmakro

  2. Prozentuale Berechnung UND kleiner als

    in Microsoft Excel Hilfe
    Prozentuale Berechnung UND kleiner als: Hallo, ich suche nach eine Formel für folgende Aufgabe. Drehbuchhonorar ist an das Gesamtbudget geknüpft. Es ist 2,5% des Gesamtbudget darf aber 100.000EUR nicht überschreiten soll aber...
  3. Formel wenn Summe kleiner als null, dann null

    in Microsoft Excel Hilfe
    Formel wenn Summe kleiner als null, dann null: Hallo liebe Community! Ich benötige Hilfe bei der Erstellung einer Formel: G26+G29-G30 (in der Zelle G30 steht minus € 13,20) Wenn die Summe eine kleinere Zahl als Null ergibt, soll in G31 Null...
  4. kleines Fenster "(Strg)" geht einfach nicht weg!!!

    in Microsoft Word Hilfe
    kleines Fenster "(Strg)" geht einfach nicht weg!!!: Hallo, immer wieder kommt dieses kleine beschi**ene Fenster, wenn ich etwas einfüge. Dann direkt da, wo ich weiter schreiben will. Es ist zum ausrasten!!! Any help???
  5. Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...

    in Microsoft Excel Hilfe
    Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...: Hallo zusammen, nachdem ich lange zeit mit einer Handvoll Formeln ausgekommen bin, gegebenenfalls diese ein wenig modifiziert habe, stehe ich jetzt auf dem Schlauch...(bzw. bin nicht so...
  6. kleines Problem beim erstellen von serienbriefen per vba

    in Microsoft Excel Hilfe
    kleines Problem beim erstellen von serienbriefen per vba: Hallo Zusammen ich habe letztes Jahr mit Hilfe eines Forums einen VBA Code erstellt mit dem ich Serienbriefe aus einer Exceldatei erstellen kann. Jetzt habe ich das Sheet in Excel angepasst und...
  7. Brüche mit kleinen Bruchzahlen

    in Microsoft Excel Hilfe
    Brüche mit kleinen Bruchzahlen: Hallo zusammen, ich suche eine Lösung, Brüche in Excel mit kleinen Bruchzahlen darzustellen - ähnlich wie bei der Autokorrektur in Word. Zur Illustration eine kleine Beispieldatei mit allen...
  8. Abfrage erstellen mit dem kleinsten Wert

    in Microsoft Access Hilfe
    Abfrage erstellen mit dem kleinsten Wert: [IMG]
  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