User Tools

Site Tools


vba:excel:functions:kleinstenichtvorhandenezahl

[VBA] [Excel] kleinsteNichtVorhandeneZahl()

Schreibst eine kleine VBA-Funktion und wendest die nachher an. Dazu im Workbook im VB-Editor ein Modul anhängen und die folgende Funktion einfügen

Public Function kleinsteNichtVorhandeneZahl(myRange As range) As Integer
	Dim MyValues    As Object
	Dim myValue     As Variant
	Dim tempValue   As Integer
On Error GoTo Err_Handler
 
	Set MyValues = CreateObject("System.collections.arraylist")
 
	' Alle Inhalte in ein Array Schreiben.
	For Each myValue In myRange.Value
		If IsNumeric(myValue) And Not IsEmpty(myValue) Then
			If MyValues.Contains(myValue) = False Then
				MyValues.Add CInt(myValue)
			End If
		End If
	Next myValue
 
	'ArrayList sortieren
	MyValues.Sort
 
	'alle Einträge durchgehen und prüfen ob sie den vorhergehenden Eintrag+1 sind
	For Each myValue In MyValues
		tempValue = tempValue + 1
		If Not CInt(myValue) = tempValue Then Exit For
	Next myValue
 
	kleinsteNichtVorhandeneZahl = tempValue
Exit_Handler:
On Error Resume Next
	Set objArrLst = Nothing
	Exit Function
 
Err_Handler:
	MsgBox Err.Description
	GoSub Exit_Handler
End Function

Anschliessend in eine beliebige Zelle die Funktion rechnen lassen Code:

=kleinsteNichtVorhandeneZahl(A1:B6)

Die Funktion funktioniert auch über ein mehrspaltigen Bereich

vba/excel/functions/kleinstenichtvorhandenezahl.txt · Last modified: 09.12.2013 09:39:54 (external edit)