Anzeige
Archiv - Navigation
1216to1220
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
DropDownfeld
RainerK
Guten Morgen,
kenne leider nicht alle Möglichkeiten des DropDownfeldes, deshalb eine Frage:
Kann ich über DATEN|DATENÜBERPRÜFUNG auch eine Liste über zwei Felder erhalten und bei Auswahl so wie in den UserFormen möglich dann z. B. nur den Wert 1 erhalte?
Beispiel Kosten Stelle:
1 Telefonkosten
2 PKW-Kosten
3 ...
Auswahl über Auswahlliste
1 Telefonkosten
Eintrag ins Feld
1
Gruß Rainer

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: DropDownfeld
20.06.2011 08:45:25
Matthias
Hallo
Ich glaube das geht nicht mit DATEN|DATENÜBERPRÜFUNG
Die Quelle muß einen Bezug zu einer einzelnen Zeile oder zu einer einzelnen Spalte haben.
Werte doch Deine Auswahl über Index aus
http://www.excelformeln.de/formeln.html?welcher=24
 AB
11Telfonbuch
22PKW-Kosten
33Sonstiges
4  
5 Auswertung
6PKW-Kosten2

Formeln der Tabelle
ZelleFormel
B6=INDEX(A1:A3;VERGLEICH(A6;B1:B3;0))

Datengültigkeit der Tabelle
ZelleZulassenDatenEingabe 1Eingabe 2
A6Liste =$B$1:$B$3 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Userbild
Anzeige
AW: DropDownfeld
20.06.2011 09:06:57
RainerK
Hallo Matthias,
vielen Dank für Deine Formel. Trifft nicht ganz den Kern, da ich die Lösung mit WVERWEIS schon habe.
Allerdings sind da immer mal wieder Fehler (wie im Link beschrieben), so dass ich's ggf. noch auf Deine Formel ändern muss.
Mein eigentliches Ziel ist, dem Anwender, die Kostenstellen mit Text anzuzeigen und bei Auswahl dann die Ziffer in die aktive Zelle zu bekommen.
Muss dann wohl über VBA gelöst werden.
Allerdings habe ich da auch schon lange nichts mehr gemacht und muss mal in meinen gespeicherten Vorlagen nachsehen.
Gruß Rainer
AW: DropDownfeld
20.06.2011 10:05:50
RainerK
Hallo Matthias,
danke, das war wohl Gedankenübertragung.
Habe meine momentane Liste allerdings von H1:Y2.
Dabei stehen in H1-Y1 die Ziffern 1-18 und in H2-Y2 die Kostenstellen.
Meine mich zu erinnern, dass die ComboBox aus den Formularsteuerelementen nicht ganz so flexibel ist. Deshalb habe ich die aus den Active-X-Steuerelementen gewählt.
Habe mir über VBA bereits diesen Code erstellt: Private Sub Worksheet_Change(ByVal Target As Range) With ActiveCell If .Address(-1, 0) = "" Then Exit Sub If .Value = "" Then Kostenstellen.Show End If End With End Sub und stehe momentan bei:
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource Tabelle7.Range("H1:Y2")
End Sub
Code scheint aber so nicht ganz zu stimmen.
ColumnCount habe ich auf 2 gestellt.
Gruß Rainer
Anzeige
If .Address(-1, 0) = ""
20.06.2011 10:09:56
Rudi
Hallo,
du meinst wohl
If .OffSet(-1, 0) = ""
Gruß
Rudi
AW: If .Address(-1, 0) = ""
20.06.2011 10:18:36
RainerK
Hallo Rudi,
mit Offset funktioniert es zumindest nicht wie ich möchte.
In Spalte A steht das Datum und in Spalte B die Kostenstelle.
Die Kostenstelle soll aber nur geöffnet werden, wenn links davon ein Datum eingetragen ist.
Allerdings überlege ich gerade, ob ich nicht eine andere Variante nehme, da man ja u.U. irgendwann zumindest ein paar Kostenstellen kennt und direkt eingeben möchte.
Habe gerade versucht ein ? einzugeben. Dann gab es allerdings einen Fehler.
        If .Address(-1, 0) = "" Then Exit Sub
If .Value = "?" Then
Kostenstellen.Show

Gruß Rainer
Anzeige
AW: If .Address(-1, 0) = ""
20.06.2011 11:01:36
RainerK
Hallo,
so ist es eben mit den Anfängern. Nachfolgender Code sollte eigentlich nur für Spalte B, ab B3 abwärts gültig sein.
Vermutlich wird dann mein Code dann nur zufälltig funktioniert haben und wie von Rudi auf Offset abzuändern sein. Allerdings müsste der Bereich ja dann auf A+B noch eingegrenzt werden.
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveCell
If .Address(-1, 0) = "" Then Exit Sub
If .Value = "" Then
Kostenstellen.Show
End If
End With
End Sub

Mit der Tatsache, dass die Auswahl nicht immer benötigt wird dürfte ein Hilfe-Button wohl die bessere Variante sein.
Gruß Rainer
Anzeige
AW: If .Address(-1, 0) = ""
20.06.2011 11:31:04
Reinhard
Hallo Rainer,
Address und Offset sind zwei verschiedenen Dinge.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub
If Target.Row 

Gruß
Reinhard
AW: hier noch ein Beispiel mit Userform ...
20.06.2011 13:01:13
RainerK
Vielen Dank für Eure Mithilfe.
Habe nun ersteinmal die Variante UserForm gewählt und werde einfach mal abwarten, bis der Anwender mal regelmäßig mit gearbeitet hat.
Gruß Rainer
Anzeige
kleine Änderung ...
20.06.2011 23:49:02
Matthias
Hallo
Bitte ändere noch diese Zeile
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D3:D20")) Is Nothing Then
If IsDate(Target.Offset(, -1)) Then UserForm1.Show
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D3:D20")) Is Nothing And Target.Count = 1 Then
If IsDate(Target.Offset(, -1)) Then UserForm1.Show
End If
End Sub

Das ist notwendig, damit kein VBA-Fehler auftritt wenn z.B. mehrere Zellen markiert werden
Userbild
Anzeige
AW: kleine Änderung ...
21.06.2011 08:58:10
RainerK
Hallo Matthias,
danke, mach ich und vielen Dank für Deine Aufmerksamkeit.
Gruß Rainer

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige