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

Doppeleintrag für 2 Spalten verhindern

Doppeleintrag für 2 Spalten verhindern
23.01.2005 22:46:56
Manni
Hallo Excel-Experten,
ich möchte mein Problem anhand eines kleinen Anhangs noch einmal beschreiben. Im vorherigen Thread wurde es mit der Formel Benutzerdefiniert =ZÄHLENWENN(C:D;C2)=1 wohl so aufgefasst, dass ich einen doppelten Wert in 2 Spalten verhindern wollte, allerdings nicht im Doppelpack. Mir geht es aber um das verhindern von doppelten Werten wenn C u. D sich übereinstimmend wiederholen würden. Ich hoffe, dass diesmal die Beschreibung besser verständlich ist und auch hierfür eine Formelmöglichkeit existiert. Anhang unter: https://www.herber.de/bbs/user/16679.xls

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppeleintrag für 2 Spalten verhindern
24.01.2005 08:16:24
Roland
Hallo Manni,
trag diese Makro in VBA (Alt + F11) ein, die Nummer Columns(1) steht für die Spalte "A"

Private Sub Worksheet_Change(ByVal Target As Range)
If WorksheetFunction.CountIf(Columns(1), Target.Value) > 1 Then
MsgBox ("Name bereits vorhanden")
Target.ClearContents
End If
End Sub

Gruß
Roland
AW: Doppeleintrag für 2 Spalten verhindern
24.01.2005 09:20:39
Manni
Hallo Roland,
vielen Dank für Deine VBA-Lösung. Ich habe es eben auch mal ausprobiert, bekomme aber nachdem ich bei (Columns(3 + 4) für Spalte C + D eingetragen habe die Meldung
Fehler beim Kompilieren
Sub oder Function nicht definiert
Was habe ich da falsch gemacht, denn ich möchte ja Spalte C (für Namen) und D (für Vornamen) ohne Doppeleinträge haben?
Gruß
Manni
Anzeige
AW: Doppeleintrag für 2 Spalten verhindern
24.01.2005 10:36:22
Manni
Hallo Hübi,
danke für deine Formel. Sie funktioniert in der Adressenliste einwandfrei. Probleme bekomme ich allerdings wenn ich die Eingabe über eine bestehende Eingabe-Maske vornehme.
In diesem Falle blockt die Formel von dir nicht mehr ab. Das Makro der Eingabe-Maske sieht wie folgt aus:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Address = "$F$15" Then
Application.ScreenUpdating = False
Dim rng As Range
Set rng = Sheets("Adressen").Range("lfdNr").Find(What:=Sheets("Maske").[F3], _
LookIn:=xlValues, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox "Wert wurde nicht gefunden."
Else
Application.Goto rng, True
ActiveCell.EntireRow.Delete
Sheets("Maske").Select
Range("Formelkopie").Copy Range("F3")
Application.ScreenUpdating = True
Cancel = True
MsgBox "Kunde wurde gelöscht."
End If
End If
If ActiveCell.Address = "$E$15" Then
Application.ScreenUpdating = False
Dim rng1 As Range
Set rng1 = Sheets("Adressen").Range("lfdNr").Find(What:=Sheets("Maske").[F3], _
LookIn:=xlValues, LookAt:=xlWhole)
If rng1 Is Nothing Then
MsgBox "Wert wurde nicht gefunden."
Else
Application.Goto rng1, True
ActiveCell.Value = Sheets("Maske").Range("F3").Value
ActiveCell.Offset(0, 1).Value = Sheets("Maske").Range("F4").Value
ActiveCell.Offset(0, 2).Value = Sheets("Maske").Range("F5").Value
ActiveCell.Offset(0, 3).Value = Sheets("Maske").Range("F6").Value
ActiveCell.Offset(0, 4).Value = Sheets("Maske").Range("F7").Value
ActiveCell.Offset(0, 5).Value = Sheets("Maske").Range("F8").Value
ActiveCell.Offset(0, 6).Value = Sheets("Maske").Range("F9").Value
ActiveCell.Offset(0, 7).Value = Sheets("Maske").Range("F10").Value
ActiveCell.Offset(0, 8).Value = Sheets("Maske").Range("F11").Value
ActiveCell.Offset(0, 9).Value = Sheets("Maske").Range("F12").Value
ActiveCell.Offset(0, 10).Value = Sheets("Maske").Range("F13").Value
ActiveCell.Offset(0, 11).Value = Sheets("Maske").Range("F14").Value
Sheets("Maske").Select
Range("Formelkopie").Copy Range("F3")
Cancel = True
Application.ScreenUpdating = True
MsgBox "Kunde wurde geändert."
End If
End If
If ActiveCell.Address = "$C$15" Then
Dim LetzteZeile As Long
If Range("c3") = "" Then
MsgBox "Vorgang abgebrochen. Es muss mindestens ein Name eingegeben werden."
Exit Sub
End If
With Sheets("Adressen")
LetzteZeile = .Range("A65536").End(xlUp).Row + 1
.Cells(LetzteZeile, 1) = Range("c3")
.Cells(LetzteZeile, 2) = Range("c4")
.Cells(LetzteZeile, 3) = Range("c5")
.Cells(LetzteZeile, 4) = Range("c6")
.Cells(LetzteZeile, 5) = Range("c7")
.Cells(LetzteZeile, 6) = Range("c8")
.Cells(LetzteZeile, 7) = Range("c9")
.Cells(LetzteZeile, 8) = Range("c10")
.Cells(LetzteZeile, 9) = Range("c11")
.Cells(LetzteZeile, 10) = Range("c12")
.Cells(LetzteZeile, 11) = Range("c13")
.Cells(LetzteZeile, 12) = Range("c14")
End With
MsgBox "Werte hinzugefügt."
Application.ScreenUpdating = False
Range("c3:c14").ClearContents
Range("c3").FormulaR1C1 = "=MAX(lfdNr)+1"
Range("c3").Value = Range("c3").Value
Application.ScreenUpdating = True
Range("$C$3").Select
End If
End Sub

Kennst du dich auch mit VBA aus, dass du mir hierbei noch einmal helfen kannst?
Gruß
Manni
Anzeige
AW: Doppeleintrag für 2 Spalten verhindern
Hübi
Hi Manni,
bei VBA kann ich dir leider nicht helfen. Ursprünglich wolltest du deine Formel, die übrigens Masken-Eingaben auch nicht blockt, auf zwei Spalten erweitert haben.
Frage noch offen.
Gruß Hübi
AW: Pro
24.01.2005 11:20:30
Manni
Hallo Hübi,
hatte im Vorfeld überhaupt nicht daran gedacht, dass es bei Eingabe über die Maske nicht mehr greift.
Gruß
Manni
Danke für die Antwort - erledigt o.T.
Hübi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige