nachdem ich stundenlang erfolglos herumprobiert habe, könnt ihr mir hoffentlich weiterhelfen. Ich habe mit folgender Excel-Tabelle die BMI-Werte von Kindern als Perzentile in Abhängigkeit vom Alter aufgelistet:
[url= Dateiupload bitte im Forum! So geht es: Klick mich! ]
Nun möchte ich, dass nach Angabe eines bestimmten Alters (z.B. 1,5 Jahre) und eines bestimmten BMIs (z.B. 15,3) von Excel automatisch die jeweils darüber und darunter liegenden BMI und Perzentil-Werte ausgelesen werden. Für das Beispiel hier wären das also: Oberer BMI: 15,32, unterer BMI: 14,59, oberes Perzentil: 25, unteres Perzentil: 10
Mit diesen 4 Werten muss ich dann weiterrechnen und nachdem das für mehrere 100 Personen notwendig sein wird, wäre es wirklich eine Hilfe, wenn Excel die Werte automatisch auslesen (und damit dann später auch automatisch weiterrechnen) würde.
Ich habe bereits mit INDEX und SVERWEIS herumgebastelt, aber bin bisher zu keinem zufriedenstellenden Ergebnis gekommen.
tschuldige, aber daran komme ich nicht vorbei sonst platze ich noch beim Luft anhalten ...
Zitat:Hoffentlich ist hier jemand schlauer als ich.
... das dürfte nicht allzu schwer werden, denn sonst hättest Du anstatt Deiner Fotoausstellung einen ordentlichen Tabellenausschnitt oder die Datei gepostet. Niemand ist in der Lage, aus einem Blid eine brauchbare Tabelle die noch dazu der Deinen gleicht, zu bauen.
Ein schlauer User hätte zumindest mal die oben im Forum als WICHTIG gekennzeichneten Threads gelesen. Die wenigsten hier haben Lust dazu, Deinen Kram nachbauen zu müssen. Deine Datei ist ja auch schon vorhanden, warum sollten sie das also tun?
der Makro muss in den Kopf des Tabellenblattes, z.B. mit alt-F11 den vba-Editor öffnen und das Tabellenblatt doppelt-klicken.
Mfg
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range If Not Target.Address = "$M$3" Then Exit Sub If Target.Value < 10 Or Target.Value > 20 Then MsgBox "falsche Eingabe": Exit Sub With Columns(1) Set rng = .Find(Cells(2, "M")) Debug.Print rng.Value If rng Is Nothing Or Cells(2, "M") <> rng.Value Then MsgBox "Bitte Eingaben prüfen" End If Cells(5, "M") = WorksheetFunction.Lookup(Cells(3, "M"), Range(Cells(rng.Row, "D"), Cells(rng.Row, "J"))) o = WorksheetFunction.Match(Cells(3, "M"), Range(Cells(rng.Row, "D"), Cells(rng.Row, "J")), 1) Debug.Print rng.Row, o, rng.Offset(0, 3 + o).Value Cells(4, "M") = rng.Offset(0, 3 + o).Value Cells(6, "M") = Cells(2, 4 + o) Cells(7, "M") = Cells(2, 3 + o) End With End Sub
19.04.2016, 20:28 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2016, 20:28 von Fenia.)
Ok, also ich drücke im geöffneten Excelsheet Alt + F11, rufe die Tabelle Perzentilberechnung auf und kopiere in das nun aufgehende Fenster deinen Code hinein. Und jetzt? Auf Sub/UserForm ausführen klicken? Dann geht ein neues Fenster mit "Makros" auf. Tippe ich dort etwas ein und klicke auf "Erstellen", passiert danach nichts weiter. Stimmt das überhaupt soweit?
Ich nehme an, dass man mit Formeln also nicht weiterkommt, oder?
wenn ddr Code an der richtigen Stelle eingefügt wurde, startet er, wenn in der Zelle M3 ein Wert eingetragen wird.
Falls du noch Information brauchst, guuuuugel nach Worksheet event, z.b. worksheet_change und suche eine Webseite, die mit screen-shots zeigt, wo der code eingegeben werden muss.
Dein Lösungsvorschlag hat mit der eingestellten Datei einmal nichts gemeinsam und das Change Ereignis ist für diese Aufgabe eher ungeeignet. Wenn dann sind all Daten in der Datei eingegeben und auf Knopfdruck werden dann die fehlenden Werte hinzugefügt.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28 • Fenia