Office-Fragen.de
Wert nur übernehmen bei bestimmten Wert - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Wert nur übernehmen bei bestimmten Wert (/thread-28485.html)

Seiten: 1 2


Wert nur übernehmen bei bestimmten Wert - Hypothetix - 13.12.2022

Hallo zusammen,

ich habe ein kleines Problem. Für den Customer Service meiner Firma habe ich eine Personaleinsatzplan Excel entworfen.

Dort stehen untereinander die Mitarbeiter und es können von Teamleitern verschiedene Werte eingetragen werden, z.B Frühschicht, Spätschicht, aber auch Krankheit etc.


[Bild: s2.jpg]

Auf dem Bild seht ihr für die Tage 2.-6. Januar 3 Mitarbeiter mit entsprechenden Eintragungen. (K= Krankheit, U=Urlaub, F=Frühschicht) - natürlich gibt es noch viel mehr.

Für die Mitarbeiter soll so eine Liste ebenfalls zur Verfügung gestellt werden, allerdings OHNE Eintragungen wie "K" (Krankheit) bzw. andere datenschutzrelevante Punkte.
Ich suche also nach einer Möglichkeit eine identische Excel zu erstellen, die sich die Werte aus der bestehenden zieht (denn diese ist die QUelle in der gearbeitet wird), aber bestimmte Felder leer lässt sofern in der Originalversuch dort Krankheit steht.

In dem Beispiel oben müsste bei Mitarbeiter 1. Also Feld 1 und 3 blank bleiben, bei Mitarbeiter 2 alle Felder und bei Mitarbeiter 3 müsste alles übernommen werden.

Ich dachte es könnte vielleicht so funktionieren, dass ich bei der Mitarbeiterdatei irgendetwas mache wie WENN die Quelle den Buchstaben FÜ, U enthält dann copy, wenn nicht, dann nicht.....

Verstehst ihr was ich meine? Und wie realisiere ich das am besten?

TAUSEND DANK

Liebe Grüße


RE: Wert nur übernehmen bei bestimmten Wert - Flotter Feger - 13.12.2022

Hallo,

kopiere deinen Kalender in ein neues Blatt ... nur Werte ...
Markiere den betreffenden Bereich und rufe Strg-H auf.
K durch "" ersetzen oder was du noch so willst.

Sabina


RE: Wert nur übernehmen bei bestimmten Wert - Hypothetix - 13.12.2022

So kann man es natürlich auch machen. Gibt es eine Möglichkeit, dass Excel bei jedem öffnen der Datei automatisch Werte prüft und ersetzt. Also immer das "strg+h" ausführt, ohne das es vom User manuell gemacht werden muss?

DANKE bis hierhin


RE: Wert nur übernehmen bei bestimmten Wert - Hypothetix - 13.12.2022

Ich habe jetzt mal, im Kontext von Sabinas Idee, ein wenig recherchiert und folgendes gefunden und probeweise in einer neuen Arbeitsmappe getestet
VBA
Sub Test()
Range("A1").Value = Replace(Range("A1").Value, "K", "yay")
End Sub
......
Immer wenn ein K irgendwo steht macht er jetzt ein Yay draus (soll natürlich nicht bei Yay bleiben)
Aber, sobald ich die Range erweitere, also z.B. A1Tongue44 bekomme ich einen Fehler: Laufzeitfehler 13 - Typen unverträglich. Wenn ich es nur bei A1 belasse geht es.....


RE: Wert nur übernehmen bei bestimmten Wert - StefKe - 13.12.2022

Hallo, "Replace()" ist eine String-Function. Sobald diese in dem erweiterten Bereich andere Datentypen trifft, kann sie damit nix anfangen und bringt eine Fehlermeldung.

Stefan


RE: Wert nur übernehmen bei bestimmten Wert - Hypothetix - 13.12.2022

Verstehe. Danke Dir!

Wie wäre denn ein einfaches VBA, das einen definierten BEreich innerhalb eines Blatts untersucht und dort jeweils ein "K" durch ein "A" ersetzt?

Grüße,


RE: Wert nur übernehmen bei bestimmten Wert - Hypothetix - 13.12.2022

Ich glaub ich hab was gefunden:
Sub ErsetzenAlternative()

Tabelle1.UsedRange.Replace "KX", "AB", xlPart

End Sub

scheint zu klappen Smile


RE: Wert nur übernehmen bei bestimmten Wert - RPP63 - 13.12.2022

(13.12.2022, 14:10)StefKe schrieb: Hallo, "Replace()" ist eine String-Function. Sobald diese in dem erweiterten Bereich andere Datentypen trifft, kann sie damit nix anfangen und bringt eine Fehlermeldung.

Wie kommst Du denn auf diesen Trichter?
Direktfenster:
PHP-Code:
?Replace("a92Qv"2"W")
a9WQv
?Replace(1233"drei")
12drei 

@Hypothetix:
So it is!
Die Range.Replace-Methode frühstückt alle Zellen eines Bereichs in einem Zug ab.
Die Replace-Funktion müsste in einer Schleife über alle Zellen des Bereichs laufen.
Tempomäßig suboptimal.
Code:
Sub Test()
Dim Zelle As Range
For Each Zelle In Range("A9:D88")
   Zelle = Replace(Zelle, "AA", "XY")
Next
End Sub


Gruß Ralf


RE: Wert nur übernehmen bei bestimmten Wert - Flotter Feger - 13.12.2022

Kann mir mal bitte jemand erklären, was die Leute alle gegen den Makro-Rekorder haben ?

Fragen im Forum ... kriegen eine "Ablauf-Lösung zum selber machen" ... kommen aber nicht auf die Idee, sich das mal aufzuzeichnen, was sie händisch machen können.
Mit dem Rekorder ist man in 2 Minuten fertig ... und da ist schon mein "Tatergreis-Zuschlag" dabei.

DieseArbeitsmappe --> Workbook_Open ... da muss der Code rein ...

PS:
... möchte jemand eine 9-jährige adoptieren ... die gerade in die Pubertät kommt ?


RE: Wert nur übernehmen bei bestimmten Wert - Hypothetix - 14.12.2022

@RPP63 Danke Dir für deine Ausführungen. Es gibt nur ein Problem.

Ich versuche das mal zu veranschaulichen.
Wir haben eine Quelldatei A. In der machen Teamleiter Eintragungen zu Schichten für Mitarbeiter (Krankheit K, Frühsschicht FS usw)

Wir haben eine Datei B, diese ist eine abgespeckte Version von A, die die Mitarbeiter nutzen. Diese Datei zeigt die gleichen Werte in den Zellen wie in A (Formel = Wert aus A) .
Nur bestimmte Werte sollen nicht angezeigt werden. Immer wenn in Quelldatei ein (z.B.) "K" steht soll in der Zieldatei für die Mitarbeiter aus Datenschutz Gründen etwas anderes stehen.

Mit dem Code oben funktioniert es theoretisch, ABER er ändert nicht die Werte in den Zellen die aus der Quelldatei A gezogen wurden.

Also wenn ich manuell "K" in eine Zelle schreibe ändert es sich. Wenn das K aber aus QUelldatei A mittels Formel übernommen wurde ändert es sich nicht?!

...Ideen? DANKE Smile