Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Suchen und löschen
10.11.2016 16:25:59
von
Hallo liebe Leute,
ich möchte folgendes Excel Problem lösen.
Ich möchte in einem bestimmten Zellenbereich Buchstabenkombinationen (Namenskürzel) eingeben. Sobald ich eines der ungefähr 15 verschiedenen Kürzel in diesem Bereich eingebe, soll Excel das jeweils eingegebene Kürzel in einem anderen Zellbereich, wo alle Kürzel in je einer eigenen Zelle stehen, suchen und dort löschen.
Ziel ist die Planung von Ressourcen. Sobald ich einen Mitarbeiter bzw. sein Kürzel in einem bestimmten Zellbereich eintrage, soll es aus der Liste für den jeweiligen Tag gelöscht werden.
Zur Info: Unter jedem Tag gibt es die gleiche Liste. Ziel ist es, bei der täglichen Planung keinen Mitarbeiter zu vergessen. Sobald er eingestragen ist, verschwindet sein Kürzel aus dem zur Verfügung stehenden Mitarbeiter "Pool" pro Tag.
Bin gespannt auf die Lösung, ist bestimmt wieder sehr einfach wenn man weiß wie es geht.
Vielen Dank im Voraus und
beste Grüße
Andre

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und löschen
10.11.2016 16:56:19
Michael
Hi Andre,
die Geschichte läßt sich mit einer Beispieldatei besser beantworten: wo liegen jeweils die "bestimmten" Bereiche?
VBA? Formeln? Gültigkeitsprüfung mit Liste?
Schöne Grüße,
Michael
AW: Suchen und löschen
10.11.2016 17:47:49
von

Die Datei https://www.herber.de/bbs/user/109324.xlsx wurde aus Datenschutzgründen gelöscht


AW: Suchen und löschen
10.11.2016 17:46:36
von

Die Datei https://www.herber.de/bbs/user/109324.xlsx wurde aus Datenschutzgründen gelöscht


AW: finden und ausblenden ...
10.11.2016 18:07:07
...
Hallo Andre,
... eine einfache Möglichkeit (ohne VBA) wäre, die Kürzel im Bereich G11:AV## einfach unsichtbar zu schalten und zwar mit bedingter Formatierung. Markiere diesen Bereich, aktiviere bedingter Formatierung; Formel:

=ZÄHLENWENN(H$4:L$9;INDEX(G11:AV29;;(REST(SPALTE();6)=1)*SPALTE()))>0
und diesem das benutzerdefinierte Zahlenformat: ;;; zuweisen.
Gruß Werner
.. , - ...
Anzeige
AW: finden und ausblenden ...
11.11.2016 11:50:54
von
Hallo Werner,
vieelen Dank für den Lösungsansatz! mal sehen ob ich ihn umgesetzt bekomme.
Gruß
Andre
AW: finden und ausblenden ...
11.11.2016 16:12:08
von
OH..für diese Lösung sind meine Programmierkenntnisse einfach nicht gut genug.
Geht das nicht anders zu erklären?
AW: daann sieh mal ...
11.11.2016 16:52:39
von
Hallo Werner,
ich vermute meine Kenntnisse sind einfach zu schlecht.
Ich kann das leider nicht umsetzen.
Gruß
Andre
AW: dies hilft uns beiden nicht weiter ...
11.11.2016 17:19:02
...
Hallo Andre,
... ich schrieb gestern: "Markiere diesen Bereich (G11:AV##, also beispielsweise G11:AV39), aktiviere bedingter Formatierung; Formel: ..."
Mit letzterem meinte ich: Neue Formatierungsregel; Option "Formel zur Ermittlung der zu formatierenden Zellen..." und gib danach meine angegebene Formel ein.
Gruß Werner
.. , - ...
AW: Suchen und löschen
11.11.2016 16:14:31
von
Kann die Lösung leider nicht einfügen, könnt ihr das genauer beschreiben was ich machen kann?
AW: Suchen und löschen
11.11.2016 16:24:14
von
Hallo liebe Leute,
hier nochmal ein Excel Beispiel das zu dem oben formulierten Text passt und der besseren Vorstellung dienen soll.
https://www.herber.de/bbs/user/109353.xlsx
Gruß
Andre
Anzeige
AW: das ist doch die gleiche Datei, ...
11.11.2016 16:33:10
...
Hallo Andre,
... wie Du sie schon gestern eingestellt hast!?
Sieh Dir noch mal meinen vorherigen Beitrag an.
Gruß Werner
.. , - ...
AW: das ist doch die gleiche Datei, ...
11.11.2016 16:40:15
von
Hallo Werner,
ja, habe ich mir angesehen, klappt aber nicht.
In dem einen Tabellenbereich sollen die Kürzel sichtbar sein, erst wenn ich in dem anderen Tabellenbereich eines der Kürzel eingebe, soll es in dem 1. Tabellenbereich verschwinden.
Gruß
Andre
AW: und genau das wird so realisiert ...
11.11.2016 16:50:49
...
Hallo Andre,
... jedenfalls bei mir, wenn ich da so vornehme wie beschrieben.
Gruß Werner
.. , - ...
AW: und genau das wird so realisiert ...
12.11.2016 17:09:01
Michael
Hi zusammen,
ich habe es mal in die Datei gesteckt; es geht "prinzipiell", aber nicht überall: d.h. nur bis incl. Mittwoch.
In Werners Formel hatte sich außerdem ein Tippfehler eingeschlichen:
=ZÄHLENWENN(H$4:L$9;INDEX(G11:AV29;;(REST(SPALTE();6)=1)*SPALTE()))>0

Im Zählenwenn muß es statt H$4 G$4 heißen.
Datei: https://www.herber.de/bbs/user/109377.xlsx
Schöne Grüße,
Michael
Anzeige
AW: der Tippfehler ist nicht entscheidend ...
12.11.2016 17:41:07
...
Hallo Michael,
... zunächst Dir mein Dank, dass Du meine Formel geprüft hast und den Tippfehler gefunden hast.
@ Andre,
... sorry, dass ich mir nicht der Mühe unterzogen hatte, meine Formel nochmal genauer unter die Lupe zu nehmen. Ich hatte wirklich nur bis Mittwoch geprüft und somit meine Fehler nicht bemerkt.
Mein entscheidende (2.) Fehler steckte hier: anstelle ... ;INDEX(G11:AV29 ... sollte es richtig: ... INDEX($A11:AV29 ... lauten. Wobei wiederum darin AV nicht wirklich nötig sondern L ausreichend ist.
Somit lautet die Formel nunmehr:
=ZÄHLENWENN(G$4:L$9;INDEX($A11:AV29;;(REST(SPALTE();6)=1)*SPALTE()))>0
Gruß Werner
.. , - ...
Anzeige
AW: der Tippfehler ist nicht entscheidend ...
12.11.2016 18:28:51
Michael
Hallo Werner,
gerne; das 2. hatte ich auch bemerkt, aber vergessen mitzuteilen.
Ich habe nämlich ungefähr 1 Stunde mit dem Versuch verbracht, die Formel ganz zu "entfehlern" - aber sie entzieht sich (wieder mal) meinem unmittelbaren Verständnis.
Inbesondere, daß sich der "linke Bereich" spaltenweise weiterverschiebt und damit ja ... ups, genau, da passiert nix, weil sich das dann auf Zellen im Verbund bezieht, richtig?
Und mit der "rechten" Konstruktion hatte ich zunächst gedacht, eine Formulierung wie
=GANZZAHL((SPALTE()-1)/6)*6+1

(G:L = 7, M:R = 13) sei vielleicht "richtiger"...
Wie dem auch sei: mit dem neuen Ding funktioniert's!
Schöne Grüße an den "Formelmeister",
Michael
Anzeige
AW: stelle nun gerade wieder fest ...
13.11.2016 09:17:49
...
Hallo Michael,
... obwohl ich es geschrieben hatte, hab ich in der Formel nun doch wieder AV anstelle dem ausreichenden L zu stehen. Dies ist zwar nicht wirklich falsch, könnte aber möglicherweise das Formelverständnis erschweren.
Dir einen schönen Sonntag.
Gruß Werner
.. , - ...
AW: stelle nun gerade wieder fest ...
13.11.2016 15:06:55
Michael
Hallo Werner,
ob AV oder L erschwert mein Verständnis nicht; eher daß Du stillschweigend G durch A ersetzt hast...
Aber, ehrlich gesagt, ich mag mich jetzt auch nicht weiter vertiefen - wenn das mein Problem wäre, würde ich eine VBA-Lösung erstellen, evtl. mit einer Gültigkeitsliste: vor allem wegen der "fortzuführenden" Datenstruktur (die ich lieber um 90° drehen würde), die immer wieder eine Erweiterung der bed. Form. erfordert.
Ansonsten ist ja auch Sonntag: Dir auch einen schönen...
Gruß,
Michael
Anzeige
AW: da hast Du möglicherweise etwas überlesen ...
13.11.2016 15:38:02
...
Hallo Michael,
... denn ich hab keinesfalls stillschweigend G durch A ersetzt.
Ich schrieb:
"Mein entscheidender (2.) Fehler steckte hier: anstelle ... ;INDEX(G11:AV29 ... sollte es richtig: ... INDEX($A11:AV29 ... lauten."
Mein Hinweis bzgl. des evtl. erschwerten "Verständnisses" war wohl insofern missverständlich, weil dieser nicht an Dich gerichtet sein sollte sondern ich hierbei an den Fragesteller gedacht hatte.
Gruß Werner
.. , - ...
mein Fehler...
13.11.2016 17:52:43
Michael
Hallo Werner,
sorry, bin schon voll verpeilt...
Schöne Grüße,
Michael
AW: mein Fehler...
14.11.2016 16:31:07
von
Hallo liebe Excel Freunde,
als erstes möchte ich mich für die große Hilfsbereitschaft und die tollen Lösungsvorschläge seitens des Forum bedanken!
Ich bekomme die Lösung aber leider nicht umgesetzt :-(
..die Formel, die ihr bereits genannt habt konnte ich aus irgendwelchen Gründen leider nicht wie vorgesehen an diese Stelle kopieren..gggrgrr
-- und wie ich damit umgegangen bin:
- habe versucht die Lösung probehalber in einem leeren Excel Dokument anzuwenden
- in dem Bereich G$4:L$9 wollte ich die unter $A11:AV29 beispielhaft genannten Abkürzungen eingeben, diese sollten dann eigentlich nach meinem Verständnis im Bereich $A11:AV29 verschwinden. Es ist aber nicht passiert.
- die oben genannte Formel habe ich unter Bedingter Formatierung Neue Regel Formel zur Ermittlung der zu formatierenden Zellen verwenden eingetragen. Als anzuwendenden Bereich habe ich G$4:L$9 ausgewählt.
Leider hat es aber nicht funktioniert, was habe ich falsch gemacht?
Beste Grüße
Andre
Anzeige
AW: mein Fehler...
14.11.2016 16:34:24
von
Hallo,
die Formel die ich genutzt habe ist aus dem Beitrag vom 12.11.16 um 17.41 Uhr.
Gruß
Andre
AW: mein Fehler...
14.11.2016 16:36:13
von
Archiv-IDX Datum Thema
1524097 2016-11-10 16:25:59 Suchen und löschen
...aus diesem Beitrag
AW: dazu schlage ich nun vor ...
16.11.2016 13:08:35
...
Hallo Andre,
... dass Du Deine Datei, wo Du meinen Formelvorschlag eingesetzt hast, hier noch einmal einstellst.
Dann kann ich feststellen, wo Dein Problem ab Schopf zu fassen ist.
Gruß Werner
.. , - ...
Doch mal mit Makro
16.11.2016 19:38:36
Michael
Hi zusammen,
es hat mich mal interessiert, ob das so hinhauen könnte:
Option Explicit
Const abSp = 7, abZ = 4, bisZ = 9, Nvon = 11, Nbis = 25
Dim aNamen, aNok As Boolean, liSpLetzte&, letzter As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim bisSp&, liSp&, z&, y&
Dim aEin, aFix, sEin$, sList$
bisSp = Cells(3, Columns.Count).End(xlToLeft).Column + 5
If Not aNok Then aNamen = Range(Cells(Nvon, abSp), Cells(Nbis, abSp)): aNok = True
If Not Intersect(Target, Range(Cells(abZ, abSp), Cells(bisZ, bisSp))) Is Nothing Then
liSp = Int((Target.Column - 1) / 6) * 6 + 1
If liSp = liSpLetzte Then
If letzter Then MsgBox "keiner mehr da": Exit Sub
Else
letzter = False
End If
aEin = Range(Cells(abZ, liSp), Cells(bisZ, liSp + 5))
For z = 1 To UBound(aEin)
For y = 1 To UBound(aEin, 2)
If aEin(z, y)  "" Then sEin = sEin & aEin(z, y) & ","
Next
Next
If Trim(Target.Text)  "" Then y = 1: sList = Target.Text & "," Else y = 0
For z = 1 To UBound(aNamen)
If InStr(sEin, aNamen(z, 1)) = 0 Then sList = sList & aNamen(z, 1) & ",": y = y + 1
Next
If y > 0 Then sList = Left(sList, Len(sList) - 1)
Range(Cells(abZ, abSp), Cells(bisZ, bisSp)).Validation.Delete ' alle fort, die evtl. da sind
If y 

Die Datei: https://www.herber.de/bbs/user/109487.xlsm
Die Grundidee ist, daß ein Gültigkeitskreis in die eben angeklickte Zelle eingefügt wird, in dem nur die noch verfügbaren Namen angezeigt bzw. gewählt werden können.
Das führt zwar dazu, daß man die Zelle zweimal anklicken muß, dafür spart man sich händische Eingaben und vermeidet damit auch Tippfehler.
Weiterhin färbe ich die Kopfzeile je nach dem, ob alle MA bereits verwurschtelt wurden.
Das Makro greift bis auf weiteres IMMER auf die eine Liste mit MA zu, eigentlich aus Zeitersparnisgründen, was aber den Nachteil hat, daß Urlaube o.ä. nicht berücksichtigt werden. Es ist aber ein Klacks, das so zu ändern, daß wie bisher immer eine MA-Spalte pro Tag verwendet wird.
Das würde dann so aussehen (also z.B. für Tabelle1):
Option Explicit
Const abSp = 7, abZ = 4, bisZ = 9, Nvon = 11, Nbis = 25
Dim liSpLetzte&, letzter As Boolean, aNok As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim bisSp&, liSp&, z&, y&
Dim aEin, aFix, sEin$, sList$
Dim aNamen
bisSp = Cells(3, Columns.Count).End(xlToLeft).Column + 5
If Not Intersect(Target, Range(Cells(abZ, abSp), Cells(bisZ, bisSp))) Is Nothing Then
liSp = Int((Target.Column - 1) / 6) * 6 + 1
If liSp = liSpLetzte Then
If letzter Then
If Not aNok Then aNamen = Range(Cells(Nvon, liSp), Cells(Nbis, liSp)): aNok = True
Cells(abZ - 1, liSp).Resize(, 6).Interior.Color = vbGreen
MsgBox "keiner mehr da"
Exit Sub
End If
Else
aNamen = Range(Cells(Nvon, liSp), Cells(Nbis, liSp)): aNok = True
letzter = False
End If
aEin = Range(Cells(abZ, liSp), Cells(bisZ, liSp + 5))
For z = 1 To UBound(aEin)
For y = 1 To UBound(aEin, 2)
If aEin(z, y)  "" Then sEin = sEin & aEin(z, y) & ","
Next
Next
If Trim(Target.Text)  "" Then y = 1: sList = Target.Text & "," Else y = 0
For z = 1 To UBound(aNamen)
If InStr(sEin, aNamen(z, 1)) = 0 Then sList = sList & aNamen(z, 1) & ",": y = y + 1
Next
If y > 0 Then sList = Left(sList, Len(sList) - 1)
Range(Cells(abZ, abSp), Cells(bisZ, bisSp)).Validation.Delete ' alle fort, die evtl. da sind
If y 

Der Vorteil vom Makro ist, daß es nach rechts offen ist, d.h. wenn Tage hinzukommen, läuft es trotzdem brav weiter.
Allerdings muß man einige Konstanten ändern, falls die Struktur erweitert wird:
abSp = 7 = Spalte G, ab hier stehen Einträge
abZ = 4 = Zeile 4, hier beginnen die Tätigkeiten
bisZ = 9 = unterste Zeile der Tätigkeiten
Nvon = 11 = oberste Zeile mit Namen
Nbis = 25 = unterste Zeile mit Namen.
Schöne Grüße,
Michael
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige