Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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

Namenvergabe bedingt

Namenvergabe bedingt
Harald
Hallo Excellfreaks
hab im ganzen Forum schon nach einer Lösung gefunden und leider noch nichts gefunden.
Problem:
Spalte A: Eintrag eines Namen
Spalte B: Eintrag x oder y
nun will ich erreichen das in einer Gültigkeitsabfrage nur mehr Namen gelistet werden die in Spalte B mit einem X gekennzeichnet sind angezeigt werden.
wäre nett wenn sich jemand diesem Problem annimmt
Danke im voraus
Harald

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

Betreff
Benutzer
Anzeige
AW: Namenvergabe bedingt
13.01.2010 12:51:37
ingoG
Hallo Harald,
was hälst Du von einer Hilfsspalte auf die Du die Gültigkeit referenzierst.
in dieser Hilfsspalte kannst Du per Formel nur die Namen eintragen, die ein x in Spalte B haben...
Ich hoffe, das reicht Dir als ansatz.
Gruß Ingo
PS eine Rückmeldung wäre nett...
AW: Namenvergabe bedingt
13.01.2010 12:54:52
Harald
an Hilfszeile hab ich auch schon gedacht und ausprobiert.
jdoch werden hier auch alle Leerzeilen übernommen und im der Gültigkeitsauswahl sind dies auch ausgeführt(Namen werden nicht lückenlos angezeigt).
AW: Namenvergabe bedingt
13.01.2010 13:48:16
ingoG
Hallo Harald,
wenn Du mit Leerzeilen am ende leben kannst, geht folgende MatrixFormel:
in Spalte A1:a1000 stehen die Namen
in B1:b1000 die x,Y
dann trägst du zB in c1 folgende Formel ein:
=WENN(ZÄHLENWENN(B:B;"x")<ZEILE();"";INDEX(A:A;MIN(WENN(ZÄHLENWENN(INDIREKT("B1:B"&ZEILE($1:$1000) );"X")=ZEILE();ZEILE($1:$1000);99999))))
(Matrixformel, Eingabe abschließen mit Strg-Shift-Enter)
und kopierst sie nach unten.
Deine Gültigkeitsliste referenzierst Du dann auf ZB c1:c100
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
@ingoG
13.01.2010 15:41:33
Björn
Hallo Ingo,
siehe mal meine Antwort von 13:42, das ist noch etwas kürzer.
Außerdem war ich etwas schneller ;-) (Spaß)
Gruß
Björn B.
AW: Namenvergabe bedingt
13.01.2010 12:54:57
welga
Hallo Harald S,
in Excel mit Formel:
=wenn(B1="x";A1;"")
mit VBA:
Sub test()
Dim i As Long
Dim ii As Long
ii = 0
For i = 1 To Cells(1, 1).End(xlDown).Row
If Cells(i, 2) = "x" Then
ii = ii + 1
Cells(ii, 4) = Cells(i, 1)
End If
Next i
End Sub
Gruß
welga
AW: Namenvergabe bedingt
13.01.2010 13:24:39
welga
Hallo nochmals,
markiere Spalte "A" und vergebe einen Gültigkeitsbereich als Liste "=$D:$D".
Dann schreibe das Makro in das entsprechende Tabellenblatt:
Private Sub worksheet_change(ByVal target As Range)
Dim i As Long
Dim ii As Long
Dim a As Long
If Not Intersect(Range(Cells(1, 2), Cells(Cells(1, 2).End(xlDown).Row, 2)), target) Is Nothing  _
Then
Application.ScreenUpdating = False
Range(Cells(1, 4), Cells(Cells(1, 4).End(xlDown).Row, 4)).Select
Selection.ClearContents
ii = 1
For i = 1 To Cells(1, 1).End(xlDown).Row
If Cells(i, 2) = "x" Then
ii = ii + 1
Cells(ii, 4) = Cells(i, 1)
End If
Next i
If Cells(2, 4)  "" Then
Cells(1, 4).Select
Selection.AutoFilter
Range(Cells(2, 4), Cells(Cells(1, 4).End(xlDown).Row, 4)).Sort Key1:=Range("D2"), Order1:= _
xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.AutoFilter
Selection.Delete shift:=xlUp
For a = Cells(1, 4).End(xlDown).Row To 2 Step -1
If Cells(a, 4) = Cells(a - 1, 4) Then
Cells(a, 4).Select
Selection.Delete shift:=xlUp
End If
Next a
End If
Application.ScreenUpdating = True
End If
End Sub

Anzeige
mit einem Autofilter....
13.01.2010 13:10:25
Björn
Hallo,
... mit einem Autofilter auf Spalte B, dann als Eintrag "x" und schon werden alle anderen ausgeblendet.
Das Ergebnis kannst du kopieren und "Inhalte einfügen - nur Werte", dann werden die ausgeblendeten nicht mitkopiert.
Gruß
Björn B.
ganz einfach..
13.01.2010 13:42:38
Björn
Hallo,
hab noch mal ne neue Idee.
Über eine Hilfsspalte, z.B. Spalte C.
Die Formel funktioniert bis Zeile 1000, das kannst du aber anpassen.
=INDEX(A:A;KKLEINSTE(WENN(B$1:B$1000="x";ZEILE($1:$1000));ZEILE(A1)))
Diese Formel muss als Matrix-Formel eingegeben werden.
Also nicht mit Enter bestätigen, sondern mit Strg+Shift+Enter, danach sollten geschweifte Klammern um die Formel sein. {}
Diese Formel dann in Spalte C nach unten kopieren.
Einfach mal testen, wenn in B ein X steht, dann wird der Name aus A in C angezeigt.
Gruß
Björn B.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige