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

doppelte vermeiden

doppelte vermeiden
12.12.2012 12:12:49
Ronaldo
Hallo zusammen,
ich habe schon im Internet nach einer Lösung für mein Problem gesucht, leider konnte ich nichts finden, was genau dazu paßt.
Ich habe eine Anzahl an Tabellenblättern: Blatt1, Blatt2, ...
Die Datei wird von verschiedenen Personen genutzt. Daher muss vermieden werden, dass in den Tabellen in Spalte C eine Artikelnummer doppelt vorkommt. Wie kann ich das lösen?
Wenn in Spalte C eine bereits eingepflegte Nummer eingegeben wird, muss eine Messagebox mit Text erscheinen und die Eingabe nicht zugelassen werden.
Danke jetzt schon für die Hilfe!
Gruss
Ronaldo

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Datenüberprüfung
12.12.2012 12:16:06
Rudi
Hallo,
=ZÄHLENWENN(C:C;C1)<2
Gruß
Rudi

AW: doppelte vermeiden
12.12.2012 12:21:10
Frank
Hallo Ronaldo!
Daten - Gültigkeitsprüfung
Formel: =ZÄHLENWENN(C:C;C1)=1
Konnte ich helfen?
Gruß Frank H.

AW: doppelte vermeiden
12.12.2012 13:13:37
Ronaldo
Hi, danke für die Antworten.
Aber, funktioniert irgendwie nicht.
Wenn ich in Blatt1 Spalte C etwas eingebe, dann sollte eine Info erscheien, sobald die gleiche Nummer in den Blättern 1 bis 10 in den Spalten C erscheint.
Gruss
Ronaldo

mit VBA?
12.12.2012 14:05:57
Klaus
Hallo Ronaldo,
das geht mit VBA. Mal auf die schnelle in Pseudocode, damit du eine Idee bekommst:
sub worksheet_change()
prüfe ob Spalte = C
For each wks in sheet(1) to sheet(10)
zähle target.value in Spalte C
next
if zählen > 0 then
msgbox("gibts schon")
application.undo
end if
end sub
Bekommst du das selbst auf richtigen Code umgeschrieben? Wenn nicht, melde dich nochmal
Grüße,
Klaus M.vdT.

Anzeige
AW: doppelte vermeiden + mehr Tabs
12.12.2012 14:10:27
firmus
Hi Ronaldo,
die zähl-funktion muss in jedes Blatt.
in das erste Blatt muss noch diese Formel in eine Zelle rein(z.b. E1): =SUMME(Tabelle1:Tabelle10!D1)
Annahme:
in Zelle D1 in jedem Blatt steht die Anzahl der doppelten.
10 x "1" = 10. d.h., wenn im ersten Blatt in Zelle E1 eine Zahl größer 10 steht, gibt es Doppelte.
Es wird nicht ausgewiesen in welchem Blatt.
Gruß
firmus

AW: doppelte vermeiden
12.12.2012 14:16:46
Rudi
Hallo,
in DieseArbeitsmappe:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wks As Worksheet
If Target.Column = 3 Then
For Each wks In Worksheets
If Not wks Is Sh Then
If Application.CountIf(wks.Columns(3), Target) Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
Exit Sub
End If
End If
Next
End If
End Sub

Gruß
Rudi

Anzeige
AW: doppelte vermeiden
12.12.2012 14:37:26
Ronaldo
Hallo zusammen,
vielen Dank für die Antworten!! Am besten komme ich mit der Lösung von Rudi klar.
Rudi,
das sieht wirklich super aus. Klappt auch soweit. Eine kleine Frage noch:
- es müsste nur in defnierten Blättern z.B. Blatt1, Blatt2, Blatt3 gesucht werden
wie muss ich das definieren?
Schöne Grüße und vielen Dank nochmal an alle
Ronaldo

AW: doppelte vermeiden
12.12.2012 15:06:38
Rudi
Hallo,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wks As Worksheet, arrSheets
arrSheets = Array("Blatt1", "Blatt2", "Blatt3") 'überwachte Blätter
If Target.Column = 3 Then
If Not IsError(Application.Match(Sh.Name, arrSheets, 0)) Then
For Each wks In Worksheets(arrSheets)
If Not wks Is Sh Then
If Application.CountIf(wks.Columns(3), Target) Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
Exit Sub
End If
End If
Next
End If
End If
End Sub

Gruß
Rudi

Anzeige
AW: doppelte vermeiden
12.12.2012 15:12:49
Ronaldo
Hi Rudi!
Vielen Dank! Läuft alles super ! !
Schöne Grüße
Ronaldo

AW: doppelte vermeiden
13.12.2012 10:28:48
Ronaldo
Hallo Rudi,
darf ich Dich doch noch einmal mit diesem Thema belästigen?
Ich hatte ja gesagt, dass eine Eingabe nicht möglich sein sollte, sobald der eingegebene Wert in Spalte C irgendwo in den benannten Blätter vorhanden ist. Das funktioniert auch wunderbar, wenn der Wert direkt in die Spalte C eingegeben wird.
Jetzt habe ich ein Problem: der Benutzer dieser Datei wird immer aus einer andere Tabelle die Spalten B bis G kopieren und in diese Tabelle einfügen. Beim Einkopieren funktioniert die Prozedur dann nicht, wenn in Spalte C ein vorhandener Wert steht.
Klingt kompliziert, ich weiß. Meinst Du, dass man das lösen kann ?
Schöne Grüße
und vielen vielen Dank für die Hilfe
Ronaldo

Anzeige
AW: doppelte vermeiden
13.12.2012 13:05:02
Rudi
Hallo,
wird ja immer mehr!
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wks As Worksheet, arrSheets, rngC As Range
arrSheets = Array("Blatt1", "Blatt2", "Blatt3") 'überwachte Blätter
If Not Intersect(Target, Sh.Columns(3)) Is Nothing Then
If Not IsError(Application.Match(Sh.Name, arrSheets, 0)) Then
For Each rngC In Intersect(Target, Sh.Columns(3))
For Each wks In Worksheets(arrSheets)
If Not wks Is Sh Then
If Application.CountIf(wks.Columns(3), rngC) Then
With Application
.EnableEvents = False
rngC.ClearContents  'Application.undo
.EnableEvents = True
End With
End If
End If
Next wks
Next rngC
End If
End If
End Sub

Gruß
Rudi

Anzeige
AW: doppelte vermeiden
13.12.2012 17:41:58
Ronaldo
Hi Rudi,
vielen vielen Dank. Ich teste das morgen!!!
Feedback kommt.
LG
Ronaldo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige