Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
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
Inhaltsverzeichnis

Datenüberprüfung mittels VBA

Datenüberprüfung mittels VBA
30.01.2020 15:34:03
Stuck
Hallo liebes Forum,
ich hab ein Problem bei welchem ich hoffe das ihr mir weiterhelfen könnt....
Ich habe eine Datei mit zwei Tabellenblättern. Das erste Tabellenblatt weißt in Spalte A Mitarbeiter auf und die einzelnen Wochentage. Das zweite Tabellenblatt die jeweiligen Stationen für die jeder Mitarbeiter qualifiziert ist.
Jetzt möchte ich mittels VBA Code erreichen, dass in der jeweiligen Mitarbeiterzeile im Tabellenblatt 1 nur die Station auswählbar ist, für die der Mitarbeiter qualifiziert ist.
Also dürfte bei Dieter in den Spalten Mo-Fr nur eine 3 oder 4 einsetzbar sein.
Ich kann die Anforderung leider nicht mit Excel Datenüberprüfung durchführen, da immer wieder Zeilen entfernt und neu hinzugefügt werden und in Folge dessen die Formeln zerstört werden.
Hat jemand eine Idee ob und wenn wie dies mit VBA durchführbar ist.
https://www.herber.de/bbs/user/134856.xlsx
Danke im Voraus für eure Mühe und Grüße!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung mittels VBA
30.01.2020 16:22:14
Hajo_Zi
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern und den Code einzufügen.
Ich führe keine Liste unter welchem Dateinamen ich die Datei aus dem Forum gespeichert habe.
Der Name steht ja im Beitrag.

AW: Datenüberprüfung mittels VBA
30.01.2020 16:35:49
Stuck
Hallo Hajo,
danke für deine Rückmeldung.
Leider kann ich dir nicht folgen....
Ich habe die Datei nur angehangen um mein Problem besser darstellen zu können. Diese Datei enthält kein Makro weil für die Makroumsetzung meine Kenntnisse an ihre sehr niedrig liegende Grenze stoßen ;-). Aus diesem Grund hatte ich ja den Beitrag geschrieben.
Vielleicht gibt es jemanden der weiß ob sich der Befehl per Makro umsetzen lässt und wenn ja wie es geht.
Anzeige
AW: Datenüberprüfung mittels VBA
30.01.2020 16:48:40
Nepumuk
Hallo,
Hajo einfach ignorieren, der antwortet zu 90% mit unsinnigen Textbausteinen.
In das Modul der Tabelle1:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim objCell As Range
    Dim lngColumn As Long, lngRow As Long
    Dim strTemp As String
    If Target.Count = 1 Then
        If Not Intersect(Target, Range("B4:F12")) Is Nothing Then
            Call Target.Validation.Delete
            Set objCell = Tabelle2.Columns(1).Find(What:=Cells(Target.Row, 1).Text, _
                LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not objCell Is Nothing Then
                lngRow = objCell.Row
                With Tabelle2
                    For lngColumn = 2 To .Cells(lngRow, .Columns.Count).End(xlToLeft).Column
                        With .Cells(lngRow, lngColumn)
                            If IsNumeric(.Text) Then strTemp = strTemp & "," & .Text
                        End With
                    Next
                End With
                If strTemp <> vbNullString Then
                    With Target.Validation
                        Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                            Operator:=xlBetween, Formula1:=Mid$(strTemp, 2))
                        .InCellDropdown = True
                    End With
                End If
            End If
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Datenüberprüfung mittels VBA
30.01.2020 17:15:30
Stuck
Hallo Nepumuk,
ignorieren ist schwierig, da mir in dem Forum schon ein paar mal super geholfen wurde und ich den Mitgliedern dementsprechend dankbar bin. Aber danke für deinen Hinweis ;-)
Aber back to topic!
Dein Code läuft super. Wenn ich diesen jedoch in meine Original Datei kopiere läuft er bei der Zeile
Set objCell = Tabelle2.Columns(1).Find(What:=Cells(Target.Row, 1).Text, _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
auf Laufzeitfehler 424 Objekt erforderlich.
Ich habe lediglich die Tabellenblätter in deinem Code nach meinen Blättern umbenannt und Range angepasst...
Ich befürchte so einfach ist es dann doch nicht.
Kannst du mir sagen warum er auf Fehler läuft?
P.S.: Sorry das ich die Originaldatei nicht zur Verfügung stellen kann.
Grüße
Anzeige
AW: Datenüberprüfung mittels VBA
30.01.2020 17:21:32
Nepumuk
Hallo,
der Name Tabelle2 ist der Objektname. Den findest du im Projektexplorer vor dem in Klammern stehenden Namen auf der Exceloberfläche.
Gruß
Nepumuk
AW: Datenüberprüfung mittels VBA
30.01.2020 17:32:17
Stuck
Super Nepumuk es geht schon ein wenig weiter....
Jetzt kommt die Fehlermeldung LAufzeitfehler 1004 Anwendungs oder Objekt definierter Fehler bei:
Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Mid$(strTemp, 2))
Warum muss jetzt bei den beiden Tabellenblättern auf den Objektnamen verwiesen werden?
Bis jetzt habe ich in meinen Codes immer den Tabellenblattnamen angesprochen.
Frage ist nur weil ich noch nicht aufgegeben habe mich auch mal selber im Makrodschungel auszukennen ;-)
Grüße
Anzeige
AW: Datenüberprüfung mittels VBA
30.01.2020 17:42:08
Nepumuk
Hallo,
keine Ahnung warum bei dir die Fehlermeldung kommt. Blattschutz aktiv?
Ich benutze grundsätzlich die Objektnamen von Tabellen, denn dann kann der Benutzer den Tabellennamen auf der Exceloberfläche ändern wie er will, mein Makro funktioniert trotzdem.
Gruß
Nepumuk
AW: Datenüberprüfung mittels VBA
30.01.2020 17:50:29
Stuck
Nepumuk das war es!!!!
Ich Dussel hab den Blattschutz nicht deaktiviert.
Das System rennt jetzt quasi ;-)
Das ist ein guter Hinweis. Dann werde ich mir angewöhnen auch immer die Objektnamen anzusprechen.
Grüße und nochmal danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige