1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Zellenformat in Excel

Discussion in 'Office-Programme' started by Micha_850, Jan 1, 2008.

Thread Status:
Not open for further replies.
  1. Micha_850

    Micha_850 ROM

    Hallo liebe Leute,

    habe in Excel ein Formatierungsproblem. Office Prof. 2002

    Es geht um einen Terminplaner:

    Wenn ich z. B. Zelle B6 formatiere, möchte ich,
    dass in der Zelle "12.00" Uhr steht und die Zelle gelb ist.

    Ich kann zwar "12.00" Uhr eintragen und über bedingte Formatierung gelb einstellen (bis hier ist das Ergebnis ok) aber :nixwissen
    wenn ich einen Patienten wieder lösche ist ja "12.00" Uhr weg und auch "gelb" ist nicht mehr zu sehen:heul:

    Wie kann ich der Zelle sagen zeige mir 12.00Uhr wenn kein Patient da ist, wenn der Patient eingetragen ist soll die Zelle natürlich weiss sein.

    Gruß Micha
     
  2. WirdSchon

    WirdSchon Byte

    Hi,

    Du bist ein wenig sparsam mit den Informationen rund um den Aufbau.

    Ich lese das so, dass Du möglichst schnell sehen möchtest wo noch freie Termine liegen.
    Außerdem nehme ich an dass die angezeigte Uhrzeit nicht manuell eingegeben wird sondern fortlaufend in definierten Abständen drin steht.
    Des weiteren nehme ich an dass Du, wenn Du einem Patienten einen Termin gegeben hast, Du diesen irgendwo einträgst und daraufhin der Termin nicht mehr gelb sein soll.

    Da Du schreibst dass Du die bedingte Formatierung schon kennst, würde ich diese auch verwenden. Dort kann man auch Formeln als Bedingung eingeben.
    Im Beispiel würde in A der Patient eingetragen, in B steht die Uhrzeit. Solange A leer ist wird B gelb markiert.
    Du rufst also bedingte Formatierung auf, wechselst von "Zellinhalt ist" auf "Formel" und trägst folgendes ein =ISTLEER($A2) oder halt an Deine Struktur angepasst.
    Das klappt natürlich nur wenn niemand hingeht und einen Patienten löscht (armer Patient, Verbrennungsopfer?) indem er/sie die Leertaste drückt. Habe ich schon oft gesehen. Dann ist die Zelle aber halt nicht leer, sonder es steht, welche Überaschung, ein Leerzeichen drin. Man glaubt es kaum.
    Falls doch was gaaaaaaaaaanz anderes gemeint ist, einfach noch mal posten. Meine Kristallkugel ist Silvester kaputt gegangen. :-)
     
  3. Micha_850

    Micha_850 ROM

    Hallo liebe Kristallkugel,
    ist ja gar nicht so einfach alles zu erklären.

    Ich versuch es mal:

    In der besagten Zelle (in ein und derselben) soll die Uhrzeit stehen und bei Vergabe des Termin steht der Name des Patienten.
    Uhrzeit muss nicht fortlaufend sein, da der Wochenplan kopiert wird.

    Der Patient wird in Zelle B7 eingetragen!
    Vorher habe ich dort gesehen: "12.00" Uhr und Zelle ist gelb!
    So, und jetzt steht "Müller" in der Zelle, das heißt die Zelle soll weiß (neutral) sein.
    ---------------------------
    Bis hier funktioniert auch alles über Bedingte Formatierung.
    Ich habe festgelegt wenn Zelle leer ist = gelb
    und wenn Zelle "12.00" Uhr auch gleich gelb.
    --------------------------
    Aber wenn Herr Müller jetzt absagt ist Zelle leer und sie ist gelb, was ja schon nicht schlecht ist.
    Jetzt kommt die Königsfrage: Wie bekomme ich es hin, das jetzt auch wieder 12.00 Uhr in der Zelle steht???
    Selber eingeben, OK, ist aber nicht schön!

    Auf deutsch!: Zelle ist Formatiert mit gelb und soll "selber" "12.00" Uhr
    anzeigen!!!!! Wie könnte das gehen? Bekomme ich bei Bedingte Formatierung nicht hin

    Gruß Micha
     
  4. Beverly

    Beverly Halbes Megabyte

    Hi Micha,

    das lässt sich auch nicht mit Bedingter Formatierung lösen, da hilft nur VBA.
    Mache einen Rechtsklick auf den Tabellenreiter -> Code anzeigen. Damit gelangst du in die VBA-Umgebung. Kopiere dann folgenden Code in das rechte große Fenster

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address <> "$B$7" Then Exit Sub
        Application.EnableEvents = False
        If Target = "" Then Target = "12:00"
        Application.EnableEvents = True
    End Sub
    
    Schließe dann den VBA-Editor und teste, was in Zelle B7 passiert, wenn du einen Namen einträgst und anschließend wieder löschst.
     
  5. Micha_850

    Micha_850 ROM

    Hallo Karin,

    klappt ja prima, vielen Dank.

    Muss ich jetzt jede Zelle damit Kopieren ( mit Änderung Uhrzeit und Zellenname)?
    Oder wie mache ich das für "viele" Zellen im Terminplaner??


    Gruß Micha
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi Micha,

    ich weiß nicht, in welchem Bereich deine Eingaben erfolgen sollen, deshalb hier mal ein Code für den Bereich B7: D20

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim raZelle As Range
        If Intersect(Target, Range("B7:D20")) Is Nothing Then Exit Sub
        Application.EnableEvents = False
        If Target.Count > 1 Then
            If Selection.Cells(1) = "" Then
                Selection.Cells = "12:00"
            End If
        Else
            If Target = "" Then Target = "12:00"
        End If
        Application.EnableEvents = True
    End Sub
    
    
     
  7. Micha_850

    Micha_850 ROM

    Hi Katrin,

    ich muss z. b: A2 C2 E2 G2 I2 K2 = 8.00 und
    A3 C3 E3 G3 I3 K3 = 8.30 und
    A4 C4 E4 G4 I4 K4 = 9.00 und so weiter bis 20.00

    Geht das?

    Gruß Micha
     
  8. Beverly

    Beverly Halbes Megabyte

    Hi Micha,

    vom Prinzip her ginge es mit diesem Code, den du nur nach dem selben Schema erweitern musst

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim strWert As String
        Dim raBereich As Range
        Set raBereich = Union(Range("A2:A26"), Range("C2:C26"), Range("E2:E26"), Range("G2:G26"), Range("I2:I26"), Range("K2:K26"))
        If Intersect(Target, raBereich) Is Nothing Then Exit Sub
        If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        If Target = "" Then
            Select Case Target.Row
                Case 2
                    strWert = "8:00"
                Case 3
                    strWert = "8:30"
                Case 4
                    strWert = "9:00"
                ' hier weitere Case Anweisungen ergänzen
                Case 26
                    strWert = "20:00"
            End Select
            Target = strWert
        End If
        Application.EnableEvents = True
    End Sub
    
    Beachte bitte: mit diesem Code lässt sich immer nur eine Zelle löschen und die Uhrzeit wieder eintragen, nicht jedoch mehrere auf einmal.
     
  9. Micha_850

    Micha_850 ROM

    Hi Karin,

    super vielen Dank.

    Werde den Code mal erweitern, hoffentlich klappt es.

    Gruß Micha
     
  10. WirdSchon

    WirdSchon Byte

    Hallo Karin, Micha,

    hier der Code, inkl. Bearbeitung ALLER gewählten Zellen. Jetzt musst Du dir nur noch Gedanken um Mittagspausen u.ä. machen. :)


    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim raZelle As Range
        If Intersect(Target, Range("A2:K26")) Is Nothing Then Exit Sub
        Application.EnableEvents = False
        If Target.Column = 1 Or Target.Column = 3 Or Target.Column = 5 Or Target.Column = 7 Or Target.Column = 9 Or Target.Column = 11 Then
            If Target.Count > 0 Then
                For Each Zelle In Target
                    If Zelle.Value = "" Then
                        Select Case Zelle.Row
                            Case Is = 2
                                Zelle.Value = "08:00"
                            Case Is = 3
                                Zelle.Value = "08:30"
                            Case Is = 4
                                Zelle.Value = "09:00"
                            Case Is = 5
                                Zelle.Value = "09:30"
                            Case Is = 6
                                Zelle.Value = "10:00"
                            Case Is = 7
                                Zelle.Value = "10:30"
                            Case Is = 8
                                Zelle.Value = "11:00"
                            Case Is = 9
                                Zelle.Value = "11:30"
                            Case Is = 10
                                Zelle.Value = "12:00"
                            Case Is = 11
                                Zelle.Value = "12:30"
                            Case Is = 12
                                Zelle.Value = "13:00"
                            Case Is = 13
                                Zelle.Value = "13:30"
                            Case Is = 14
                                Zelle.Value = "14:00"
                            Case Is = 15
                                Zelle.Value = "14:30"
                            Case Is = 16
                                Zelle.Value = "15:00"
                            Case Is = 17
                                Zelle.Value = "15:30"
                            Case Is = 18
                                Zelle.Value = "16:00"
                            Case Is = 19
                                Zelle.Value = "16:30"
                            Case Is = 20
                                Zelle.Value = "17:00"
                            Case Is = 21
                                Zelle.Value = "17:30"
                            Case Is = 22
                                Zelle.Value = "18:00"
                            Case Is = 23
                                Zelle.Value = "18:30"
                            Case Is = 24
                                Zelle.Value = "19:00"
                            Case Is = 25
                                Zelle.Value = "19:30"
                            Case Is = 26
                                Zelle.Value = "20:00"
                        End Select
                    End If
                Next
            End If
        End If
        Application.EnableEvents = True
    End Sub
    
     
  11. WirdSchon

    WirdSchon Byte

    Klar klappt das. Eines solltest Du jedoch bedenken. Wenn Du so ein "Projekt" anfängst, dann wird dir das so lange am Knie kleben bis Du den Job wechselst.
    Unerwähnt soll auch nicht bleiben dass man sich mit VBA allerlei kleine Hilfen basteln kann, aber Wasserdicht bekommst Du den Code nie. Fehler führen unweigerlich zu verkorksten WEs (Fehlersuche im Programm) denn DU bis Schuld :ironie:. Von den Kollegen bekommst Du erst aufrichtige Anerkennung, dann kleine Verbesserungsvorschläge und, wenn alles soweit läuft, den dezenten Hinweis dass das sicher auch schöner gegangen wäre.

    Trotzdem viel Erfolg, denn nur aus Eigeninitiative wächst etwas.


    Wie heist es noch mal so schön?
    Alle sagten "Das geht nicht", dann kam jemand der das nicht wusste, und dieser jemand machte es einfach.
     
  12. Beverly

    Beverly Halbes Megabyte

    Hi,

    wenn mehr als 1 Spalte markiert ist, werden dabei die Uhrzeiten auch in die ungeraden Spalten geschrieben, was sicher nicht erwünscht ist. Hiermit wird das verhindert

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim raZelle As Range
        If Intersect(Target, Range("A2:K26")) Is Nothing Then Exit Sub
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        If Target.Count > 1 Then
            If Selection.Cells(1) = "" Then
                For Each raZelle In Target
                    If raZelle.Column Mod 2 = 1 Then
                        Select Case raZelle.Row
                            Case 2
                                raZelle = "08:00"
                            Case 3
                                raZelle = "08:30"
                            Case 4
                                raZelle = "09:00"
                            Case 5
                                raZelle = "09:30"
                            Case 6
                                raZelle = "10:00"
                            Case 7
                                raZelle = "10:30"
                            Case 8
                                raZelle = "11:00"
                            Case 9
                                raZelle = "11:30"
                            Case 10
                                raZelle = "12:00"
                            Case 11
                                raZelle = "12:30"
                            Case 12
                                raZelle = "13:00"
                            Case 13
                                raZelle = "13:30"
                            Case 14
                                raZelle = "14:00"
                            Case 15
                                raZelle = "14:30"
                            Case 16
                                raZelle = "15:00"
                            Case 17
                                raZelle = "15:30"
                            Case 18
                                raZelle = "16:00"
                            Case 19
                                raZelle = "16:30"
                            Case 20
                                raZelle = "17:00"
                            Case 21
                                raZelle = "17:30"
                            Case 22
                                raZelle = "18:00"
                            Case 23
                                raZelle = "18:30"
                            Case 24
                                raZelle = "19:00"
                            Case 25
                                raZelle = "19:30"
                            Case 26
                                raZelle = "20:00"
                        End Select
                    End If
                Next
            End If
        Else
            If Target = "" Then
                If Target.Column Mod 2 = 1 Then
                    Select Case Target.Row
                        Case 2
                            Target = "08:00"
                        Case 3
                            Target = "08:30"
                        Case 4
                            Target = "09:00"
                        Case 5
                            Target = "09:30"
                        Case 6
                            Target = "10:00"
                        Case 7
                            Target = "10:30"
                        Case 8
                            Target = "11:00"
                        Case 9
                            Target = "11:30"
                        Case 10
                            Target = "12:00"
                        Case 11
                            Target = "12:30"
                        Case 12
                            Target = "13:00"
                        Case 13
                            Target = "13:30"
                        Case 14
                            Target = "14:00"
                        Case 15
                            Target = "14:30"
                        Case 16
                            Target = "15:00"
                        Case 17
                            Target = "15:30"
                        Case 18
                            Target = "16:00"
                        Case 19
                            Target = "16:30"
                        Case 20
                            Target = "17:00"
                        Case 21
                            Target = "17:30"
                        Case 22
                            Target = "18:00"
                        Case 23
                            Target = "18:30"
                        Case 24
                            Target = "19:00"
                        Case 25
                            Target = "19:30"
                        Case 26
                            Target = "20:00"
                    End Select
                End If
            End If
        End If
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End Sub
    
     
  13. WirdSchon

    WirdSchon Byte

    Danke fürs Aufpassen. :bussi: Diese Variante hatte ich nicht getestet. Böses Foul.
     
  14. Micha_850

    Micha_850 ROM

    Hallo Karin,

    klappt gut, Danke.

    Habe jetzt noch eine Frage, da ich das mit dem "CODE" nicht kenne.

    Bei deiner Formel beginnt das ganze bei A2.
    Möchte das es bei B2 beginnt.
    Wenn ich den Bereich in der Formel von A2 auf B2 verändere
    passiert nichts! Muss wahrscheinlich mit "irgendeiner" Zahl die Änderung erzielen, aber mit welcher?

    Gruß Micha
     
  15. Beverly

    Beverly Halbes Megabyte

    Hi Micha,

    es sind also die Spalten B, D, F, H, J, L? In diesem Fall sind es die Spalten mit der geraden Spaltennummer. Dann musst du den Codeteil Mod 2 = 1 ändern in Mod 2 = 0 und Range("A2:K26") in Range("B2:L26").

    PS: es sind keine Formeln sondern VBA-Befehle (VBA-Code). :)
     
  16. Micha_850

    Micha_850 ROM

    Hi Karin,

    >>>>>es sind also die Spalten B, D, F, H, J, L?<<<<<

    ja genau, so muss ich es eingeben (die Formeln:baeh:)

    Vielen Dank. Man weiß leider gar nicht was die Befehle bedeuten.

    Kann man eine Übersicht über Art und Weise des Eingebens im Internet bekommen (Bestimmt! aber wo?)

    Oder besser eine Broschüre oder Buch besorgen?

    Vorab noch mal vielen Dank, hat mir sehr geholfen:)

    Gruß Micha
     
  17. Beverly

    Beverly Halbes Megabyte

    Hi Micha,

    hier mal ein Link, der vielleicht als Anfang dienen kann http://www.ti5.tu-harburg.de/lecture/04ws/INF1/uebung1/uebung1.htm

    Als Buch kann ich dir auf jeden Fall den Autor Michael Kofler empfehlen - gilt eigentlich als das Standardwerk.

    Auf jeden Fall hilfreich sind natürlich die Excel-Internet-Foren, denn nicht nur beim Stellen von Fragen sondern auch beim Mitlesen in den verschiedenen Beiträgen und natürlich auch beim Antworten auf Fragen kann man das meiste lernen - das kann ich aus eigener Erfahrung bestätigen.
     
Thread Status:
Not open for further replies.

Share This Page