Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
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
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SVERWEIS auf variablen Bereich

SVERWEIS auf variablen Bereich
13.12.2002 10:53:19
Basti
Hallo,

ich habe folgendes Problem. Habe in den Zellen d5-15 eine leere Zellen,in denen man eine Projektnummer auswählen kann. Abhängig von der Auswahl möchte ich immer jeweils in Zelle e3 die zughörige Beschreibung anzeigen lassen. Wenn es nur eine Zelle wäre, wäre es mit SVERWEIS ja kein Problem, aber so muss ich ja den komletten Bereich abdecken.

Hat jemand eine Idee oder ist das unmöglich?

Grüße

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ZUSATZ
13.12.2002 10:54:17
Basti
es ist also gefordert, dass je nach aktiver "ProjektnummernZelle" die Beschreibung dort angezeigt wird...

Re: ZUSATZ
13.12.2002 10:58:37
Holger Levetzow
woher kommt die Beschreibung und was meinst Du mit kompletten Bereich?

Holger

Re: ZUSATZ
13.12.2002 11:02:49
Basti
Die Beschreibung kommt aus einem StammSheet, wo alle Projektdaten drinstehen. Mit kompletten Bereich meine ich den Auswahlbereich von d5-15. Dort ist in jeder Zelle die Auswahl einer Projektnummer möglich. Wenn der User als in d10 z.b. TEST001 eingibt soll in e3 die Beschreibung z.B. "Testprojekt" angezeigt werden...

Verständlich?

Re: ZUSATZ
13.12.2002 11:07:35
Holger Levetzow
steht in mehreren Zellen etwas drin? Wenn nicht, kannst Du doch alle zellen d5-15 verbinden und das Ergebnis für den SVerweis nutzen.

Holger

Anzeige
Re: ZUSATZ
13.12.2002 11:10:03
Basti
ja, es steht in mehreren Zellen was drin. Es handelt sich dabei um Zeiterfassung, jede Zeile kann also mit unterschiedlichen Projektnummer bestückt sein.

Das ist das Problem...

Re: ZUSATZ
13.12.2002 11:12:57
Holger Levetzow
und alle Kommentare sollen dann gleichzeitig nach E3?

Holger

Re: ZUSATZ
13.12.2002 11:16:50
Basti
nicht gleichzeitig, sondern jemand wählt beispielsweise in zeile 3 eine Projektnummer aus, auf die er Zeiten erfassen will, da er aber dazu die Beschreibung benötigt (als Sicherheit vor Falscherfassung) soll diese ihm dann in e3 angezeigt werden.
dann geht er in die nächste zeile, erfasst unter einer anderen projektnummer und das beschreibungsfeld e3 zeigt nun die beschreibung der anderen projektnummer an.
Anzeige
Re: ZUSATZ
13.12.2002 12:05:46
Holger Levetzow
dann würde ich VBA nehmen, z.B. sowas für die tabelle:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 3 And Target.Row >= 5 And Target.Row <= 15 Then
'suchen und in E3 eintragen
End If
End Sub

Holger

Re: ZUSATZ
13.12.2002 12:34:21
Basti
das scheint schon zu klappen. Super, danke für die AW!

Aber wie bau ich denn so eine Suchen-Sub in VB bzw. den SVERWEIS. Kenn das nur mit direkt in der Zelle eintragen...

Re: ZUSATZ
13.12.2002 12:58:13
Holger Levetzow
in Tabelle Stammdaten in A1:B8 stehen die Nummer und der Kommentar. Dann geht mit SVerweis:

Holger
Re: ZUSATZ
13.12.2002 13:01:08
Holger Levetzow@T-Online.de
ups, ein Fehler bei der Übertragung:

das %3C=15 heißt natürlich "kleiner gleich 15".

Holger

Anzeige
Re: ZUSATZ
13.12.2002 13:05:11
Basti
Hi, noch mal super.

Aber er meckert bei mir bei dem Prozent.
Auf was verweist das %3c= 15, muss nämlich anpassen???

Fehlermeldung
13.12.2002 13:07:22
Basti
er meckert nun, dass ein Objekt erfordelich sei:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 7 And Target.Row >= 2 And Target.Row <> 14 Then
Range("E3") = WorksheetFuncti.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B100"), 2, False)
End If
End Sub

Re: Fehlermeldung
13.12.2002 13:50:35
Holger Levetzow
irgendwie ist der Wurm in der Übertragung. Es fehlten on bei Function:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 7 And Target.Row >= 2 And Target.Row <> 14 Then
Range("E3") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B100"), 2, False)
End If
End Sub

Holger

Anzeige
Re: Fehlermeldung
13.12.2002 14:05:12
Basti
jau, das kam mir auch schon komisch vor.

Das Problem ist nun nur noch, dass wenn man den Inhalt wieder löscht, die lookup-Eigenschaft nicht mehr zugeordnet werden kann...

Re: Fehlermeldung
13.12.2002 14:10:01
Holger Levetzow
dann erweiter z.B. so:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 7 And Target.Row >= 2 And Target.Row <> 14 Then
If Target.Value = "" Then
Range("E3") = ""
Else: Range("E3") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B100"), 2, False)
End If
End If
End Sub

Holger

Re: Fehlermeldung
13.12.2002 14:25:38
Basti
da drunter habe ich auch noch zwei Eingaben, für km-Geld udn Kosten.

Kann man die Sachen irgendwie so schachteln, dass das für variable Zellen gültig ist, denn in km und kosten sind die Eingaben in Spalte B

Anzeige
Re: Fehlermeldung
13.12.2002 14:47:11
Holger Levetzow
Allmählich wird es kompliziert, durchzusehen. Du kannst doch aber jeden Bereich einzeln bearbeiten:

'Spalte B:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 2 And Target.Row >= 2 And Target.Row <> 14 Then
...
End If
End Sub
'Spalte G:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 7 And Target.Row >= 2 And Target.Row <> 14 Then
...
End If
End Sub

usw.

notfalls schicke die Datei mit Erlaüterungen rüber.

mfg Holger

da sagt er mir dann "mehrdeutiger Name"
13.12.2002 14:53:54
Basti

code is like that:

' für Zeiterfassung
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 7 And Target.Row >= 5 And Target.Row <> 14 Then
If Target.Value = "" Then
Range("G2") = ""
Else: Range("G2") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

End Sub
' für KM-Geld
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 2 And Target.Row >= 22 And Target.Row <> 26 Then
If Target.Value = "" Then
Range("G20") = ""
Else: Range("G20") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

End Sub
' für verauslagte Kosten
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 2 And Target.Row >= 33 And Target.Row <> 37 Then
If Target.Value = "" Then
Range("G31") = ""
Else: Range("G31") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

End Sub

Anzeige
ich... -!!!-
13.12.2002 15:13:58
Basti
ich bin jetzt erst mal out of office, aber ich setz mich zu Hause noch mal dran.

Wäre cool, wenn du zu meinem "mehrdeutig-Beitrag" noch ne Lösung hättest.

Mailaddy hast du ja auch...

bis denn, Basti

Re: ich... -!!!-
13.12.2002 15:18:13
Holger Levetzow
die Sub darf nur einmal definiert werden (war mein Fehler!)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Saplte B
If Target.Column = 2 And Target.Row >= 2 And Target.Row <> 14 Then
...
End If
'Spalte E
If Target.Column = 7 And Target.Row >= 2 And Target.Row <> 14 Then
...
End If
...hier alles rein
end sub

so? geht nich
13.12.2002 15:25:03
Basti
sagt er aber wieder, dass die Lookup-Eigenschaft nicht zugeordnet werden kann..

' für Zeiterfassung
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 7 And Target.Row >= 5 And Target.Row <> 14 Then
If Target.Value = "" Then
Range("G2") = ""
Else: Range("G2") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

' für KM-Geld
If Target.Column = 2 And Target.Row >= 22 And Target.Row <> 26 Then
If Target.Value = "" Then
Range("G20") = ""
Else: Range("G20") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

' für verauslagte Kosten
If Target.Column = 2 And Target.Row >= 33 And Target.Row <> 37 Then
If Target.Value = "" Then
Range("G31") = ""
Else: Range("G31") = WorksheetFunction.VLookup(Target.Value, Sheets("Stammblatt").Range("A20:B50"), 2, False)
End If
End If

End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige