Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wert nur übernehmen bei bestimmten Wert
#1
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
Zitieren
#2
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
Zitieren
#3
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
Zitieren
#4
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.....
Zitieren
#5
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
Zitieren
#6
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,
Zitieren
#7
Ich glaub ich hab was gefunden:
Sub ErsetzenAlternative()

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

End Sub

scheint zu klappen Smile
Zitieren
#8
(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
Zitieren
#9
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 ?
Zitieren
#10
@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
Zitieren


Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions