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

Wertezuordnung

Wertezuordnung
22.06.2007 14:38:25
Dirk
Hallo euch allen,
ich habe ein Problem mit der Wertezuordnung:
In den gelb markierten Bereich sollen je nach Auswahl in C2 die entsprechenden Werte aus der danebenliegenden Tabelle "gezogen" werden.
Tabellenaufbau: https://www.herber.de/bbs/user/43495.xls
Grundsätzlich wäre das Problem wohl mit WENN... lösbar - allerdings habe ich im Original ca. 20 Fahrer u. fast jeder hat eine andere betriebliche Vereinbarung...
Ich freue mich auf eure Vorschläge !
MfG Dirk N.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wertezuordnung
22.06.2007 14:54:00
Rudi
Hallo,
C6 =INDEX($G6:$O6;1;VERGLEICH($B$2;$G$4:$O$4;0))
D6 =INDEX($G6:$O6;1;VERGLEICH($B$2;$G$4:$O$4;0)+1)
E6 =INDEX($G6:$O6;1;VERGLEICH($B$2;$G$4:$O$4;0)+2)
und runterkopieren.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Wertezuordnung
22.06.2007 15:19:00
Dirk
Hallo Rudi,
vielen Dank - funktioniert perfekt !!!
Zwar hatte ich auch schon diese Idee mit der Kombination von INDEX u. VERGLEICH, aber die Umsetzung überstieg meine Fähigkeiten...
Wenn ich dir nun auch noch schreiben würde, wie lange ich daran schon tüftelte, könntest du vor Lachkrämpfen das bevorstehende WE nicht mehr genießen... ;-)
Also erspare ich dir diese Info u. wünsche dir ein wunderschönes, erholsames WE u. weiterhin eine sprudelnde EXCEL-Problemlösungs-Quelle !
MfG Dirk N.

Anzeige
AW: Wertezuordnung
22.06.2007 15:30:00
Dirk
Hallo Andi,
auch deine Lösung funktioniert super !
Zwar stellt mich das Nachvollziehen (u. damit auch das Anpassen an mein Original) vor weitaus größere Probleme als Rudis Variante, aber ich werde mich damit ebenfalls näher beschäftigen...
Also auch dir vielen Dank u. ein schönes WE !
MfG Dirk

AW: Wertezuordnung
22.06.2007 16:04:48
Andi
Hi,
danke für die Rückmeldung!
Falls es Dich interessiert, eine kleine Erläuterung; das ganze ist eine Ereignis-Prozedur, die ausgelöst wird, wenn eine Zelle in der betreffenden Tabelle verändert wird (Worksheet_Change)
Im einzelnen passiert folgendes:
Dim fahrer As Range
Ich lege mir eine Variable an, in der ich eine Zelle speichern kann. As Range bedeutet, dass ich weder den Inhalt, noch die Adresse, sondern die Zelle sozusagen als Objekt darin speichere.
fahrer kann kann ich dann genauso verwenden wie zB Range("A1"), ActiveCell, ...
If Not Intersect(Target, [b2]) Is Nothing Then
Intersect(Bereich1, Bereich2) überprüft, ob es zwischen zwei Bereichen eine Überschneidung gibt.
Im konkreten Fall, ob das Target und die Zelle B2 identisch sind, oder anders formuliert, ob die geänderte Zelle die Zelle B2 ist. Wenn es eine Überschneidung gibt, dann gibt Intersect genau den gemeinsamen Bereich als Ergebnis zurück, wenn es keine gibt, dann wird nothing zurückgegeben. Die Code-Zeile sagt also, führe das folgende nur aus, wenn NICHT nothing zurückgegeben wurde, sprich wenn B2 das Target war.
Set fahrer = Rows(4).Find(Range("B2").Value)
Ich suche in Zeile4 nach dem Wert, der in B2 steht, also nach dem gewünschten Fahrer, und weise die Zelle, in der er gefunden wurde der Vaiablen fahrer zu
Range("C6:E13").Value = Range(fahrer.Offset(2, 0), fahrer.Offset(9, 2)).Value
Range("C6:E13") ist der Zielbereich
Mit dem Offset-Befehl kann ich von einer Zelle aus eine bestimmte Anzahl Zeilen und Spalten nach rechts und/oder unten gehen, nach dem Muster Zelle.Offset(Zeile, Spalte).
Ich nehme mir also von der Zelle mit dem Fahrer aus gesehen den Bereich, der zwei Zeilen unterhalb in der gleichen Spalte beginnt, und 9 Zeilen unterhalb, 2 Spalten weiter rechts endet. Diesen Bereich schreibe ich in den Zielbereich.
End If
Ende if-Schleife
Schönen Gruß,
Andi

Anzeige
AW: Wertezuordnung
22.06.2007 20:56:43
Dirk
Hi Andy,
zunächst vielen Dank für deine sehr ausführlichen Erläuterungen - datt iss ja 'n erstklassijer Service.
"Falls es Dich interessiert,..." - keine Frage... Ich habe zuerst Rudis Variante in mein Original eingearbeitet u. es klappt auch super. Nun stellte ich allerdings fest, daß die Datei plötzlich sehr groß wurde - was aber auch andere Gründe haben könnte (s. Archiv)...
Jedenfalls nahm ich mir dann eine andere Originalkopie u. versuchte mich an deiner Variante. Zum einen wollte ich so testen, ob ich deine Erläuterungen verstanden habe u. zum anderen natürlich die Dateigrößen vergleichen.
Naja, nun habe ich einige grauen Haare mehr u. trotzdem noch kein Ergebnis... :-((
Hier nochmal der entsprechende Teil des Sheets mit "originaler" Zeilen- u. Spaltenplatzierung:
https://www.herber.de/bbs/user/43501.xls
Da einige MA die gleiche betriebl. Vereinbarung haben, entschloß ich mich, in der Vergleichstabelle (re.) nicht auf den Namen Bezug zu nehmen, sondern auf einen "Spesenschlüssel".
Wichtig sind sicherlich die Anmerkungen unter der Tabelle zum Ursprung des Vergleichswertes in G7.
Nun ist das Chaos natürlich perfekt u. ich sehe gar nicht mehr durch - VBA=Null !!!
Könntest du dir den Blattcode nochmal unter den neuen Prämissen ansehen u. ANPASSEN ?

MfG Dirk N.

Anzeige
AW: Wertezuordnung@Andi
22.06.2007 23:00:06
Uduuh
Hallo,
nur mal so: verzichte auf die [A1]-Syntax. Das ist zwar schnell zu schreiben, in diesem Fall auch egal, aber generell grottenlahm in der Verarbeitung. Range("A1") oder cells(1,1) ist min. 10x schneller.
Gruß aus’m Pott
Udo

AW: Wertezuordnung@Andi
23.06.2007 20:11:00
Dirk
Hallo Udo,
dein letzter Beitrag mag' ja für Andi sicherlich sehr hilfreich sein, aber er trägt leider nicht zur Lösung meiner letzte Anfrage bei...
Sicherlich hast du es übersehen, die "Frage noch offen" zu lassen...
ciao Dirk N.

AW: Wertezuordnung@Andi
24.06.2007 12:03:27
Gerd
Hallo Dirk,
bei Änderung des Suchschlüssels durch Formel benötigst das Calculate-Ereignis im Tabellenblattmodul.

Private Sub Worksheet_Calculate()
Dim fahrerschlüssel As String
Dim schlüsselnrbereich As Range
Dim ausgabebereich As Range
Dim fahrerzelle As Range
fahrerschlüssel = CStr(Range("G7").Value)
Set schlüsselnrbereich = Range("U7:AC7")
Set ausgabebereich = Range("G9:I16")
Set fahrerzelle = schlüsselnrbereich.Find(fahrerschlüssel, LookIn:=xlValues, lookat:=xlWhole)
ausgabebereich.Value = Range(fahrerzelle.Offset(2, 0), fahrerzelle.Offset(9, 2)).Value
End Sub


Gruß Gerd

Anzeige
AW: Wertezuordnung@Andi
24.06.2007 22:39:23
Dirk
Hallo Gerd,
dein Code funktioniert wie gewünscht - vielen Dank !!!
Zwischenzeitlich hatte ich versucht, aufbauend auf Andis-Code u. meinen laienhaften VBA-Kenntnissen, selber zum Ziel zu kommen. U.a. mußte ich dazu den Spesenschlüssel von G7 nach V4 verlegen, da ansonsten nicht die richtigen Werte gefunden werden konnten.
Das Problem ist allerdings, daß nach der Änderung in B2 noch nix passiert - erst nach Klick auf V4 wird die Suche "angeschubst...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim fahrer As Range
If Not Intersect(Target, Range("v4")) Is Nothing Then
Set fahrer = Rows(7).Find(Range("v4").Value)        'Tipp von Udo eingearbeitet
Range("g9:i16").Value = Range(fahrer.Offset(2, 0), fahrer.Offset(9, 2)).Value
Range("v4").Select 'zur gewünschten Zelle gehen
SendKeys "{F2}" 'und die Taste drücken
SendKeys "{enter}"
Range("b2").Select
End If
End Sub


Da ich daran nun schon eine halbe Ewigkeit bastelte, wäre es schön, wenn du als Fachmann mir sagen könntest, wo mein Fehler lag...
MfG Dirk N.

Anzeige
AW: Wertezuordnung@Andi
25.06.2007 07:34:07
Gerd
Hallo Dirk,
ob 'Fachmann' oder 'Flachmann', egal, jedenfalls Hobby :-)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dieser Ereignis-Code löst aus, wenn im Tabellenblatt eine(ein) neue(r) Zelle(nbereich) markiert wird.
Innerhalb dieses Coderumpfes hast Du mit "If not (....) is nothing then
die weitere Code-Ausführung auf den Fall beschränkt, dass "V4" im ausgewählten/markierten Bereich
(Target) liegt.
Private Sub Worksheet_Change.. u. Target auf "B2" begrenzt, hätte, denke ich, beim dort eingebauten "Drop-Down" funktioniert.
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige