Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code um eine Spaltenabfrage ergänzen

Code um eine Spaltenabfrage ergänzen
28.02.2020 20:06:52
Wolfgang
Hallo,
den nachfolgenden Code erhielt ich hier aus dem Forum. Er läuft wunderbar und einwandfrei. Nun hätte ich allerdings eine Bitte bzw. eine Frage nach Erweiterung des Codes. Ich würde gerne erreichen, dass an der Stelle, an der der Sitz und die Lampe grün werden, eine weitere Spalte - nämlich Spalte N einbezogen wird und der Stuhl z.B. in blaugrau gefärbt wird, wenn die Zelle in Spalte N den Text "TV" enthält. Enthält die Zelle in Spalte N den Text "TN" die Lampe z.B. die Farbe Orange erhält. Alle anderen Features sollten so bleiben. - Ich würde mich über Rückmeldungen sehr freuen. - Herzliche Grüße Wolfgang
  • Option Explicit
    Sub Einfärben()
    Dim i As Integer, letzZ As Integer, x As Integer
    letzZ = Tabelle2.[I1000].End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 1 To 15
    Tabelle1.Shapes.Range(Array("Sitz" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)             _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    Next
    For i = 2 To letzZ
    x = Tabelle2.Cells(i, 12)
    If Tabelle2.Cells(i, 9) = Date Then
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)   _
    'Grün
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)
    End If
    If Tabelle2.Cells(i, 9) > Date Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(10, 85, 151)   _
    'Blau
    End If
    If Tabelle2.Cells(i, 8) = "storniert" Then                                           _
    'Frei geworden
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)     _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    End If
    If Tabelle2.Cells(i, 10) 

  • 10
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    meinst du nicht...
    29.02.2020 00:11:12
    Oberschlumpf
    Hi Wolfgang,
    ...auch, dass deine Frage mit einer Bsp-Datei von dir, die du per Upload zeigst, einfacher zu beantworten ist?
    Ciao
    Thorsten
    stimmt - Datei anbei - Danke!!
    29.02.2020 06:09:56
    Wolfgang
    Hallo Thorsten,
    danke für Deine Antwort. Du hast Recht. Ich habe die Beispielsdatei angefügt. Wäre schö, wenn die Änderung/Anpassung klappen könnte. Viele Grüße - Wolfgang
    https://www.herber.de/bbs/user/135529.xlsm
    vielen Dank...
    29.02.2020 08:57:06
    Oberschlumpf
    Hi Wolfgang,
    ...aber leider kann ich dir nicht helfen.
    Jetzt, wo ich die Datei sehe, weiß ich, dass ich (zumindest dazu) leider nix weiß :-(
    Weiter noch viel Erfolg!
    Ciao
    Thorsten
    Anzeige
    AW: stimmt - Datei anbei - Danke!!
    29.02.2020 09:06:19
    Werni
    Hallo Wolfgang
    Anmerkung:
    Wenn man in der Tabelle Spalten verschiebt muss man das im VBA-Code anpassen.
    Wenn du eine Grafik kopierst muss du dieser einen neuen Namen geben.
    Hier währe dein neuer Code:
    Sub Einf?rben()
    Dim i As Integer, letzZ As Integer, x As Integer
    letzZ = Tabelle2.[I1000].End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 1 To 15
    Tabelle1.Shapes.Range(Array("Sitz" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)             _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    Next
    For i = 2 To letzZ
    x = Tabelle2.Cells(i, 13)
    If Tabelle2.Cells(i, 9) = Date Then
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)   _
    'Gr?n
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)
    If Tabelle2.Cells(i, 14) = "TN" Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(242,  _
    177, 131)
    End If
    If Tabelle2.Cells(i, 14) = "TV" Then
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB( _
    132, 151, 176)
    End If
    End If
    If Tabelle2.Cells(i, 9) > Date Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(10, 85, 151)   _
    'Blau
    End If
    If Tabelle2.Cells(i, 8) = "storniert" Then                                           _
    'Frei geworden
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)     _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    End If
    If Tabelle2.Cells(i, 11) 

    Gruss Werni
    Anzeige
    Danke, Werni - eine Frage/Bitte noch
    29.02.2020 09:55:14
    Wolfgang
    Hallo Werni,
    vielen vielen Dank für Deine schnelle Rückantwort und die Arbeit sowie Zeit, die Du investiert hast. - Ich habe Deine Datei probiert und sie läuft auch soweit wunderbar. Eine Frage/Bitte hätte ich noch: könnte denkbar sein, dass in den Fällen, in denen die Kürzel TV oder TN vorkommen in beiden Grafiken die Farben gleichzeitig entsprechend geändert werden. Es kann vorkommen, dass ein Platz parallel zur gleichen Zeit belegt ist (TV steht für vormittags und TN für nachmittags).
    Herzlichen Dank schon jetzt wieder für Deine Rückmeldung und sorry, dass ich diese Besonderheit nicht schon direkt erwähnt habe. Viele Grüße - Wolfgang
    Anzeige
    AW: Du meinst so?
    29.02.2020 10:26:08
    Werni
    Hallo Wolfgang
    Sub Einfärben()
    Dim i As Integer, letzZ As Integer, x As Integer
    letzZ = Tabelle2.[I1000].End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 1 To 15
    Tabelle1.Shapes.Range(Array("Sitz" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)             _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & i)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    Next
    For i = 2 To letzZ
    x = Tabelle2.Cells(i, 13)
    If Tabelle2.Cells(i, 9) = Date Then
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)   _
    'Gr?n
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(64, 130, 63)
    If Tabelle2.Cells(i, 14) = "TN" Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(242,  _
    177, 131)
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(242,  _
    177, 131)
    End If
    If Tabelle2.Cells(i, 14) = "TV" Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB( _
    132, 151, 176)
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB( _
    132, 151, 176)
    End If
    End If
    If Tabelle2.Cells(i, 9) > Date Then
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(10, 85, 151)   _
    'Blau
    End If
    If Tabelle2.Cells(i, 8) = "storniert" Then                                           _
    'Frei geworden
    Tabelle1.Shapes.Range(Array("Sitz" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)     _
    'Rot
    Tabelle1.Shapes.Range(Array("Lamp" & x)).Fill.ForeColor.RGB = RGB(255, 0, 0)
    End If
    If Tabelle2.Cells(i, 11) 
    Gruss Werni
    Anzeige
    nicht ganz
    29.02.2020 10:45:00
    Wolfgang
    Hallo Werni,
    Wenn beispielsweise der Platz1 zur gleichen Zeit mit TV und TN belegt ist, wäre schön, dass dann der Stuhl in blaugrau und die Lampe in orange eingefärbt ist. Momentan, wenn ich nicht etwas falsch gemacht habe, sind beide Grafiken mit der gleichen Farbe eingefärbt.
    Gruß - Wolfgang
    AW: nicht ganz
    29.02.2020 11:14:28
    Werni
    Hallo Wolfgang
    Es wäre von Vorteil, wenn du mal beschreibst, was genau was ist.
    Bisher hast du in Spalte N nur von TV und TN berichtet.
    Wenn TV dann nur was?
    Wenn TN dann nur was?
    Wenn TV und TN was?
    Gruss Werni
    AW: nicht ganz
    29.02.2020 11:27:05
    Wolfgang
    Hallo Werni,
    in Spalte N wird eingetragen, ob der jeweilige Platz nur halbtags belegt ist (TV vormittags, TN nachmittags). Es kann somit vorkommen, dass für den Zeitraum unter der Platznunmmer auch nur TV steht, so dass dann der Sitz nur entsprechend farbig -blaugrau- wird und die Lampe dann rot bleibt - es kann aber auch sein, dass nur VN in Spalte N steht, so dass dann die Lampe orange wird und der Stuhl weiterhin rot bleibt. Wenn dann zur gleichen Zeit TV und TN dem gleichen Platz zugeordnet sind (der Platz ist vormittags und nachmittags belegt), sollte dann der Stuhl blaugrau werden und die Lampe orange werden.
    Herzliche Grüße - Wolfgang
    Anzeige

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige