Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Doppelte Werte in einer Spalte vermeiden | Herbers Excel-Forum


Betrifft: Doppelte Werte in einer Spalte vermeiden von: Mark
Geschrieben am: 03.01.2012 20:20:45

Hallo,

ich bin dabei ein kleines Excel Programm zu schreiben. Brauch an einer Stelle nochmal etwas Hilfe.

Es soll per Klick auf den CammandButton Zelleninhalte (Projekt-Nr. und Kurzbeschreibung) in ein anderes Excelblatt geschrieben werden. Das klappt auch bereits schon.

Jedoch sollen keine doppelten Projekt.- Nr. möglich sein.
Ist die Projekt.- Nr in der Spalte A3 bis Ai bereits irgendwo vorhanden, soll eine MsgBox aufgehen, die darauf aufmerksam macht.

MsgBox "Die Projekt.-Nr. ist bereits vergeben!", vbExclamation, "Hinweis"

Sehr wahrscheinlich wurde die Frage schon 1000mal gestellt. Im Archiv habe ich auch schon geschaut, kann aber mit den Suchergebnissen nicht wirklich was anfangen, bzw. nicht auf mein Problem übertragen.

Danke für jede Antwort!
-Mark-

https://www.herber.de/bbs/user/78200.xlsm

  

Betrifft: AW: Doppelte Werte in einer Spalte vermeiden von: Matthias
Geschrieben am: 03.01.2012 20:39:27

die Tabellefunktion Zählenwenn in VBA anwenden und Ausdrücke nur hinzufügen, wenn 1 zurückgeliefert wird:

Code:

Private Sub UserForm_Activate()
Dim i As Long
With Tabelle2
    For i = 1 To 100
        If .Cells(i, 1) <= Now And WorksheetFunction.CountIf(.Range("A1:A" & i), .Cells(i, 1)) = _
 1 Then
            .ListBox1.AddItem .Cells(i, 2)
        End If
    Next i
End With
End Sub



  

Betrifft: AW: Doppelte Werte in einer Spalte vermeiden von: Mark
Geschrieben am: 03.01.2012 21:06:22

Hallo Matthias,

mein VBA ist ja nicht so doll.
Die Schleife in Spalte A1 bis 100 habe ich verstanden. Den Rest leider nicht.
Ich habe keine Idee, wie ich deinen Ansatz auf meine Frage anwenden kann.
Kannst Du mir da nochmal weiterhelfen!

Gruß
-Mark-


  

Betrifft: AW: Doppelte Werte in einer Spalte vermeiden von: Rudi Maintaire
Geschrieben am: 03.01.2012 21:22:20

Hallo,
so:

If Not IsError(Application.Match(Sheets("Neues Projekt").Cells(5, 3), Sheets("Archiv").Columns( _
1), 0)) Then
  MsgBox "Projektnummer schon vorhanden", vbCritical + vbOKOnly, "Gebe bekannt..."
  Exit Sub
End If

Gruß
Rudi


  

Betrifft: AW: Doppelte Werte in einer Spalte vermeiden von: Mark
Geschrieben am: 03.01.2012 21:39:36

Hallo Rudi,
dein Baustein funktioniert gut. Vielen Dank hierfür!
Jetzt will ich es nur noch verstehen.

Die Lösung funktioniert über einen Vergleich der Spalte 1 (Tabelle "Archiv") mit der Zelle C5 (Tabelle "Neues Projekt"). Ist der Wert gleich, dann geht die Msg-Box auf.

Durch die Formulierung "Columns( _1)" werden jetzt alle Werte der Spalte 1 geprüft!

Hoffe, dass ich es so richtig verstanden habe?!?
-Mark-


  

Betrifft: AW: Doppelte Werte in einer Spalte vermeiden von: Rudi Maintaire
Geschrieben am: 03.01.2012 21:54:16

Hallo,
richtig verstanden.
Letztendlich wird die Funktion VERGLEICH() angewendet.
In Columns(_1) musst du den _ löschen. Den hat die Forensoftware eingebaut.


Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Doppelte Werte in einer Spalte vermeiden"