Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
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
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenüberprüfung

Datenüberprüfung
07.02.2006 17:22:32
Gerhard
Hallo!
Habe wieder einmal ein Problem und bitte um Eure Hilfe!
Ich trage in der Mappe"KundeListe"Sheet"Tabelle1"Spalte "A" und "B" Zahlen ein. Zusammen ergibt das eine Zahlenkombination die eine Übereinstimmung in einer anderen Excel Mappe ("Bestand") haben soll und das möchte ich überprüfen.
In der "Tabelle2" Spalte "A" führe ich die Spalten A + B zusammen zu dieser Zahlenkombination.
Wie kann ich nun überprüfen ob diese Zahl der "Tabelle2" Spalte "A" in der Mappe ("Bestand")Sheet("Gesamtbestand")Spalte("A") vorhanden ist oder nicht.
Ich möchte die Überprüfung durchführen wenn ich den Wert in den Spalten A u. B. eingetragen habe und auf Spalte C weitergehe (schreibe immer in den Zeilen 3 bis 231 Spalten A, B, u. C).
Wenn die Überinstimmung stattfindet dann soll nichts passieren ansonsten möchte ich eine Ausgabe über eine MsgBox dass die Zahl in der Mappe "Bestand" nicht vorhanden ist.
Bitte um Eure Hilfe
Gruss
Gerhard

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung
07.02.2006 18:49:14
Heiko
Hallo Gerhard,
wenn ich dich richtig verstanden habe, dann könnte es so gehen.
' In das Tabellenblatt mit den 2 Spalten für die Zahlen in der Datei KundeListe !!!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strSuche As String
Dim rngFind As Range
' Wenn nicht Spalte C im Bereich von 3 bis 231 dann raus hier.
If Intersect(Target, Range("C3:C231")) Is Nothing Then Exit Sub
' Achtung Ich benutze garnicht die Saplte A im 2. Blatt sondern baue mir hier den
' Suchbegriff aus den Spalten A und B des 1. Blattes aus KundeListe zusammen.
strSuche = ActiveSheet.Cells(Target.Row, 1) & ActiveSheet.Cells(Target.Row, 2)
' Mappe Bestand muss geöffnet sein, bei Bedarf kann Sie hier über Workbooks.Open auch
' geöffnet werden.
With Workbooks("Bestand").Sheets("Gesamtbestand").Columns(1)
Set rngFind = .Find(What:=strSuche, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If rngFind Is Nothing Then
MsgBox "Die Zahlenkombination '" & strSuche & "' ist nicht in der Datei Bestand vorhanden !", vbCritical
End If
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett
Anzeige
AW: Datenüberprüfung
08.02.2006 13:02:58
Gerhard
Hallo Heiko!
Danke für Deine Hilfe! Habs jetzt probiert und hab noch ein paar Probleme.
Die Spalte A ist für die Eingabe eine dreistellige Zahl, es handelt sich dabei aber um eine Identnummer die neunstellig ist (z. B. 556000152). Damit ich nicht immer alle neun Stellen eintippen muss gebe ich in die Spalte A nur die letzten drei Stellen ein und addiere in der Spalte E die 556000000 dazu. Die richtige erste Zahl steht dann in der Spalte E. Die zweite Zahl in Spalte B ist dreistellig (z.B. 007) dann würde die richtige Nummer für die Datenbankabfrage (556000152007) lauten. Der VBA Code lässt aber die Nullen weg und macht (5560001527) daraus und diese Nummer wird dann in der Datenbank nicht gefunden weil dort in Spalte A (556000152007) steht.
Kann man das hinbekommen?
Danke u. Gruss
Gerhard
Anzeige
AW: Datenüberprüfung
08.02.2006 13:55:40
Heiko
Hallo Gerhard,
das sollte hinzukriegen sein, denke ich heute abend mal drüber nach !
Kannst du mir vielleicht mal ne abgespeckte Beispielmappe, vor allem die wo du die Daten eingibts (mit den Formeln) hier einstellen.
Gruß Heiko
AW: Datenüberprüfung
08.02.2006 17:24:18
Heiko
Hallo Gerhard,
diese zeile so wie hier ändern, dann sollte es gehen.
strSuche = ActiveSheet.Cells(Target.Row, 5).Text & ActiveSheet.Cells(Target.Row, 2).Text
Wenn nicht dann siehe vorherrigen Post bezüglich Beispieltablle.
Gruß Heiko
PS: Rückmeldung wäre nett
AW: Datenüberprüfung
08.02.2006 20:48:58
Gerhard
Hallo Heiko!
Habe leider wenig Zeit momentan für mein Excel Problem, viel Stress im Job, drumm dauerts auch immer so lange bis ich antworte.
Danke für deinen Beitrag! Das funktoniert jetzt super, aber mit der folgenden Zeile hab ich noch Probleme das geht nicht. Die MsgBox kommt wenn ich auf die Spalte A klicke. Bei der Spalte C tut sich gar nichts.
If Intersect(Target, Range("C3:C231")) Is Nothing Then Exit Sub
Es ist auch so dass das nicht immer funktionieren soll nur dann wenn ich die Eingabe mache. Dazu führe ich einen Code aus der den Blattschutz für die Spalten A/B u. C aufhebt und erst dann soll das Macro von Dir aktiv sein. Wenn ich dann speichere schalte ich den Blattschutz wieder über ein Macro ein und dann soll das ganze nicht funktionieren. Hänge die beiden Macros "Eingabe" für den Beginn und "Speichern" für Ender der Überprüfung an.

Sub Eingabe()
' Eingabe Makro Stückeingabe automatisch 1Stk.
' Makro am 13.04.2005 von Fuger G. aufgezeichnet
' Tastenkombination: Strg+q
Dim intPos As Integer
Do
Dim Eingabe As String
Dim EingabeKorrekt As Variant
Eingabe = InputBox("Bitte die Nummer des Kundendienstes bzw. Zustellers eingeben!")
If Right(Eingabe, 1) = "0000" Then
ElseIf Eingabe = "" Then
MsgBox "Ohne Kundendienstnummer kann keine Werkzeugeingabe erfolgen!", vbInformation
Exit Sub
End If
EingabeKorrekt = Eingabe
Loop Until MsgBox("Ist die Nummer korrekt? :      " & EingabeKorrekt, vbYesNo + vbQuestion) = vbYes
Sheets("INI").Activate
Call BlattschutzAus
Sheets("INI").Cells(34, 2).NumberFormat = "General"
Sheets("INI").Cells(34, 2).Value = CDbl(Eingabe)
Call Blattschutz
Sheets("Auftragsstand").Activate
Call BlattschutzAus
Range("A3:C231").Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollRow = 3
Range("D3:D231").Select
Selection.Locked = True
Selection.FormulaHidden = False
'Letzte freie Zeile suchen
intPos = Range("A65536").End(xlUp).Offset(1, 0).Row
Cells(intPos, 1).Select
Call Blattschutz
ActiveWorkbook.Save
End Sub


Sub Speichern()
Call Initialisierung
NachfrageEnde
Windows(strNameListe).Activate
Sheets("Auftragsstand").Activate
Range("A3").Activate
'ActiveWorkbook.Save
Application.EnableEvents = False
Call BlattschutzAus
Range("A3:C231").Select
Selection.Locked = True
Selection.FormulaHidden = False
Range("G3:G231").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveWindow.ScrollRow = 3
Range("D3:D231").Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollRow = 3
'Sortieren Id.Nr. aufsteigend
Application.GoTo Reference:="Sortierbereich"
ActiveWindow.ScrollRow = 3
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
, Order2:=xlAscending, Key3:=Range("C3"), Order3:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
If Sheets("Auftragsstand").AutoFilterMode Then
Selection.AutoFilter
End If
Range("C3").Select
Application.CutCopyMode = False
Call Blattschutz
Application.EnableEvents = True
ActiveWorkbook.Save
End Sub

Ich beginne die Eingabe der Zahlen in den Spalten A/B/C mit dem Macro "Eingabe und beende sie mit dem Macro speichern. In den Spalten A u. B trage ich die bekannten Nummern die überprüft werden sollen ein. Ich schreibe die Mummern immer in der gleiche Reihenfolge ein, von A zu B zu C und wieder A/B/C. Entweder wenn ich in Spalte B fertig eingetragen habe oder ich weitergehe auf C soll die Überprüfung stattfinden.
Hoffe ich habe es verständlich ausgedrückt
Gruss
Gerhard
Anzeige
AW: Datenüberprüfung
09.02.2006 07:46:54
Heiko
Hallo Gerhard,
dann halt nicht SelectionChange für Spalte B sondern nur Change (also wenn wirklich was geändert wurde) für Spalte B. Bei mir startet das Makro dann nur noch wenn der Blattschutz aufgehoben ist und wenn in Spalte B was geändert wird.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strSuche As String
Dim rngFind As Range
' Wenn nicht Spalte B im Bereich von 3 bis 231 dann raus hier.
If Intersect(Target, Range("B3:B231")) Is Nothing Then Exit Sub
' Achtung Ich benutze garnicht die Saplte A im 2. Blatt sondern baue mir hier den
' Suchbegriff aus den Spalten A und B des 1. Blattes aus KundeListe zusammen.
strSuche = ActiveSheet.Cells(Target.Row, 5).Text & ActiveSheet.Cells(Target.Row, 2).Text
' Mappe Bestand muss geöffnet sein, bei Bedarf kann Sie hier über Workbooks.Open auch
' geöffnet werden.
With Workbooks("Bestand").Sheets("Gesamtbestand").Columns(1)
Set rngFind = .Find(What:=strSuche, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If rngFind Is Nothing Then
MsgBox "Die Zahlenkombination '" & strSuche & "' ist nicht in der Datei Bestand vorhanden !", vbCritical
End If
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige