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

Meldung kommt nicht

Meldung kommt nicht
16.01.2009 22:17:15
Patrick
Hallo Leute
Komme nicht mehr weiter.
In der Tabelle3 kann ich Zahlen eingeben und sofern diese Zahl doppelt erfasst wird kommt eine Meldung.
Wenn ich aber die Zahlen von der Tabelle1 aus in Tabelle3 mit einer Verknüpfung verbinde und von Tabelle1 die Zahlen eingeben und zwar auch gleiche Zahlen bekomme ich keine Melung.
Ich bin am Verzweifeln war dies so ist.
Wäre nett wenn jemand von Euch dies anschauen würde bevor ich vollends absaufe.

Die Datei https://www.herber.de/bbs/user/58500.xls wurde aus Datenschutzgründen gelöscht


Danke vorab
Patrick

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Meldung kommt nicht
16.01.2009 22:24:04
Ramses
Hallo
Dann muss der Code
'Hier Eingabe aus Tabelle1
If Not Intersect(Target, Range("C5:C" & Cells(Rows.Count, "C").End(xlUp).Row)) Is Nothing And Target.Count = 1 Then
If Application.CountIf(Range("C5:C" & Target.Row), Target) > 1 Then _
MsgBox "Nummer ist schon vorhanden!"
End If
End If
eben auch in Tabelle 1 und NICHT in Tabelle 3 stehen.
Du löst den Code ja nur bei einem "Change" Ereignis aus, ... bei dem was du vorhast, wird aber der Zelleninhalt NICHT geändert (die Formel) !!, sondern nur neu berechnet.
Gruss Rainer
AW: Meldung kommt nicht
16.01.2009 22:42:41
Patrick
Hallo Rainer
Ich stehe voll auf dem Schlauch!!!!!!!!!!!
Habe den Code auch in Tab1 eingefügt und nichts rührt sich.
Sollte doch eigentlich gehen - es ist ja nur eine Verknüpfung von Tabelle1 zu Tabelle3.
Gruß
Patrick
Anzeige
AW: Meldung kommt nicht
16.01.2009 22:57:00
Ramses
Hallo
Ich sehe das Problem nicht

Die Datei https://www.herber.de/bbs/user/58502.xls wurde aus Datenschutzgründen gelöscht


Du musst den Eingabebereich halt schon noch an den Bereich anpassen, wo die Eingabe erfolgen soll !!
Gruss Rainer
AW: Meldung kommt nicht
16.01.2009 23:07:00
Patrick
Hallo Rainer
So wie Du es gemacht hast habe ich auch schon gemacht.
Das Problem ist, dass es mehrere Blätter sind.
Beispiel:
Im Blatt 1 kann es durchaus vorkommen, dass die gleiche Zahl (bsp. 10) nicht vorkommt aber auf Blatt 2
kommt sie hat trotzdem mal vor usw.
Daher wollte ich mit dem zentralen Blatt Nr.3 alle Zahlen dort auflisten.
Im zentralen Blatt Nr. 3 wird wohl oder übel alles geprüft ob es irrgendwo in allen Blätter keine Redundanzen gibt.
Hatte gehofft, daß ich den gleichen Code wohl in allen Blätter reinkopieren kann. Leider ohne Erfolg.
Gruß
Patrick
Anzeige
AW: Meldung kommt nicht
16.01.2009 23:38:00
Ramses
Hallo
"...Hatte gehofft, daß ich den gleichen Code wohl in allen Blätter reinkopieren kann...."
Du bist ein kleiner Scherzkeks :-)
Hellsehen kann EXCEL nicht.
Du musst den Code auf jede Tabelle kopieren WO EINE EINGABE erfolgt UND den Eingabebereich natürlich anpassen,... oder woher soll EXCEL wissen welcher Bereich geprüft werden soll
Hier eine Alternative die zumindest zentral verwaltet werden kann
'In das Klassenmodul "Diese Arbeitsmappe"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Sh.Name
Case "Tabelle1"
With Sh
'Zellbezüge anpassen
If Not Intersect(Target, Sh.Range("C5:C" & Sh.Cells(Sh.Rows.Count, "C").End(xlUp). _
Row)) Is Nothing And Target.Count = 1 Then
If Application.CountIf(Sh.Range("C5:C" & Target.Row), Target) > 1 Then _
MsgBox "Nummer ist schon vorhanden!"
Exit Sub
End If
End If
End With
Case Tabelle2
With Sh
'Zellbezüge anpassen
If Not Intersect(Target, Sh.Range("C5:C" & Sh.Cells(Sh.Rows.Count, "C").End(xlUp). _
Row)) Is Nothing And Target.Count = 1 Then
If Application.CountIf(Sh.Range("C5:C" & Target.Row), Target) > 1 Then _
MsgBox "Nummer ist schon vorhanden!"
Exit Sub
End If
End If
End With
Case Tabelle3
With Sh
'Zellbezüge anpassen
If Not Intersect(Target, Sh.Range("C5:C" & Sh.Cells(Sh.Rows.Count, "C").End(xlUp).Row))  _
Is Nothing And Target.Count = 1 Then
If Application.CountIf(Sh.Range("C5:C" & Target.Row), Target) > 1 Then _
MsgBox "Nummer ist schon vorhanden!"
Exit Sub
End If
End If
End With
End Select
End Sub


Alle anderen Codes aus den jeweiligen Tabellen müssen gelöscht werden
Gruss Rainer

Anzeige
AW: Meldung kommt nicht
16.01.2009 22:59:00
Gerd
Hallo Patrick!
'Ins Modul der Tabelle1

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
On Error GoTo errExit
Application.EnableEvents = False
If Target.Count = 1 Then
If Not IsEmpty(Target) Then
If Not Intersect(Target, Range("B5:B" & Application.Max(5, Cells(Rows.Count, "B").End(xlUp).Row) _
)) Is Nothing Then
If Application.CountIf(Tabelle3.Range("C5:C" & Target.Row), Target) > 1 Then _
MsgBox "Nummer ist schon vorhanden!"
Target.Value = "": Target.Select
End If
End If
End If
errExit:
Application.EnableEvents = True
End Sub


Gruß Gerd

Anzeige
AW: Meldung kommt nicht
16.01.2009 23:27:04
Patrick
Hallo Gerd
Cooler Code. Leider ist es nicht was ich mir vorgestellt habe.
Es sind etwa 30 Tabelleblätter. In den einzelnen Tabs sind solche gelben Spalten, teilweise zusammengehängt, teilweis auch in mehreren Blöcken.
Aber alle Zellen haben eines gemeinsam. Sie sind alle mit dem Tabellenblatt Nr. 3 untereinander verknüpft, sodaß in der Tabelle Nr. in einer Spalte alle erdenklichen Zahlen untereinander aufgelistet sind.
Von dort habe ich die bessere Uebersicht ob eine Zahl doppelt ist. (Wie zb. 10 in einer Zeile und ein paar Zeilen weiter unten nochmals die 10. Dann sollte eben eine Meldung kommen. Wenn ich es im gleichen Tabelleblatt versuche geht es. Wenn ich es aber mit verbundenen Zellen mache geht es nicht.
Ich verstehe es nicht. Ob ich es in der Zelle C3 im Tab3 eintippe oder mittels Verknüpfung von Tabelle 1 oder 2 etc. auf die gleiche Zelle C3 zugreifen.
Gruß
Patrick
Anzeige
AW: Meldung kommt nicht
16.01.2009 23:41:00
Gerd
Hallo Patrick,
na schön! Aus zwei Beispielstabellen werden 30 Tabellen.
Es zwingt dich niemand, Zellen zu verbinden.
Den selben optischen Effekt kannst Du z.B. mit "Text zentrieren über Spalten" (Format - Zellen ...)
erzielen.
Wie Du allerdings aus 30 verschiedenen Tabellen ein und dieselbe Zelle in Tabelle3 mit einer Formel
fütterst?
Gruß Gerd
AW: Meldung kommt nicht
16.01.2009 23:49:00
Patrick
Hallo Gerd
Wir haben uns missverstanden.
Von der ersten Tabelle1 (werden in Spalte B5 - B15) mit Tabelle3 Spalte C5 - C15 verlinkt/verbunden.
von der zweiten Tabelle2 (werden in Spalte B5 - B15 mit Tabelle3 Spalte C16- C26 verlinkt/verbuden.
Von der vierten Tabelle4 (werdne in Spalte B5 - B15 und B20 - B25 mit Tabelle3 Spalte C26 - C36 und C37 -C42 verlinkt/verbunden usw.
Also untereinander.
Dort habe ich alle untereinander und kann auch sehen ob eine Zahl doppelt vorkommt.
gruß
Patrick
Anzeige
AW: Meldung kommt nicht
17.01.2009 00:41:59
Gerd
Hallo Patrick,
Formeln sind keine Links u. keine "Verbundenen Zellen". Sie werden allenfalls mal bei externen Bezügen
als Verknüpfungen bezeichnet.
'modul DieseArbeitsmappe -- sonst nix.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo errExit
Application.EnableEvents = False
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
If Sh.Name = "Tabelle3" Then Exit Sub
Select Case Sh.Name
Case "Tabelle1", "Tabelle2"
If Intersect(Target, Range("B5:b15")) Is Nothing Then Exit Sub
Case "Tabelle4"
If Intersect(Target, Range("B5:b15,b20:b25")) Is Nothing Then Exit Sub
Case "Tabelle5"
End Select
If Application.CountIf(Worksheets("Tabelle3").Columns("C:C"), Target.Value) > 1 Then
MsgBox "Wert bereits vorhanden"
Target.Value = "": Target.Select
End If
errExit:
Application.EnableEvents = True
End Sub


Ist für weitere Tabellen u. evtl. in Tabelle3, spalte C noch anzupassen.
Falls mal ein Fehler beim Testen auftritt:
Ggf. die Events neu einstellen mit
Sub egal()
Application.Enableevents=true
End Sub


Gruß Gerd

Anzeige
AW: Meldung kommt nicht
17.01.2009 13:32:31
Jens
Hallo Gerd
Sorry, daß ich nochmals nachfrage.
Habe Deinen Code eingebaut und komme nicht weiter.
In der hochgeladenen Testdatei in Tabelle3 ist die Spalte C nur mit Spalte F miteinander verknüpft.
Es sollte doch möglich sein, daß wenn ich Zahlen in Spalte C eintippe welche auf Spalte F übertragen werden auch eine Meldung kommt, wenn zwei identische Zahlen eingegeben wurden.
Mache ich das ohne Verknüpfung nur für Spalte F geht es.
Es geht mir nur darum - wenn es im gleichen Blatt mit Verknüpfung geht sollte es auch dann gehen wenn die Verknüpfung von einem anderen Blatt aus gemacht wird.
https://www.herber.de/bbs/user/58517.xls
Gruß
Jens
Anzeige
AW: Meldung kommt nicht
17.01.2009 13:37:50
Patrick
Hi Gerd
Das ist ja jetzt der Hammer. Ich habe im Forum die Beiträge gelesen und auch dessen von Jens.
Danach habe ich Dir über meinen Beitrag geschrieben und siehe da der Name Jens wird mir als Name vorgeschlagen.
Gruß
Patrick
AW: Meldung kommt nicht
17.01.2009 14:44:00
Gerd
Hi Patrick,
ersetze mal in dieser Zeile "F" durch "C"
If Not Intersect(Target, Range("F5:F" & Cells(Rows.Count, "F").End(xlUp).Row)) Is Nothing And Target.Count = 1 Then
Gruß Gerd
AW: Meldung kommt nicht
17.01.2009 15:58:00
Patrick
Hi Gerd
Wie aus heiterem Himmel funktioniert es mit der entsprechenden Abänderung gemäss Deinen Angaben.
Bin froh, daß es funktioniert.
Möchte ich nochmals danken für Deine Hilfe.
Danke Gerd
Gruß
Anzeige
AW: Meldung kommt
17.01.2009 16:13:21
Gerd
Hallo Patrick,
schön. Dann mach mal weiter. Aller Laster Anfang ... :-)
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige