Hallo zusammen,
ich habe folgendes Problem:
Bei uns gibt es eine Excelliste, auf die fast jeder Zugriff hat und diese deswegen regelmäßig zerstört wird. Da auch jeder Zugriff haben SOLL, habe ich die Eintragung jetzt über eine Eingabemaske erledigt, sodass jeder etwas eintragen kann, aber niemand direkt in der Liste rumpfuscht.
Jeder Eintrag soll dabei eine fortlaufende Nummer erhalten. Dabei sollte die Maske natürlich die Liste "scannen" und die nächstmögliche freie Zeile unter den bereits Eingetragenen Zeilen erhalten, auch wenn man weiter unten eine Zeile anklickt.
Also Klick irgendwo in der Tabelle -> Falls schon etwas in der Zeile steht, alles in der MAske anzeigen um ggfls. etwas ändern zu können (das funktioniert), Ansonsten nächste freie Zeile suchen -> Maske öffnen
Meine Idee war, es über eine Do While Schleife zu lösen, bei der einfach die oberste Zeile genommen wird und dann solange nach unten zählt, bis die nächste freie Zeile erreicht ist. Das will aber nicht so ganz klappen.
Die Maske wird folgendermaßen aufgerufen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
zeile = ActiveCell.Row
If Cells(zeile, 1).Value = "" Then
Call neu
End If
Eingabemaske (zeile)
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Das Sub neu sieht so aus und wird noch anderweitig benötigt:
Sub neu()
Application.ScreenUpdating = False
Dim reihe, zeile As Integer
reihe = ActiveCell.Row
For reihe = 4 To 10000
If Cells(reihe, 1).Value = "" Then
Cells(reihe, 1).Value = Cells(reihe - 1, 1).Value + 1
Exit For
End If
Next reihe
Application.ScreenUpdating = True
End Sub
Ich hoffe ihr könnt mir weiterhelfen. Danke schon mal im Voraus.
Gruß
Mike |