3.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Liebe Forumsmitglieder,
habe mir hier schon viel Hilfe im Forum holen können, aber dieses Mal komm ich irgendwie nicht weiter.
Ausgangslage
Tabellenblatt 1: (Planungsliste)
Übersicht aller Positionen von denen Tabellenblätter vorhanden sind, insgesamt 31 Zeilen. In Spalte S in der Übersicht Soll ein orangener Punkt angezeigt werden (Arial Schriftgröße: 100 Punkte, Farbe Orange) Wenn hinten im Tabellenblatt zur zugehörigen Zeile im DropDown Menü "Ja" ausgewählt wird. Soweit kein Problem über eine Wenn Funktion

=WENN(leer1!Y$7=2;"kein O-Punkt erteilt!";"•")

Jedoch wird mir nun wenn ich imDrop Down Menü "nein" auswähle, "kein O-Punkt erteilt!" auch in Orange und Schriftgröße 100 angezeigt, das soll aber in Schriftgröße 8 und in schwarz erfolgen.

Hier beginnt nun das eigentliche Problem.
Hat jemand ne Idee wie das Makro aussehen muss, damit ich das in Spalte S welche über das DropDown Menü automatisch befüllt wird, damit entweder der Punkt oder der Text richtig angezeigt wird? Wichtig: Die Spalte S ist auch über einen Blattschutz gegen Eingaben gesperrt.

Komme hier leider nicht weiter und es ist sehr dringend!

Vielen Dank im Voraus für Eure Hilfe

David

16 Antworten

0 Punkte
Beantwortet von
Hallo David,
vielleicht kannst du ja eine Musterdatei ins Forum stellen.

http://www.file-upload.net/

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo fedjo,
würde ich gerne machen, jedoch unterliegt die Datei der Geheimhaltung.
Somit kann ich sie nicht anhängen.

Gruß David
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Dave,

vielleicht ist die Seite ein Ansatz bedingte Formatierung per VBA

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Hajom
die Datei ist etwas unübersichtlich, und als VBA Anfänger komm ich damit warscheinlich nicht zurecht...

Danke trotzdem!
0 Punkte
Beantwortet von
Hi,

Dann mal angepasst an Deine Wünsche, so wie ich sie verstanden habe:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngZelle As Range
Me.Unprotect Password:="DeinPasswort" 'BlattSchutz aufheben
For Each rngZelle In Range("S1:S31") 'für jede Zelle im Bereich S1:S31
If rngZelle.Value = "•" Then 'wenn der Inhalt "•"
With rngZelle.Font 'mit den Schrifteigenschaften dieser Zelle
.ColorIndex = 44 'Farbe Orange
.name = "Arial" 'Schrift "Arial"
.Size = 100 'Größe 100
End With 'MIT-Ende
Else 'anderer Inhalt als ein "•"
With rngZelle.Font
.ColorIndex = xlAutomatic 'Farbe auf Auto (=1 wäre Schwarz)
.Size = 8 'Größe 8
.name = "Arial" 'Schrift "Arial
End With
End If
Next
Me.Protect Password:="DeinPasswort" 'Blattschutz einschalten
End Sub


Kopiere diesen Code im VBA-Editor in das Projekt Deiner Tabelle (Planungsliste). Eine bebilderte Anleitung dazu finder Du auf der Seite des SN-Members coros in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 . Testen würde ich es an Deiner Stelle dann zuerst in einer zuvor angelegten (Sicherheits-) Kopie der Originaldatei.

Ist der Blattschutz ohne Passwort angelegt, entferne die Anweisungen Password:="DeinPasswort" aus dem Code. Andernfalls trage zwischen den "" Dein wirkliches Passwort ein.

bye
malSchauen
0 Punkte
Beantwortet von
Hallo mal schauen,
das makro funktioniert soweit wunderbar! Nur gibt es ein Problem! Das DropDown Menü gibt ne 1 oder ne 2 zurück. Welches ich für die Wenn Funktion brauche!

=WENN(leer1!Y$7=2;"kein O-Punkt erteilt!";"•")
Ich weiß nicht woran es liegt, wenn ich 1 oder 2 direkt in die Zelle eintrage, und ENTER drücke, funktioniert alles bestens, wenn ich jedoch über das DropDown Menü das mache, ändert sich der Zellinhalt aber nicht die Formatierung!

Weist Du noch einen Rat?

Grüße
David
0 Punkte
Beantwortet von
Hallo malSchauen,

kann es sein das es dran liegt, das ich auf zwei verschiedenen Tabellenblättern arbeite?

Gruß David
0 Punkte
Beantwortet von
Hi,

Hmmm... Bei dieser Konstellation wird das Worksheet_Change-Ereignis überhaupt nicht ausgelöst. Das wusste ich so auch noch nicht. Ändere mal die erste Zeile des Codes aus AW5 von:
Private Sub Worksheet_Change(ByVal Target As Range)
in
Private Sub Worksheet_Calculate()
Dann sollte passen.

bye
malSchauen
0 Punkte
Beantwortet von
Hallo malSchauen,

Vielen Vielen Dank für deine Hilfe!

Jetzt funktioniert es perfekt!!!

Danke!

Gruß David
0 Punkte
Beantwortet von
Hallo malSchauen,
eine Frage hätte ich noch, wenn ich jetzt in einem meinen hinteren Blättern was eingebe und Enter drücke, springt er ganz kurz wieder auf die Planungsliste und wieder zurück. Das geschieht innerhalb von wenigen millisekunden.
Ist zwar schöner Wohnen, aber gibts da irgend eine Abhilfe?

Grüße David
...