Office: (Office 2010) Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?

Helfe beim Thema Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo mal wieder, ich habe eine Mappe mit drei Datenblättern. In Tabelle 1 markiert mein Chef (er nimmt immer andere Farben) Zellen eines... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von lincoln, 11. Dezember 2015.

  1. lincoln Erfahrener User

    Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?


    Hallo mal wieder,

    ich habe eine Mappe mit drei Datenblättern. In Tabelle 1 markiert mein Chef (er nimmt immer andere Farben) Zellen eines Schichtplanes. Diese Farbwerte möchte ich auf Tabelle 2 in anderen Zellen (als die vom Chef markierten) übernehmen, dass die Zellen den gleichen Farbwert haben.

    In Tabelle 1 ist der Monat horizontal (1. bis 31.), in der Einzelübersicht (Tabelle 2, für jeden Mitarbeiter individuell) sind die Tage des Monat vertikal angeordnet.
    Ich kann inzwischen den Farbwert einer Zelle auslesen (Vorgehensweise dazu im Internet gefunden).

    Was ich jetzt brauche ist so etwas wie in der Überschrift beschrieben. Ich möchte eine Zelle mit dem Farbwert (z.B. 38) ausfüllen.
    Mit der Bedingten Formatierung muss ich mich auf einen Farbwert festlegen. Aber diesen weiß ich ja nicht (es ist meistens eine art von rot, aber oft nie genau der gleiche).

    VBA scheint mir zuuu komplex zu werden - oder?

    Gruß
    Lincoln
    Berlin
     
  2. Beverly
    Beverly Erfahrener User
    Hi Lincoln,

    da wird dir außer VBA nichts weiter übrig bleiben. Du müsstest in einer Schleife die Spalten durchgehen, die Farbe prüfen und dann die zugehörige Zeile in der Mitarbeitertabelle ansprechen und die Farbe dorthin übertragen.
    Genauer kann man sich da leider nicht äußern, solange der genaue Tabellenaufbau nicht bekannt ist.

    Bis später,
    Karin
     
  3. lincoln Erfahrener User
    Hallo Beverly,

    Die Datei ist leider um 49 KB zu groß. Kann ich sie dir irgendwie anders zukommen lassen?

    Gruß
    Lincoln
     
  4. Beverly
    Beverly Erfahrener User

    Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?

    Hi Lincoln,

    du musst nicht die komplette Mappe hochladen - es reicht eine Kopie, die nur die für das Problem relevanten Daten enthält.

    Bis später,
    Karin
     
  5. lincoln Erfahrener User
    OK, aber dann funktioniert evtl. einiges nicht.
    Die Erklärungen sind in der Datei.

    Gruß
    Lincoln
     
  6. Beverly
    Beverly Erfahrener User
    Hi Lincoln,

    dass die Formeln #NV ergeben ist nicht so schlimm, es geht ja nut um dden prinzipiellen Tabellenaufbau.
    Versuche es mal mit diesem Code:

    Code:
    Sub FarbeUebertragen()
        Dim intSpalte As Integer
        For intSpalte = 3 To 33
            If Cells(4, intSpalte).Interior.ColorIndex <> xlNone Then _
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 5).Interior.Color = _
                Cells(4, intSpalte).Interior.Color
            If Cells(7, intSpalte).Interior.ColorIndex <> xlNone Then _
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 6).Interior.Color = _
                Cells(7, intSpalte).Interior.Color
            If Cells(10, intSpalte).Interior.ColorIndex <> xlNone Then _
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 7).Interior.Color = _
                Cells(10, intSpalte).Interior.Color
        Next intSpalte
    End Sub
    
    

    Falls der Zellbereich "Bemerkungen" nicht berücksichtig werden soll, kannst du die letzte If-Zeile löschen.


    Noch ein genereller Hinweis: ich würde an deiner Stelle das 2. Tabellenblatt mit einem Blattschutz belegen und nicht so viele Kommentare verwenden - die blähen die Mappe nur unnötig auf.



    Bis später,
    Karin
     
  7. lincoln Erfahrener User
    Das habe ich seit der Arbeit mit der Fahrzeugeinteilung auch so gemacht, weil ich ab da wusste, dass man das Dropdown Feld trotz Blattschutz aktiv lassen kann. Meine Kollegen ändern nämlich gerne mal schnell in der Einzelübersicht rum.

    Aber der Code macht leider gar nix. Ich habe ihn in die Tabelle 1 gespeichert.

    (Nachtrag)
    Aha, "Worksheet". Nicht "Allgemein" jetzt geht´s.
    Im Januar beginnt mein VBA Kurs. Dann hat die Unwissenheit hoffentlich ein Ende.

    Vielen Dank

    Gruß
    Lincoln
     
    Zuletzt bearbeitet: 12. Dezember 2015
  8. Beverly
    Beverly Erfahrener User

    Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?

    Der Code muss in ein allgemeines Modul und dann von Hand (oder über einen Schalter) gestartet werden, denn eine Farbänderung löst kein Change- oder anderes Ereignis aus, welches man auswerten könnte.

    Bis später,
    Karin
     
  9. lincoln Erfahrener User
    Ich glaube, vor "End Sub" muss noch so etwas wie "Refresh.("Einzelübersicht").Cells" (oder wie es in VBAisch heißt), weil er "keine Füllung" nicht übernimmt.

    Die Aktivierung erfolgt doch bei drücken der Entertaste. Das ist kein Problem.
    Aber wenn man im Dienstplan die Zellen wieder entfärbt, bleiben sie in der Einzelübersicht farbig.
     
  10. Beverly
    Beverly Erfahrener User
    Wie geht dein Chef vor: er schreibt eine Uhrzeit in die Zelle und anschließend ändert er die Farbe? Oder läuft das anders ab?
    Wie schon geschrieben - das Ändern der Farbe kann man nicht mittels Change-Ereignis (Ändern des Zellinhaltes = Enter drücken) abfragen, denn bei einer Farbänderung findet keine Änderung des Zellinhaltes statt - ist also nicht automatisch möglich. Das selbe trifft auf das Entfärben einer Zelle zu. Versuche doch einfach mal folgendes: schreibe diesen Code ins Codemodul des Tabellenblattes

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        MsgBox "Zellinhalt wurde geändert"
    End Sub
    
    

    und trage dann etwas in eine Zelle ein - die MsgBox wird angezeigt. Ändere nun die Farbe der Zelle und schau was passiert. Das hat absolut nichts mit dem Refresh- oder Repaint-Befehl zu tun - den könntest du noch so vielemale dort eintragen, aber solange kein Zellinhalt geändert wird, wird nichts ausgeführt.

    Es ginge nur automatisch zu programmieren, wenn dein Chef zuerst die Farbe der Zelle ändert und anschließend etwas einträgt - dann kann man das Change-Ereignis verwenden, aber ich denke mal, damit wird dein Chef nicht einverstanden sein.
    Die Färbung (oder Entfärbung) geht also nur, wenn man den Code z.B. mit einer Schaltfläche verknüpft und ihn dann (wenn alle Einträge gemacht wurden) auslöst. Oder man könnte es beim Schließen der Arbeitsmappe machen, also meinen geposteten Code ins Workbook_BeforeClose-Ereignis schreiben - dann sind die Zellen gefärbt, wenn der Mitarbeiter die Mappe öffnet. Da musst du allerdings noch den Bezug zum Tabellenblatt "Dienstplan" ergänzen, da ja nicht garantiert werden kann, dass dieses Tabellenblatt beim Schließen der Mappe gerade aktiv ist.


    Bis später,
    Karin
     
  11. lincoln Erfahrener User
    Hallo Beverly,

    danke, beide Codes funktionieren, jedoch habe ich ja jetzt den Blattschutz in der Einzelübersicht drin und der produziert Fehler.
    Wenn ich ...unprotect und am Ende wieder ...Protect einsetze, Spinnt die Eingabe beim Dienstplan.

    Und...
    ... die MsgBox erscheint bei JEDER Zelländerung. Das ist meinen Leuten garantiert zu nervig.

    Ich übertrage die Zellfarben manuell.

    Danke für Deine Hilfe.

    Gruß
    Lincoln
    Berlin
     
  12. Beverly
    Beverly Erfahrener User
    Hi Lincoln,

    was verstehst du unter "spinnt die Eingabe"? Ein Code kann nicht spinnen sondern macht nur das was programmiert wurde.

    Der Code mit der MsgBox sollte nur für dich zur Erläuterung und zum Testen sein, nicht dafür, dass du ihn in deine Mappe auch fix einbinden sollst.

    Weshalb realisierst du nicht meinen Vorschlag, das Makro, welches ich weiter oben gepostet hatte, beim Schließen der Mappe auszuführen, wenn du es nicht über einen Schalter starten willst? Du musst ja sehr viel Zeit haben, wenn du die Zellfarben wie bisher von Hand überträgst - wozu brauchst du dann überhaupt irgendeinen Code? :D

    Bis später,
    Karin
     
  13. lincoln Erfahrener User

    Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?

    Sei doch bitte nicht sauer.
    Ich habe den Code so gespeichert, wie du es gesagt hast. Da ich aber den Blattschutz in der Einzelübersicht drin habe, blinkt meine Dienstplanseite kurz auf und ich kann keine Daten mehr eingeben.

    Das mit Änderungen bei Mappe schließen übernehmen geht auch. (Farbe ändern, NICHT Enter drücken -> Mappe speichern -> Mappe öffnen -> Farben übernommen. :-) ).
    Nur das entfärben übernimmt er nicht.

    Mal sehen, ich werde ab Januar mit der Syntax besser umgehen können. Dann schaue ich mir das noch einmal an.

    Gruß
    Lincoln
     
  14. Beverly
    Beverly Erfahrener User
    Während ein Makro läuft kann man nichts im Tabellenblatt machen - du musst schon so lange warten, bis das Makro durchgelaufen ist.

    Das Flackern des Bildschirms kann am unterbinden, indem man die Bildschirmaktualisierung mittels Application.ScreenUpdating = False ausschaltet.

    Wenn die Farben auch wieder zurückgesetzt werden sollen, dann musst du das im Code nur entsprechend in einem Else-Zweig anweisen:

    Code:
    Sub FarbeUebertragen()
        Dim intSpalte As Integer
        ' Bildschirmaktualisierung aus
        Application.ScreenUpdating = False
        ' Blattschutz aufheben
        ActiveSheet.Unprotect
        For intSpalte = 3 To 33
            If Cells(4, intSpalte).Interior.ColorIndex <> xlNone Then
                ' Farbe setzen falls gefärbt
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 5).Interior.Color = _
                    Cells(4, intSpalte).Interior.Color
            Else
                ' Farbe zurücksetzen falls nicht gefärbt
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 5).Interior.ColorIndex = xlNone
            End If
            If Cells(7, intSpalte).Interior.ColorIndex <> xlNone Then
                ' Farbe setzen falls gefärbt
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 6).Interior.Color = _
                    Cells(7, intSpalte).Interior.Color
            Else
                ' Farbe zurücksetzen falls nicht gefärbt
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 6).Interior.ColorIndex = xlNone
            End If
                ' Farbe setzen falls gefärbt
            If Cells(10, intSpalte).Interior.ColorIndex <> xlNone Then
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 7).Interior.Color = _
                    Cells(10, intSpalte).Interior.Color
            Else
                ' Farbe zurücksetzen falls nicht gefärbt
                Worksheets("Einzelübersicht").Cells(intSpalte + 1, 7).Interior.ColorIndex = xlNone
            End If
        Next intSpalte
        ' Blattschutz setzen, Zellformatierung zulassen
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True
        ' Bildschirmaktualisierung ein
        Application.ScreenUpdating = True
    End Sub
    
    
    

    Beachte aber, dass Farben, die in Tabelle2 nachtrählich von Hand gesetzt wurden, auch zurückgesetzt werden, falls in Tabelle 1 die relevante Zelle keine Farbe enthält.


    Bis später,
    Karin
     
  15. lincoln Erfahrener User
    Beverly.....tausendmal Dank.

    Jetzt klappt auch das entfärben bei schließen (speichern).
    Ein winzig kleines Ding ist aber noch...
    ... der Blattschutz, den ich in Tabelle 2 habe. Ich denke "Activesheet.Unprotect" pass hier nicht. Ich müsste doch die zweite Tabelle ansprechen.!?? - Oder?

    Tabelle 1 ist geschützt. Mit Blattschutz in Tabelle 2 läuft der Code nicht.

    Gruß
    Lincoln
     
Thema:

Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das?

Die Seite wird geladen...
  1. Wenn(Tabelle1!A1 Farbcode=38;Tabelle2!C5 auch Farbcode=38; Farbcode=0) - geht das? - Similar Threads - Tabelle1 Farbcode=38 Tabelle2

  2. Zellwert Tabelle1 Bestimmt Anzahl Zeilen in Tabelle2

    in Microsoft Excel Hilfe
    Zellwert Tabelle1 Bestimmt Anzahl Zeilen in Tabelle2: Hallo zusammen, ich bräuchte bitte einmal Eure Hilfe. Habe keine schlaue Idee wie ich das automatisiert lösen kann. Folgend mein(e) Problem/Idee. Tabelle 1 ist eine Bestellliste...
  3. Tabelle1 woanders als .xlsm speichern

    in Microsoft Excel Hilfe
    Tabelle1 woanders als .xlsm speichern: Hallo, meine Arbeitsmappe besteht aus drei Blättern, wobei sich die eigentliche Darstellung auf Blatt 1 befindet und die Berechnungen auf Blatt 2 und 3 stattfinden. Ich möchte nun, dass mit...
  4. userform zum suchen in Tabelle1 und Auswahl kopieren in Tabelle2

    in Microsoft Excel Hilfe
    userform zum suchen in Tabelle1 und Auswahl kopieren in Tabelle2: Hallo zusammen, meine VBA kenntnisse sind eher sehr rudimentär. Ich habe ein funktionierendes Script gefunden, was nur einen kleinen Makel hat. Wie bekomme ich es hin dass in der Listbox die...
  5. Tabelle1[Spaltenname] -> Tabelle1[=B28]. Geht das?

    in Microsoft Excel Hilfe
    Tabelle1[Spaltenname] -> Tabelle1[=B28]. Geht das?: Hallo an alle, ich weiß schon wieder mal nicht wie ich dieses Problem bei der Suche nennen soll. Wenn es da schon etwas dazu gibt, bitte hinverschieben. Folgendes Problem: Ich habe eine...
  6. Ergebnis einer Formel aus Tabelle1 per VBA in 1. freie Zeile von Tabelle2 kopieren

    in Microsoft Excel Hilfe
    Ergebnis einer Formel aus Tabelle1 per VBA in 1. freie Zeile von Tabelle2 kopieren: Hallo und guten Morgen. Ich wurschtel mich gerade mal wieder durch den VBA schungel. Ich habe folgenden Code versucht: Sheets("Tänzerkontos").Select Range("F8").Select Selection.Copy...
  7. Kopieren von Tabelle1 in Tabelle2

    in Microsoft Excel Hilfe
    Kopieren von Tabelle1 in Tabelle2: Hallo Freunde, folgendes Anliegen: Ich habe im Arbeitsblatt Tabelle1 eine Tabelle, in die Werte eingegeben werden. Nun möchte ich diese Werte per Makro, in eine andere Tabelle im...
  8. Daten kopieren aus Tabelle1 nach Tabelle2 - Problem Excel

    in Microsoft Excel Hilfe
    Daten kopieren aus Tabelle1 nach Tabelle2 - Problem Excel: Hallo Ich bräuchte für folgendes Problem Hilfe: [ATTACH] Ich habe dafür folgendes verwendet und es funktioniert, ABER leider verschiebt sich die Summe nicht automatisch falls ich z.B. eine...
  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