PDA

Vollständige Version anzeigen : MsgBox Information


VincentDarklej
17.07.2014, 20:37
Abend Leute
Bräuchte kurz eure Hilfe.

Nachdem ich den Doppeleintrag verhindert habe, soll eine Information erstellt werden. Die Information soll nur bei Doppeleintrag angezeigt werden. Im Moment erscheint er nach betätigen des Buttons

Hier mein Code.

Private Sub ComboBox2_Click() 'Eintrag TextBox1 in Tabelle1 SpalteA eintragen
Dim pfad As String
pfad = Worksheets("Tabelle1").Range("A1").Value

Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "A").Value = TextBox1

'Doppeleinträge in SpalteA verhindern

ActiveSheet.Range("$A$1:$A$65536").RemoveDuplicates Columns:=1, Header:=xlNo

MsgBox "Name Existierte schon. " & Chr(10) & _
"Eintrag wurde verhindert"

Danke
Gruß User Vincent

Mc Santa
17.07.2014, 21:16
Hallo,

ich schlage folgenden Code vor:
Private Sub ComboBox2_Click()
With Worksheets("Tabelle1")
rng As Range
Set rng = ws.Cells(1, 1).EntireColumn.Find(What:=TextBox1.Value, After:=ws.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If rng Is Nothing Then
ws.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = TextBox1.Value
Else
MsgBox "Name ist schon vergeben"
End If
End With
End Sub

Hilft dir das weiter?
VG

VincentDarklej
17.07.2014, 21:26
Hallo Santa
Erhalte lauter Fehlermeldungen
Dim rng As Range habe ich gefunden, fehlte das Dim
Fehlt noch Variable ws
Dim ws As ???? Cells funktioniert nicht
Gruß Vincent

Mc Santa
17.07.2014, 21:38
Jetzt getestet:
Private Sub ComboBox2_Click()
With Worksheets("Tabelle1")
Dim rng As Range
Set rng = .Cells(1, 1).EntireColumn.Find(What:=TextBox1.Value, After:=.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If rng Is Nothing Then
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = TextBox1.Value
Else
MsgBox "Name ist schon vergeben"
End If
End With
End Sub

geht es jetzt?

VG

VincentDarklej
17.07.2014, 22:00
Es funktioniert genauso wie es soll
Dank Dir VG
Wie kann ich so eine Information machen, falls ich es auch einmal an einer anderen Stelle brauche?
Auf was muss ich da achten.
Gruß Vincent und noch eine gute Nacht.

Mc Santa
17.07.2014, 22:03
Hallo,

schön, dass es jetzt geht :)

Ich habe einen etwas anderen Ansatz verwendet: Zunächst suche ich den Begriff, den ich eintragen will in Spalte A. Nur wenn ich ihn nicht finde, wird er eingetragen, sonst gibt es die Meldung.
Die Funktion .Find ist sehr praktisch und nutze ich bei Makros immer wieder. Solltest du dir ansehen :)

VG

(Kleine Anmerkung am Rande, falls du je darauf stößt: Die .Find Funktion hat leider Schwierigkeiten damit ein Datum zu finden)

VincentDarklej
18.07.2014, 20:28
Abend zusammen
VG wie muss ich den Code verändern, damit der Code von dir in einer Zeile sucht und schreibt?
Hatte diesen Code benutzt der auch funktioniert, doch ich wollte ihn auch so abändern wie dein Code oben.

Worksheets("Tabelle2").Activate
Range("A1").Activate
Dim Zeile As Range
Set Zeile = ActiveCell.EntireRow
Zeile.Find("", ActiveCell, xlFormulas, xlWhole, xlByColumns, xlNext).Value = TextBox1

Set Zeile = Nothing

'Doppelte Einträge in Tabelle2 Zeile1 löschen
Dim i As Long
With Worksheets("Tabelle2") 'Name anpassen
For i = .Cells(1, .Columns.Count).End(xlToLeft).Column To 1 Step -1
If Application.CountIf(.Rows(1), .Cells(1, i)) > 1 Then .Cells(1, i).ClearContents
Next
End With

Gruß Vincent

Mc Santa
19.07.2014, 00:37
Hallo,

ungetestet etwa so:
Private Sub ComboBox2_Click()
With Worksheets("Tabelle1")
Dim rng As Range
Set rng = .Cells(1, 1).EntireRow.Find(What:=TextBox1.Value, After:=.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If rng Is Nothing Then
.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1).Value = TextBox1.Value
Else
MsgBox "Name ist schon vergeben"
End If
End With
End Sub

Funktioniert es?

Viele Grüße
Mc Santa

VincentDarklej
19.07.2014, 04:35
Morgen Santa
Werde es heute oder morgen testen, sobald ich Zeit habe und sage dann Bescheid.
Gruß Vincent

VincentDarklej
20.07.2014, 19:35
Abend Santa
Der Code funktioniert. Danke für die Hilfe. Bewertung habe ich schon gemacht.
Gruß Vincent

Mc Santa
20.07.2014, 19:59
Super!
Danke für die Rückmeldung :)