MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 10.09.2017, 12:45   #16
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
Entschuldigung das ich mich erst jetzt wieder melde, ich war voll im Arbeitsstress, neuer Job, neue Schwierigkeiten.

Du hast natürlich recht, oft ist man einfach nur zu träge.

Ich werde eine Tabelle aufbauen und sie hier hochladen. Ich hab auch schon einen Lösungsansatz gefunden.


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("B60:B100")
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Bereich, Target) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(Bereich, Target.Value) > 1 Then
MsgBox ("Doppelter Eintrag nicht zulässig")
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Target.Select
End If
End Sub

Mein Problem bei diesem Code ist, das der Bereich nicht passt und ich nicht weiß wie ich diesen richtig verändere.
Ich habe mehrere Spalten und in diesen dann mehrere Gruppen mit Zellen, wobei jede Spalte für sich auf doppelte Inhalte geprüft werden müsste.

Gruß
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.09.2017, 18:20   #17
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

Zitat:

Ich hab auch schon einen Lösungsansatz gefunden.

Der Code kommt mir bekannt vor !

Zitat:

Ich habe mehrere Spalten und in diesen dann mehrere Gruppen mit Zellen, wobei jede Spalte für sich auf doppelte Inhalte geprüft werden müsste.

Und in jeder dieser Zellen ist ein Wert per Datenprüfung auswählbar ?

Wo ist nun das Problem, hier die einzelnen Datenbereiche zu nennen ?
Den Code passen wir dann schon entsprechend an !

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.09.2017, 19:32   #18
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys.
Den Code habe ich beim rumstöbern im Internet gefunden.

http://www.herber.de/forum/archiv/81...erhindern.html

Die Spalten und Gruppen von Zellen nenne ich dir noch.

Gruß
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.09.2017, 19:51   #19
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

Zitat:

Den Code habe ich beim rumstöbern im Internet gefunden.

Da könnte man den Eindruck gewinnen, dass Du die Beiträge hier im Forum zu Deinem Problem gar nicht zur Kenntnis nimmst (siehe meinen Beitrag, die #11, zu diesem Thread).

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.09.2017, 18:02   #20
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
dem ist wirklich nicht so! ! !
Ich hatte mir deine VBA-Lösung in der Tabelle angesehen, war aber zu diesem Zeitpunkt noch so fokussiert und hoffnungsvoll auf eine Formel- oder Regellösung in Excel, dass ich deinen sinnvollen Beitrag einfach nicht mehr in Erinnerung hatte, als ich mich noch mal in den weiten des Internets auf die Suche machte.
Tut mir wirklich leid, das das jetzt diesen Eindruck auf dich macht.
Ich hoffe du bist mir nicht böse und hast noch Lust mich bei meinem Problem weiter zu unterstützen.
Gruß
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.09.2017, 18:10   #21
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

Zitat:

Tut mir wirklich leid, das das jetzt diesen Eindruck auf dich macht.

ok - Du hast die Sache ja jetzt aufgklärt !

Jetzt zu Deinem Problem: Du wolltest ja noch eine Beispiel-Datei mit verschiedenen Spalten mit Datenprüfung zu Verfügung stellen.
In diesem Zusammenhang wäre noch interessant, ob in den einzelnen Bereichen jeweils eine andere Datenprüfung enthalten ist.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.09.2017, 18:41   #22
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
Das freut mich sehr.

Nun zu deiner Frage:
Nein, in allen Zellen bzw. Zellengruppen wird der selbe Inhalt abgeprüft.
Es handelt sich immer um ca. 100 bis 200 Namen.

Leider kann ich dir heute noch keine Infos senden, da ich meinen USB-Stick mit der vorbereiteten Tabelle und auch die spätere "Produktiv-Tabelle am Arbeitsplatz vergessen habe.

Aber Morgen ist ja auch noch ein Tag.
Ich melde mich gleich morgen früh.

Gruß
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 17:15   #23
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,

Als Vorab-Info handelt es sich um folgende Spalten auf dem Register "Personalkalender":
"J bis NW"
In jeder Spalte sind es die Zellen bzw Zellengruppen in den Reihen:
"9-14, 16-25, 27-36, 38-47, 49-58, 60-69, 71-80, 82-87, 89-98, 100-109, 111-116, 118-123 und 140-159"
in jeder Zelle ist ein Dropdown-Menü das auf die Mitarbeiter des Registers "Daten_EVK-6" der Spalte "AM" zugreift.

Die Namen befinden sich auf den Register mit dem Namen "Daten_EVK-6"
in der Spalte:
"AM"
und den Zellen:
3-104

Eine Mustertabelle baue ich gerade auf und schiebe ich in das Forum nach, sowie sie fertig ist.

MfG
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 03:22   #24
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
jetzt hab ich auch die Testtabelle fertig. Mußte ein paar unwichtige Formatierungen, Formeln usw. entfernen, und die Datei als WinRar-Datei komprimieren, da sie für den Upload zu groß war. Hast du eine Idee wie man größere Dateien verschickt.
Gruß
Heiko
Angehängte Dateien
Dateityp: rar Test_doppelte Einträge verhindern verkl.rar (190,8 KB, 0x aufgerufen)
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 03:31   #25
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
bitte diese Datei nehmen hatte noch einen Fehler gefunden (ist wahrscheinlich noch zu früh). Jetzt sollte aber alles stimmen.

Grüße und gute Schlafruhe
Heiko
Angehängte Dateien
Dateityp: rar Test_doppelte Einträge verhindern verkl.rar (182,3 KB, 2x aufgerufen)
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 08:32   #26
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

da hast Du Dir ja viel Mühe gegeben; das ist ja mehr als ich brauche.

Aber eine Frage ist für mich noch offen: was heisst hier Doppelüberprüfung ?
Ein bestimmter Name darf in einer Spalte (sprich: an einem Tag) nur einmal auftreten oder ?

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 15:56   #27
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Aloys,
genau, jeder Name darf pro Spalte (Also Tag) nur einmal auftauchen, der untere Bereich von Reihe 140 bis 159 ist der Bereich der ungeplanten Abwesenheit (Krank) und geplanten Abwesenheit (z.B. Urlaub).

Wenn ein Name in einer Spalte von dem Zellenbereichen für Abwesenheit bereits eingetragen ist und man versucht den Namen ein weiteres Mal in der selben Spalte, in den Reihen 9 bis 123 einzugeben, soll dies mit einem Hinweis "Mitarbeiter ist an diesem Tag bereits geplant oder ungeplant Abwesend gemeldet" unterbunden werden.

Ist ein Mitarbeiter zuerst in der Spalte, der Reihen 9-123 eingegeben und wird versucht den Namen in der selben Spalte, der Reihen 140 bis 159 einzugeben, soll der Hinweistext "Mitarbeiter wurde dem Projekt bereits einmal zugewiesen"
erscheinen und die Aktion soll ebenfalls unterbunden werden.

Wenn versucht wird einen Mitarbeiter, in einer Spalte der Reihen 9 bis 123 mehrfach (mehr als einmal) einzugeben soll dies mit dem Hinweis "Ein Mitarbeiter kann nur einmal pro Tag und Projekt eingesetzt werden" unterbunden werden.

Wenn versucht wird, einen Mitarbeiter in einer Spalte der Reihen 140 bis 159 mehrfach (Mehr als einmal) einzugeben soll dies mit dem Hinweis "Ein Mitarbeiter kann nur einmal pro Tag als geplant oder ungeplant Abwesend eingetragen werden.

So ich hoffe jetzt hab ich alles richtig erklärt.

LG
Heiko
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 23:33   #28
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

mein Lösungsvorschlag:
Code:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range                           ' aktueller Spaltenbereich Anwesenheit
    Dim rng2 As Range                           ' aktuelle Spaltenbereich Abwesenheit (ungeplante und geplante)
    Dim sMSG As String                          ' Text Fehlernachricht
    Dim a As Long                               ' Index Array
    Dim c As Long                               ' Spalte Target
    
'----------------------------------------------------------------------------------------------------------
' Fehlernachrichten
'   Name ist im Zellenbereichen für Abwesenheit bereits eingetragen,
'   Fehlernachricht beim Versucht, den Namen ein weiteres Mal in der selben Spalte unter Anwesenheit einzutragen.
    Const sMsg11 As String = "Mitarbeiter ist an diesem Tag bereits geplant oder ungeplant abwesend gemeldet !"
    
'   Ein Mitarbeiter ist bereits unter Anwesenheit gespeichert:
'   Fehlernachricht für Versuch den Namen für den gleichen Tag noch einmal einzuspeichern.
    Const sMSG12 As String = "Ein Mitarbeiter kann nur einmal pro Tag und Projekt eingesetzt werden !"
    
'   Ein Mitarbeiter ist bereits unter Anwesenheit eingetragen;
'   Fehlernachricht beim Versuch, den Namen in der selben Spalte unter Abwesenheit einzutragen.
    Const sMSG21 As String = "Mitarbeiter wurde dem Projekt bereits einmal zugewiesen"
    
'   Name ist unter Abwesenheit eingetragen;
'   Fehlernachricht für Versuch, den Namen hier ein weiteres Mal einzutragen.
    Const sMSG22 As String = "Ein Mitarbeiter kann nur einmal pro Tag bei Abwesenheit eingetragen werden !"
'----------------------------------------------------------------------------------------------------------
    
' prüfe, ob Änderung innerhalb des Spaltenbereiches Anwesenheit / Anwesenheit
    c = Target.Column                                                       ' Spalten# Eingabe
    If c < Range("J1").Column Or c > Range("NW1").Column Then Exit Sub      ' außerhalb Spaltenbereich
    
' Vorbereiten Detailprüfungen
    If Target.Count = 1 Then
        Set rng1 = Range(Cells(9, c), Cells(123, c))                        ' Bereich Anwesenheit
        Set rng2 = Range(Cells(140, c), Cells(159, c))                      ' Bereich Abwesenheit
        
' Eingabe im Bereich Anwesenheit
        If Not Intersect(rng1, Target) Is Nothing Then
            If WorksheetFunction.CountIf(rng1, Target) > 1 Then                 ' eingegebener Name ist schon in Anwesenheit enthalten
                sMSG = sMSG12
            ElseIf WorksheetFunction.CountIf(rng2, Target) > 0 Then             ' eingegebener Name ist auch bei Abwesenheit enthalten
                sMSG = sMsg11
            End If
        
' Eingabe im Bereich Abwesenheit
        ElseIf Not Intersect(rng2, Target) Is Nothing Then
            If WorksheetFunction.CountIf(rng1, Target) > 0 Then                 ' eingegebener Name ist schon in Anwesenheit enthalten
                sMSG = sMSG21
            ElseIf WorksheetFunction.CountIf(rng2, Target) > 1 Then             ' eingegebener Name ist schon in Abwesenheit enthalten
                sMSG = sMSG22
            End If
        End If
    
    Else
        sMSG = "Es darf jeweils nur 1 Zelle verändert werden !"                 ' es darf nur 1 Zelle geändert werden
    End If
    
' Prüfungen abgeschlossen.
' Wenn Fehler vorlag, dann Eingabe rückgängig machen und Fehlernachricht ausgeben
    If sMSG <> "" Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        MsgBox sMSG, vbExclamation
    End If
End Sub
Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.09.2017, 02:53   #29
NetMaster1001
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Bernhard,
Genial !!! In der Testdatei funktioniert alles Perfekt.

Nur in meiner Produktivdatei, kann ich keine Mitarbeiter die bereits in der Liste eingetragen sind, mehr Löschen (der Name kommt aber an keiner Stelle in dieser Spalte mehr vor) . Ich bekomme eine Fehlermeldung (siehe hochgeladenes Bild) der Name bleibt erhalten.

Ist es möglich, das es mit den von mir eingesetzten Matrixformeln in den Reihen 15, 26, 37, 48, 59, 70, 81,88, 99, 110, 117, 124, 128 und 163 Probleme gibt.
Die Formel führen Berechnungen in den jeweils darüber liegenden Zellen ihrer jeweiligen Spalte aus.

Gruß
Heiko
Angehängte Grafiken
Dateityp: jpg Fehlermeldung beim Versuch des löschens.jpg (43,8 KB, 4x aufgerufen)
NetMaster1001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.09.2017, 06:25   #30
aloys78
MOF Meister
MOF Meister
Standard

Hallo Heiko,

Zitat:

Hallo Bernhard

Wen meinst Du damit ?

Zitat:

Ist es möglich, das es mit den von mir eingesetzten Matrixformeln in den Reihen 15, 26, 37, 48, 59, 70, 81,88, 99, 110, 117, 124, 128 und 163 Probleme gibt.

Ja - das is so ?
Weil ich davon ausging, dass diese (Zwischen-)Zeilen immer leer bleiben.

Das zu ändern, ist aber kein Problem; komme aber frühestens heute Abend dazu.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.