Hallo Holger
Vielen Dank für deine Hilfestellung
Ich habe ein altes Buch über VBA-Programmierung gefunden und das Problem gelöst:
Private Sub cmderfassen_Click()
'Definitionen
Dim i As Long 'als Zahl definiert
Dim a As Long
Dim b As Long
Dim c As Long
If t_kurzzeichen.Text = "" Then 'falls keine Eingabe unterbrechen
Exit Sub
End If
i = 0
For i = 1 To 1001
If UCase(Sheets("Daten").Cells(i, 1).Value) = UCase(t_kurzzeichen.Text) Then 'Prüfung ob Kurzzeichen vorhanden
MsgBox ("Dieses Kurzzeichen besteht bereits für " & Sheets("daten").Cells(i, 2).Value & " " & Sheets("Daten").Cells(i, 3).Value)
Exit Sub
Else
End If
Next i
a = 0
For a = 1 To 1001
If Sheets("Daten").Cells(a, 1).Value = "" Then
Sheets("Daten").Cells(a, 1).Value = UCase(t_kurzzeichen.Text) 'Schleife für Kurzzeichen
Exit For
Else
End If
Next a
b = 0
For b = 1 To 1001
If Sheets("Daten").Cells(b, 2).Value = "" Then
Sheets("Daten").Cells(b, 2).Value = t_name.Text 'Schleife für Name
Exit For
Else
End If
Next b
c = 0
For c = 1 To 1001
If Sheets("Daten").Cells(c, 3).Value = "" Then
Sheets("Daten").Cells(c, 3).Value = t_vorname.Text 'Schleife für Vorname
Exit For
Else
End If
Next c
MsgBox ("Der Benutzer wurde gespeichert!" & vbLf & vbLf & Sheets("Daten").Cells(a, 1).Value & vbLf & Sheets("Daten").Cells(b, 2).Value & " " & Sheets("Daten").Cells(c, 3).Value)
t_kurzzeichen.Value = ""
t_name.Value = ""
t_vorname.Value = ""
End Sub
Private Sub cmdpruefen_Click()
Dim q As Long
Dim p As Long
If t_kurzzeichen.Text = "" Then 'falls keine Eingabe unterbrechen
Exit Sub
End If
q = 0
For q = 1 To 1001
If UCase(Sheets("Daten").Cells(q, 1).Value) = UCase(t_kurzzeichen.Text) Then 'Prüfung ob Kurzzeichen vorhanden
MsgBox ("Dieses Kurzzeichen besteht bereits für " & Sheets("daten").Cells(q, 2).Value & " " & Sheets("Daten").Cells(q, 3).Value)
Else
End If
Next q
p = 0
For p = 1 To 1001
If UCase(Sheets("Daten").Cells(p, 1).Value) <> UCase(t_kurzzeichen.Text) Then
Else
Exit Sub
End If
Next p
MsgBox ("Das Kurzzeichen " & UCase(t_kurzzeichen.Value) & " ist verfügbar!")
End Sub
lg
Samuel
Holger schrieb am 29.10.2009 14:03:50:
Hallo Samuel,
ich vermute, du brauchst so etwas Ähliches für den commandButton deiner UserForm
a = Worksheets("Tabelle 2").Cells(Rows.Count, 1).End(xlUp).Row
for i = 1 to a
If ucase(Worksheets("Tabelle2").cells(i, 1)) = ucase(Textbox1) Then
Msgbox "Kürzel gibt es schon! Ändern!"
Exit sub
end if
next i
Worksheets("Tabelle 2").Cells(a + 1, 1) = Textbox1
Worksheets("Tabelle 2").Cells(a + 1, 2) = Textbox2
Worksheets("Tabelle 2").Cells(a + 1, 3) = Textbox3
Ungetestet!
Gruß
Holger
Samuel schrieb am 28.10.2009 09:15:55:
Hallo zusammen
Ich habe vor für meine Unternehmung eine Exceldatei mit VBA zu programmieren.
Einige Vorkenntnisse habe ich.
Es geht dabei um Kurzzeichen
Jeder Mitarbeiter hat ein Kurzzeichen
zum Beispiel ich habe BS
also Baumgartner Samuel.
es ist aber nicht immer so dass es Nachname Vorname ist.
Die Schwierigkeit dabei ist, dass es nicht 2 identische Kurzzeichen geben darf.
Ich habe also zwei Tabellen. in der einen starte ich die UserForm mit 3 Textboxen für Kurzzeichen, Name und Vorname und einer cmd für Ausführen. In der zweiten Tabelle gibt es drei Spalten für Kurzzeichen, Name und Vorname. Die wichtigste Spalte dabei ist natürlich Spalte A wo die Kurzzeichen stehen.
VBA soll also erst überprüfen ob das Kurzzeichen bereits besteht. Wenn ja soll es eine Meldung geben, man solle ein anderes verwenden. Wenn nicht sollen die Daten in die nächste leere Zeile von Tabelle 2 geschrieben werden.
Bitte helft mir!
Gruss
Sämi
|