Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erbitte Profi Hilfe
#1
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?

liebe Grüße 
Wolfgang


Angehängte Dateien
.xlsx   Gefährdungsbeurteilung test.xlsx (Größe: 131,26 KB / Downloads: 13)
Antworten Top
#2
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.

mfg
Antworten Top
#3
Hallo,

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.

mfg
Antworten Top
#4
Hallo,

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.

mfg
Antworten Top
#5
Hallo Fennek,

Danke für deine Mühen

was verstehst du im zweiten Teil der Frage nicht?

und könntest du die Formeln gleich in das Arbeitsblatt einfügen und im Anhang zurücksenden denn so hatte es Ralf Ende Dezember für mich gemacht.

bis bald

Wolfgang
Antworten Top
#6
Hi,

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:
  • wolle1
Antworten Top
#7
Hallo Fennek, Blush
 
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.

Mit freundlichen Grüßen
Wolfgang
Antworten Top
#8
Hi,

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.

EDEKo (Ende der Kommunikation)

mfg
Antworten Top
#9
Push! (Falls sich noch jemand der Frage annehmen möchte)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#10
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
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste