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

Makro doppelte Eintraege verhindern

Makro doppelte Eintraege verhindern
20.06.2008 14:57:00
AlexandraB
Hallo,
ich habe im Internet ein Makro gefunden, welches beim Eintragen eines bereits in Spalte A vorkommenden Wertes eine Fehlermeldung gibt. Ich wuerde es gern auch in Spalte E anwenden, kann es aber leider nicht anpassen, so dass es funktioniert.
Nachfolgend das Makro:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 1 And Target  "" Then 'Column A
If WorksheetFunction.CountIf(Columns(1), Target) > 1 Then
MsgBox "Number " & Target & " already exists!", _
vbCritical, "OzGrid Business Applications"
Target = ""
Target.Select
End If
End If
End Sub


Ich habe es mit Target.Column=5, Columns(5) versucht, aber es hat leider nicht geklappt.
Wie macht man es richtig?
Vielen Dank im Voraus!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro doppelte Eintraege verhindern
20.06.2008 15:11:10
Reinhard
Hi Alexandra,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column  5 Then Exit Sub
If Target = "" Then Exit Sub
If WorksheetFunction.CountIf(Columns(5), Target) > 1 Then
MsgBox "Number " & Target & " already exists!", _
vbCritical, "OzGrid Business Applications"
Application.EnableEvents = False
Target = ""
Target.Select
Application.EnableEvents = True
End If
End Sub


Gruß
Reinhard

AW: Makro doppelte Eintraege verhindern
20.06.2008 15:34:00
AlexandraB
Hallo Reinhard,
danke fuer den Tip. Ich habe es genauso in den Worksheet Code eingefuegt, nur den Namen zu Private Sub Worksheet_Change5 geaendert, da ich dieses Makro schon auch fuer Spalte A verwende.
Aber leider funktioniert es so nicht. Liegt es vielleicht an der Namensaenderung?
Gruesse,
Alexandra

Anzeige
AW: Makro doppelte Eintraege verhindern
20.06.2008 15:42:48
Andi
Hi,
Liegt es vielleicht an der Namensaenderung?
Jupp, so isses; Ereignisprozeduren kann man nicht umbenennen.
Du musst schon alles in eine packen, und dann eben unterscheiden, ich welcher Spalte das Ereignis ausgelöst wurde.
Schönen Gruß,
Andi

AW: Makro doppelte Eintraege verhindern
20.06.2008 18:03:00
Reinhard
Hi Alexandra,
doppelklicke mal im Editor links auf z.B. Tabelle1, dann wähle in der Mitte "Worksheet" aus, dann rechts davon ein beliebiges Ereignis dieses Worksheets, z.B. "Change", dann erzeugt Vba automatisch die Makrohülle für dies Prozedur.
Der Name für diese prozedur ist festgelgt und darf nicht geändert werden, sonst ist es für Vba ein normales Makro.
Und es darf pro Tabellenblatt auch nur einmalig eine Prozedur mit dem festgelegten Namen geben.
Wenn nun du das Ereignis "Change" für die beiden Spalten A und E auswerten willst mußt du das z.B. so machen:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column  5 And Target.Column  1 Then Exit Sub
If Target = "" Then Exit Sub
If WorksheetFunction.CountIf(Columns(Target.Column), Target) > 1 Then
MsgBox "Number " & Target & " already exists!", _
vbCritical, "OzGrid Business Applications"
Application.EnableEvents = False
Target = ""
Target.Select
Application.EnableEvents = True
End If
End Sub


Gruß
Reinhard

Anzeige
AW: Makro doppelte Eintraege verhindern
20.06.2008 19:41:00
AlexandraB
Hallo Reinhard,
danke! Jetzt funktioniert alles. Habe das nicht gewusst mit dem festgelegten Namen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige