Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nicht verwendete Zahle

Nicht verwendete Zahle
01.01.2009 12:45:00
pabro
Hallo Excel-Freunde,
kann mir jemand sagen ob sich folgendes Problem lösen läst:
Ich muss die Nummer von 150 Ausweiskarten verwalten. Die Nummer (800-950) stehen in der Spalte „K“ einer Mitarbeitertabelle. Bedingt durch das Wechseln, Ausscheiden oder Einstellen von MA ist die Numerik ziemlich durcheinander geraten und mir ist es schon passiert, dass ich eine Ausweisnummer aus versehen doppelt vergeben habe.
Ich hätte jetzt gerne eine Formel oder ein Makro dass den Bereich D2-D111 auf das Vorhandensein der Ziffern 800-900 überprüft und die in dem Bereich nicht gefunden Ziffern in der Spalte „P“ auflistet sodass ich jederzeit einen Überblick über die nicht verwendeten Ausweisnummer haben.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nicht verwendete Zahle
01.01.2009 14:40:00
pabro
Hallo Timo,
geht leider nicht, ich bekomme die nach oben noch freien Zalhlem angezeigt aber wenn ich aus der Mitte derListe eine Zahl lösche wird mir die nicht als freie Zahl angezeigt!
AW: Nicht verwendete Zahle
01.01.2009 14:15:00
Roland
Frohes Neues pabro,
wenn du wirklich nur freien Nummern800 und 900 haben willst, folgender Ansatz
Sub FreieNummern() Dim arrVorhanden, arrTemp(1 To 100) As Integer, arrTemp2 Dim lngV As Long, lngT As Long, lngT2 As Long arrVorhanden = Range("D2:D111") For lngT = 1 To 100 arrTemp(lngT) = lngT + 800 Next For lngV = LBound(arrVorhanden) To UBound(arrVorhanden) For lngT = 1 To 100 If arrTemp(lngT) 0 And arrTemp(lngT) = arrVorhanden(lngV, 1) Then arrTemp(lngT) = 0 lngT2 = lngT2 + 1 Exit For End If Next Next ReDim arrTemp2(1 To 100 - lngT2, 1 To 1) lngT2 = 1 For lngT = 1 To 100 If arrTemp(lngT) 0 Then arrTemp2(lngT2, 1) = arrTemp(lngT) lngT2 = lngT2 + 1 End If Next Range("P1") = "Freie Nummern:" Range("P2:P" & lngT2) = arrTemp2 Erase arrVorhanden Erase arrTemp Erase arrTemp2 End Sub


Kommst Du damit klar?
Gruß aus Berlin von
Roland Hochhäuser

Anzeige
AW: Nicht verwendete Zahle
01.01.2009 14:22:13
Uwe
Hi,
"viele Wege führen nach Rom" (;-):
Meine Lösung:
 DEFGHIJKLMNOP
1Genutzt           Frei
2800           811
3801           806
4802           803
5             
6804            
7805            
8             
9807            
10808            
11809            
12810            
13             
14812            
15813            
16814            
17815            
18816            

Formeln der Tabelle
ZelleFormel
P2{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P3{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P4{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P5{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P6{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P7{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P8{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P9{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P10{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P11{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P12{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P13{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P14{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P15{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P16{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P17{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
P18{=KGRÖSSTE((ZÄHLENWENN($D$1:$D$109;ZEILE($800:$900))=0)*ZEILE($800:$900); ZEILE()-1)}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Uwe
(:o)
Anzeige
AW: Nicht verwendete Zahle
01.01.2009 14:44:00
Daniel
Hi
es sind ja bereits ein paar lösungen vorgestellt worden, prinzipiell würde ich zu den Formellösungen raten, da die Makros grundsätztlich den Nachteil haben, daß sie erstmal laufen müssen, um sicher zu gehen, daß die Daten aktuell sind, Formeln hingegen aktualisieren sich normalerweise automatisch (fall nicht in den Optionen die Berechnung auf Manuell umgestellt wurde)
nichts destotrotz, um die vielzahl der Möglichkeiten aufzuzeigen hier nochmal ne Makrolösung:

Sub freieZahlen()
Dim ze As Long, i As Long
Range("P:P").ClearContents
ze = 1
Range("P1") = "Freie Nummern"
For i = 800 To 900
If WorksheetFunction.CountIf(Range("D2:D111"), i) = 0 Then
ze = ze + 1
Cells(ze, "P").Value = i
End If
Next
End Sub


Gruß, Daniel

Anzeige
AW: Nicht verwendete Zahle
01.01.2009 14:53:00
pabro
Also Roland ich bin begeistert das Makro läuft perfekt, vielen Dank!
Danke für die Rückmeldung o.w.T.
01.01.2009 15:53:56
Roland

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige