Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

VBA: Eintrag schon vorhanden Meldung eingrenzen

VBA: Eintrag schon vorhanden Meldung eingrenzen
Marcy
Hi,
könnte mir jemand beim Erweitern helfen?
Damit dem gezeigten VBA kommt eine
MsgBox "Kleine Hilfe von Marcy: Artikel " & Target & " schon vorhanden in Zelle" & vbLf & strTabellen
wenn in dem Bereich E18:M1057 der Eintrag schon vorhanden ist.
Der doppelte Eintrag ist möglich, man wird lediglich aufmerksam gemacht.
Das soll verhindern, dass eine Identnummer bei der Regalerstellung mehrfach eingelagert wird.
Was mich jetzt nervt, dass ich in dem genannten Bereich mehrfach X, E, G, F oder V eintragen muss.
Dann kommt jedes mal die MsgBox.
Gesuchte Erweiterung:prüfe ob der Eintrag im Bereich E18:M1057 schon vorhanden ist,
ausser, wenn der Eintrag ein X E G F oder V ist.
Den Satz: If Target "" Then
habe ich durch
If Target "G" Then ersetzt, bin somit der Lösung ein Schritt näher, aber nur bei Eintrag G.
Wie führe ich den Satz weiter, dass auch keine Meldung kommt bei X, E, F, oder V?
Gruß Marcy

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim raZelle As Range
Dim strTabellen As String
Dim wsTabelle As Worksheet
Dim strStartadresse As String
Select Case Sh.Name
Case "LAYOUT", "Regal 13"
If Not Intersect(Target, Range("E18:M1057")) Is Nothing Then
If Target.Count = 1 Then
If Target  "" Then                        For Each wsTabelle In  _
Worksheets
If wsTabelle.Name  "Stammdaten" And wsTabelle.Name  " _
Lagerortsliste" And wsTabelle.Name  "Übersicht" Then
Set raZelle = wsTabelle.Range("E18:M1057").Find(Target, lookat:= _
xlWhole)
If Not raZelle Is Nothing Then
strStartadresse = raZelle.Address
Do
If wsTabelle.Name  Sh.Name Then
strTabellen = strTabellen & vbLf & wsTabelle.Name &  _
"  " & raZelle.Address
Else
If raZelle.Address  Target.Address Then  _
strTabellen = strTabellen & vbLf & wsTabelle.Name & "  " & raZelle.Address
End If
Set raZelle = wsTabelle.Range("E18:M1057").FindNext( _
raZelle)
Loop While Not raZelle Is Nothing And raZelle.Address   _
strStartadresse
End If
End If
Next wsTabelle
End If
End If
End If
End Select
If strTabellen  "" Then MsgBox "Kleine Hilfe von Marcy: Artikel " & Target & " schon  _
vorhanden in Zelle" & vbLf & strTabellen
Set raZelle = Nothing
End Sub

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

Betreff
Benutzer
Anzeige
AW: VBA: Eintrag schon vorhanden Meldung eingrenzen
30.09.2011 12:50:18
Henrik
Hallo,
wenn ich dich richtig verstehe dann einfach mit:
If Target "G" or Target "X" or Target "F" or Target "V" then
.
.
.
Gruß!
Henrik
AW: VBA: Eintrag schon vorhanden Meldung eingrenzen
30.09.2011 12:52:02
Henrik
Hallo,
wenn ich dich richtig verstehe dann einfach mit:
If Target "G" and Target "X" and Target "F" and Target "V" then
.
.
.
Gruß!
Henrik
Thanks men
30.09.2011 13:14:45
Marcy
oh man,
habe sowohl and und or versucht, aber dann or If Target.
Die Lösung ist manchmal so einfach.
Danke
Marcy
AW: VBA: Eintrag schon vorhanden Meldung eingrenzen
04.10.2011 07:33:33
Marcy
:-(
Henrik klappt doch nicht!
Es klappt nur bei G, wenn ich den Satz " If Target "G" " verwende.
Sobald ich den wie von dir vorgeschlagen erweitere, klappt es nicht mehr.
Marcy
Anzeige
AW: VBA: Eintrag schon vorhanden Meldung eingrenzen
04.10.2011 15:44:15
Henrik
Hallo Marcy,
mein Namensvetter hat es fast getroffen.
Ersetze AND durch OR.

If Target  "G" or Target  "X" or Target  "F" or Target  "V" then

Bedenke, dass zwischen Groß- und Kleinschreibung unterschieden wird.
Gruß Henrik (ein anderer)
AW: VBA: Eintrag schon vorhanden Meldung eingrenzen
04.10.2011 16:13:22
Rudi
Hallo,
Mehrfachprüfungen würde ich wo möglich mit Select Case machen.
Teste mal:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim raZelle As Range
Dim strTabellen As String
Dim wsTabelle As Worksheet
Dim strStartadresse As String
Select Case Sh.Name
Case "LAYOUT", "Regal 13"
If Not Intersect(Target, Range("E18:M1057")) Is Nothing Then
If Target.Count = 1 Then
Select Case Target
Case Is  "", Is  "G", Is  "E", Is  "F", Is  "X", Is  "V"
For Each wsTabelle In Worksheets
Select Case wsTabelle.Name
Case Is  "Stammdaten", Is  "Lagerortsliste", Is  "Übersicht"
Set raZelle = wsTabelle.Range("E18:M1057").Find(Target, lookat:=xlWhole)
If Not raZelle Is Nothing Then
strStartadresse = raZelle.Address
Do
If wsTabelle.Name  Sh.Name Then
strTabellen = strTabellen & vbLf & wsTabelle.Name & _
"  " & raZelle.Address
Else
If raZelle.Address  Target.Address Then _
strTabellen = strTabellen & vbLf & wsTabelle.Name & "  " & raZelle. _
Address
End If
Set raZelle = wsTabelle.Range("E18:M1057").FindNext(raZelle)
Loop While Not raZelle Is Nothing And raZelle.Address  strStartadresse
End If
End Select
Next wsTabelle
End Select
End If
End If
End Select
If strTabellen  "" Then MsgBox "Kleine Hilfe von Marcy: Artikel " & Target _
& " schon vorhanden in Zelle" & vbLf & strTabellen
Set raZelle = Nothing
End Sub

Gruß
Rudi
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige