Anzeige
Archiv - Navigation
172to176
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
172to176
172to176
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

nochmals auf Doppeleintrag prüfen die

nochmals auf Doppeleintrag prüfen die
31.10.2002 01:48:45
Mike
Hallo zusammen,
ich möchte nochmals einen Versuch starten. Vielleicht erbarmt sich doch noch jemand.
Ich möchte meinen Zellbereich C36:X66 auf Doppeleinträge in derselben Zeile überprüfen lassen. Die einzige Ausnahme sollte das Wort "frei" sein. Dies darf in der gleichen Zeile mehrmals vorkommen Im Zellbereich werden nur Namen eingetragen.
Nachdem das bei mir über Daten-Gültigkeit-Benutzerdefiniert einfach nicht richtig hinhaut, würde ich gerne eine VBA-Lösung verwenden.
Bei einem Doppeleintrag sollte eine msg-Box staren mit dem Hinweis auf einen Doppeleintrag.
Es wäre super, wenn mir jemand eine Lösung basteln könnte.
Besten Dank im Voraus.

Gruß
Mike



16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
was funktioniert nicht?
31.10.2002 07:21:28
snickers
Hi Mike

Wenn Du die Antwort von Boris und meine Ergänzung anwendest, was funktioniert dann nicht:

1. Markiere C66:X66,
2. Daten / Gültigkeit / Benutzerdeffiniert:
=oder(A66="frei";zählenwenn($A66:$X66;A66)<2

Bei mir funktioniert dies einwandfrei!

VBA-Doppeleinträge
31.10.2002 07:39:39
JRobert
Hallo Mike

Sub Doppeleintrag()

Spalte1 = 3 'für C
Spalte2 = 24 ' für X
Zeile1 = 33
Zeile2 = 66
For k = Zeile1 To Zeile2
For i = Spalte1 To Spalte2
tmp = Cells(k, i)
If tmp <> "frei" Then
j = k
n = i + 1
While j <= Zeile2
While n <= Spalte2
If tmp = Cells(j, n) Then MsgBox (Chr(64 + i) + Format(k, "##") + "=" + tmp + vbCr + Chr(64 + n) + Format(j, "##") + "=" + Cells(j, n))
n = n + 1
Wend
n = Spalte1
j = j + 1
Wend
End If

Next i
Next k

End Sub

grüß Robert


Anzeige
Re: VBA-Doppeleinträge
31.10.2002 08:13:41
Mike
Hallo Robert,
Danke für deine Mühe. Will's gleich ausprobieren.
Wohin muss das Makro (Tabelleenblatt, Modul ...)? Startet das auch automatisch?

Gruß
Mike

Re: was funktioniert nicht?
31.10.2002 08:22:50
Mike
Hakko Snickers,
wills gerne nochmals testen. Aber eins verstehe ich nicht.
Du schreibst, ich soll C66:X66 markieren. In der Formel steht aber A66 anstatt C36!?
Was ist mit dem anderen Bereich ab C36? Der Bereich ist ja C36:X66!

Gruß
Mike


Re: VBA-Doppeleinträge
31.10.2002 08:47:02
JRobert
geh in Visual Basic, Einfügen-Modul, Code reinkopieren und
kannst direkt von VB starten
Re: VBA-Doppeleinträge
31.10.2002 09:28:41
Mike
Hallo Robert,
hab's ein paar Mal probiert. Hängt sich bei Ausführung aber immer auf. Muss mit Strg+Alt+Entf immer die Anwendung schließen.
Könnte man es so abändern, dass direkt bei Doppel-Eingabe der Hinweis kommt?

Gruß
Mike

Anzeige
Re: VBA-Doppeleinträge
31.10.2002 10:32:44
JRobert
das ist das einziges was diese Programm macht- ein Hinweis
bei Doppeleintrag. Beschreib genauer wie hast du eingefügt
und wie startest. Bau ein Doppeleintrag zum Testen gleich
in die erste Zeile ein und probier noch mal aus.

Re: VBA-Doppeleinträge
31.10.2002 10:58:50
Mike
Hallo Robert,
ich habe ein Modul eingefügt und dort deinen Code reinkopiert.
Anschließend habe ich in C33 und dann in D33 den gleichen Namen eingetragen. Dann mit Alt+F8 das Makro gestartet. Jetzt kommt der Hinweis: C33= und in der Zeile darunter D33= . mehr nicht.
Gleichzeitig hängt er sich auf. Ich kann weder mit OK bestätigen, noch das Hinweisfenster schließen.
Kann nur mit Strg+Alt+Entf schließen.

Gruß
Mike


Anzeige
Re: VBA-Doppeleinträge
31.10.2002 11:45:48
JRobert
Hallo Mike
das ist schon gut, das eine Meldung kommt von C33 und D33.
Ich habe's so gemacht, wie du es wolltest, ein Hinweis bei Doppeleintag und die Koordinaten mit dem Inhalt. Mit Ok bestätigst du die Meldung über ein Doppeleintrag. Danach , wenn es noch ein Doppeleintrag in die Tabelle existiert, kommt nächste Meldung. Wenn es keine Doppeleinträge hibt oder nach dem gesammten Überprüfung, kehrt es wieder zu VBA zurück. Kannst du danach nach Excel umschalten?
grüß Robert

sorry - die Hektik
31.10.2002 11:55:54
snickers
Natürlich gibst Du ein
Daten / Gültigkeit / Benutzerdeffiniert

=oder(C66="frei";zählenwenn($C66:$X66;C66)<2)

(ich hatte es ab Spalte A gestestet)

Anzeige
Re: VBA-Doppeleinträge
31.10.2002 12:05:19
Mike
Hallo Robert,
kann danach Excel öffnen. Lin ks sieht man, dass die geschlossene Datei wiederhergestellt werden kann.
Ich wollte es eigentlich so (hab mich vielleicht nicht genau ausgedrückt):
Es soll nur geprüft werden, ob ein bereits vorhandener Name in derselben Zeile nochmals versucht wird einzutragen. Nur dann soll sofort der Hinweis kommen. Es muss also nicht geprüft werden, wie oft und in welchen Zellen des gesamten Bereichs die weiteren Doppeleinträge sind. Bei meiner Tabelle handelt es sich um eine Monatstabelle, wobei in der Spalte B36:B66 der Wochentag steht. Mir geht es im Prinzip also nur darum, dass am gleichen Tag ein Name nicht zweimal eingetragen wir. Beim Versuch soll sofort der Hinweis kommen, so wie du ihn im Makro bereits formuliert hast.

Gruß
Mike

Anzeige
Re: sorry - die Hektik
31.10.2002 12:17:35
Mike
Hallo Snickers,
verstehs trotzdem nicht. Warum C66 und nicht C36? Es sollte ja den ganzen Bereich C36:X66 umfassen und nicht nur die Zeile C66:X66.

Gruß
Mike

Re: nochmals auf Doppeleintrag prüfen die
31.10.2002 16:54:27
Martin Beck
Hallo Mike,

weise der Tabelle folgende Ereignisprozedur zu:

Gruß
Martin Beck

Re: nochmals auf Doppeleintrag prüfen die
31.10.2002 21:57:06
Mike
Hallo Martin,
bin erst jetzt wieder zurück.
Es klappt im Prinzip. Ich habe jetzt im Tabellenblatt stehen:
Wenn ich jetzt allerdings mein Löschen-Makro starte (steht in einem Modul), dann kommt die Fehlermeldung, dass die Typen unverträglich sind. Das Löschen-Makro hat den Code:

Sub InhalteLöschen()
With Range("C36:W66")
.ClearContents
.Interior.ColorIndex = xlNone
End With
Range("C36").Select
End Sub

Was läuft hier schief?

Gruß
Mike



Anzeige
Re: nochmals auf Doppeleintrag prüfen die
01.11.2002 09:48:10
Martin Beck
Hallo Mike,

nimm

Sub InhalteLöschen()
Application.EnableEvents = False
With Range("C36:W66")
.ClearContents
.Interior.ColorIndex = xlNone
End With
Range("C36").Select
Application.EnableEvents = True
End Sub

dann sollte es gehen.

Gruß
Martin Beck

Danke dir, jetzt klappt's!
03.11.2002 22:30:45
Mike
War ein paar Tage weg. Deshalb erst heute mein Dank an dich.

Gruß
Mike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige