Auswahlabfrage Kunde

04/05/2009 - 10:08 von ruedigermunz | Report spam
Hallo Community,

ich habe ein Problem für dass ich leider keine Lösung weiss... deshalb
nun meine Frage:

Ich habe eine Tabelle mit diversen Projekten mit den Spalten:

"Kunde" "Kundennummer" "Verantwortlicher" "Umsatz" "Preis"

nun würde ich gerne über eine Abfrage àhnlich dem "Autofilter" ein
Auswahlfenster
bekommen in der alle Kunden aufgelistet sind. Da es verschiedenen
Projekte sind kann ein Kunde
auch mehrmals vorkommen, in der Auswahlliste allerdings dann nur
einmal vorkommen, also ohne Duplikate.
Über das Auswahlfeld möchte ich auswàhlen welcher der Kunden angezeigt
werden soll. Da in den hinteren
Spalten, Berechnungen stattfinden sollen kann ich es nicht einfach
über den Autofilter machen sondern brauche eine andere Lösung.

Kann mir bitte wer einen Tipp geben? Vielen Dank

grüße
 

Lesen sie die antworten

#1 Andreas Killer
04/05/2009 - 12:31 | Warnen spam
On 4 Mai, 10:08, wrote:

Ich habe eine Tabelle mit diversen Projekten mit den Spalten:
"Kunde" "Kundennummer" "Verantwortlicher" "Umsatz" "Preis"

nun würde ich gerne über eine Abfrage àhnlich dem "Autofilter" ein
Auswahlfenster
bekommen in der alle Kunden aufgelistet sind. Da es verschiedenen
Projekte sind kann ein Kunde
auch mehrmals vorkommen, in der Auswahlliste allerdings dann nur
einmal vorkommen, also ohne Duplikate.
Über das Auswahlfeld möchte ich auswàhlen welcher der Kunden angezeigt


Eine Möglichkeit wàre eine Zelle via Daten\Gültigkeit\Liste direkt mit
den Namen der Kunden zu bestücken. Hat aber den Haken das im
Kundennamen kein , vorkommen darf.

Anbei ein Beispiel für den Kundenbereich von A2:A10 und Modifizierung
der Zelle B1, sowie ersetzen des , durch ein ;

Andreas.

Sub Main()
Const KommaErsatz = ";"
Dim R As Range, S As String, I As Long

'Bereich der Kunden durchlaufen
With Range("A2:A10")
'Alle Zellen dieses Bereichs...
Set R = .Cells
'...einzeln durchlaufen und
For I = 1 To R.Cells.Count
'...prüfen ob sie doppelt vorkommen
If Application.CountIf(R, R(I)) > 1 Then
'Ja: Kunde schon aufgenommen?
If InStr(1, S, R(I), vbTextCompare) = 0 Then _
S = S & Replace(R(I), ",", KommaErsatz) & ","
Else
'Nein: Zelle leer?
If Not IsEmpty(R(I)) Then _
S = S & Replace(R(I), ",", KommaErsatz) & ","
End If
Next I
End With

'Gültigkeit von B1 setzen
With Range("B1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=S
.InCellDropdown = True
End With
End Sub

Ähnliche fragen