04.10.2016, 20:44 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2016, 14:27 von Rabe.
Bearbeitungsgrund: redundante Zeilenumbrüche entfernt
)
Hallo Gemeinde :19: :19: :19:
ich habe hier ein Problem und würde mich freuen wenn sich jemand der hoch geladenen Arbeitsmappe annehmen würde. Es ist mir eine große Hilfe wenn man das nach meiner Beschreibung hinbekommen kann.
Vielen Dank schon mal im Voraus
Beschreibung:
Unter Punkt 1 sind bei „Anforderungen Erfüllt?“ drei farblich hinterlegte Felder dargestellt. Bei einmal Klick soll sich das Feld entsprechen einfärben wobei nur Eins der Felder anklick bar sein soll. Für die Korrektur klickt man das falsch gewählte Feld an um es zurückzusetzen und ein anderes frei wird. So die Funktion für alle Punkte ( Spalte B )
Rechts sind ebenfalls unter Punkt 1, 2 Felder farbig hinterlegt. Hier soll es genauso wie oben beschrieben funktionieren, nur wenn man „ja“ anklickt, soll zusätzlich ein Kontexfeld aufgehen in dem ich mehrere Lösungsmöglichkeiten eintragen kann (und in diesem Feld auch gespeichert wird) und einzelne Möglichkeiten anklicken kann, die wiederum in einer extra Liste (Arbeitsmappe) unter Angabe der Nr. ( Spalte B ) und unter Sortierung der "Risikostufe" zuerst alle unter Hoch, dann alle unter Mittel und letzte unter Niedrig sortiert werden.
Unter diesem Feld "ja" soll von Verwendung zu Verwendung die alten Eintragungen erscheinen und neue hinzu gefügt werden können.
Ich hoffe das ist möglich und nicht zu viel verlangt. Ich kann mir vorstellen das dies eine Hammer Arbeit ist oder?
04.10.2016, 22:30 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2016, 14:28 von Rabe.)
Hallo,
es ist keine "Hammer-Arbeit", aber eine Fleissaufgabe, da die Datenstruktur sich nicht an Tabellen, sondern an einem Druckformat orientiert.
Die eigentlichen Befehle für einen Block sind recht einfach, sich für diese vielen Zeilen eine effiziente, d.h. einfache Programmstruktur auszudenken, ist nicht trivial.
Wenn ich innerhalb von 5 Minuten keine vielversprechende Idee habe, werde ich es gerne anderen überlassen.
hier ein Code, der die Farbe setzt und im Falle einer Fehleingabe wieder zurücksetzt.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Farbe = Array(43, 46, 44) 'ja/nein/nicht zutreffend
If Intersect(Target, Union(Range("I:K"), Range("Z:AA"))) Is Nothing Then Exit Sub If Target.MergeCells = False Then Select Case Target.Value Case "ja" Fa = 0 Case "nein" Fa = 1 End Select With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(Fa), xlNone) End With Else With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(2), xlNone) End With End If End Sub
Den zweiten Teil der Frage überblicke ich nicht, aber das Zeitbudget für die Antwort ist erschöpft. Es brauchte dann doch ein paar Versuche.
der folgende Code ist noch etwas optimiert und muss den anderen ersetzen:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Farbe = Array(43, 46, 44) 'ja/nein/nicht zutreffend
If Intersect(Target, Union(Range("I:K"), Range("Z:AA"))) Is Nothing Then Exit Sub If Target.MergeCells = True Then With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(2), xlNone) If .ColorIndex <> xlNone Then Target.Cells(1).Offset(-2).Interior.ColorIndex = xlNone Target.Cells(1).Offset(-2).Offset(0, 2).Interior.ColorIndex = xlNone End If End With
Else If Target.Value <> "" Then Select Case Target.Value Case "ja" Fa = 0 Target.Offset(, 2).Interior.ColorIndex = xlNone Target.Offset(2).MergeArea.Interior.ColorIndex = xlNone Case "nein" Fa = 1 Target.Offset(, -2).Interior.ColorIndex = xlNone Target.Offset(2).MergeArea.Interior.ColorIndex = xlNone End Select With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(Fa), xlNone) End With End If End If End Sub
Es gibt so viele Varianten, dass ich es nicht kürzer hinbekommen habe.
du hast eine nette kleine Übungsaufgabe geliefert: vielen Dank!
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Farbe = Array(43, 46, 44) 'ja/nein/nicht zutreffend
If Intersect(Target, Union(Range("I:K"), Range("Z:AA"))) Is Nothing Then Exit Sub If Target.MergeCells = True Then With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(2), xlNone) If .ColorIndex <> xlNone Then Target.Cells(1).Offset(-2).Interior.ColorIndex = xlNone Target.Cells(1).Offset(-2).Offset(0, 2).Interior.ColorIndex = xlNone End If End With
Else If Len(Target.Value) > 1 Then If Target.Column < 12 Then o = 2 Else o = 1 End If
Select Case Target.Value Case "ja" Fa = 0 Target.Offset(, o).Interior.ColorIndex = xlNone Case "nein" Fa = 1 Target.Offset(, -o).Interior.ColorIndex = xlNone End Select With Target.Interior .ColorIndex = IIf(.ColorIndex = xlNone, Farbe(Fa), xlNone) End With Target.Offset(2).MergeArea.Interior.ColorIndex = xlNone End If End If End Sub
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • wolle1
05.10.2016, 21:47 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2016, 14:30 von Rabe.
Bearbeitungsgrund: redundante Zeilenumbrüche entfernt
)
Hallo Fennek,
Danke, dass du dich damit beschäftigst, die Aufgabe kann nur im Ganzen sinnvoll sein und zum Ergebnis führen.
Du hattest im 2. Teil der Beschreibung etwas nicht verstanden? Es wäre schön wenn du die VBA Programmierung direkt in die Arbeitsmappe einfügen kannst und als Anhang schickst. Eine nette kleine Übungsaufgabe – na ja ist sicher ironisch gemeint, aber wenn ich so darüber nachdenke, wiederholt es sich von Absatz zu Absatz. Die Ganzheit der Aufgabe, nicht nur die farbliche Hinterlegung der Felder, sollte in Angriff genommen werden und dann führt es zum Ergebnis.
Sollte noch zum 2. Teil der Beschreibung Fragen geben (wobei ich in meiner Unkenntnis vieleicht nicht mit fach Ausdrücken rüber komme) bitte ich dich noch nachzuhaken.
Diese Arbeitsmappe ist sehr wichtig für mich und es ist lobenswert, wenn es Menschen wie dich gibt die in ihrem Fachbereich helfen, ähnlich wie ich im Aufzugsbereich. Ich wünsche einen schönen Abend und einen geruhsamen Schlaf.
wenn man es sehr bieder interpretiert, dann kann man meinen Kommentar ironische nennen. Etwas ausführlicher, ich antworte hier um zu üben und meine xl-Fähigkeiten zu verbessern. In keinem Fall bin ich ein kostenloser Dienstleister bzw handele als kostenloses help-desk zum Wohle von MS$.
Zitat: "Ein Kontexfeld aufgehen in dem ich mehrere Lösungsmöglichkeiten
Eintragen kann (und in diesem Feld auch gespeichert wird)"
Noch blumiger kann man das nicht ausdrücken und auch nach dreimal lesen weis ich immer noch nicht, was du willst.
Also: dum kannst meinen Makro nehmen und mit den Farben spielen. Für alles weitere empfehle ich einen Dienstleister.
08.10.2016, 22:02 (Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2016, 22:04 von Käpt'n Blaubär.
Bearbeitungsgrund: Richtigstellung eines Wertes
)
Hallo Günter,
Zitat:Push! (Falls sich noch jemand der Frage annehmen möchte)
Gut gemeint, aber ... ich weiß ja, daß man mir desöfteren vorwirft, zu hart mit den TE's in's Gericht zu gehen. Um weiteren Vorwürfen aus dem Wege zu gehen werde ich versuchen, sehr vorsichtig zu sein. Vielleicht klappt es ja :05:
Nicht nur Fennek hat das Vorhaben des TE nach mehrmaligem Lesen nicht verstanden. Vom TE kommt weiterhin nicht die benötigte Aufklärung über den Sachverhalt, sondern es werden lediglich nur, wie Fennek es nannte, blumige Umschreibungen geliefert.
Die Beispieldatei des TE wurde inzwischen 11 mal downgeloaden bei 152 Ansichten. Es mangelt also nicht am Interesse der Helfer, aber es gibt nichts Greifbares, wo man mit der Hilfe ansetzen könnte. Was zum Beispiel kann man programmieren, wenn man solch eine Aussage bekommen hat:
Zitat:In einer extra Liste (Arbeitsmappe) unter Angabe der Nr. ( Spalte B ) und unter Sortierung Der "Risikostufe" zuerst alle unter Hoch dann alle unter Mittel und letzte Unter Niedrig sortiert werden.
Unter diesem Feld "ja" soll von Verwendung zu Verwendung die alten Eintragungen erscheinen und neue hinzu gefügt werden können.
Ich hoffe das ist möglich und nicht zu viel verlangt. Ich kann mir vorstellen das dies eine Hammer Arbeit ist oder?
Die Antwort auf meine eigene Frage ... NIX
Der Thread lautet: Erbitte Profi Hilfe ... vielleicht liegt's ja daran. Profi's kosten eben, aber auch das hat Fennek ja schon geschrieben. Ich weiß nicht, wer sich hier als Profi bezeichnet. Ich jedenfalls bin keiner und ich bin auch, was hier vielleicht noch angesagter wäre, kein Hellseher.
So, und nun darf man wieder fröhlich mit mir schimpfen