Registriert seit: 30.05.2023
Version(en): 2007
Hallo,
habe eine Spalte H70 - H119, in der die Zahlen von 1 - 45 in aufsteigender Reihenfolge stehen und davor in Spalte G70 - G117 45 verschiedene. nicht sortierte Zahlen.
Nun soll in den Feldern I47 - M47 Zahlen eingegeben werden können. Diese Zahlen sollen nun mit der Spalte H70-H119 abgeglichen werden und die entsprechenden Werte in der Spalte davor ermittelt
und eingetragen werden in die Zellen I60 - M60.
Wenn ich also in I47 als Beispiel die Zahl 5 eingebe, soll mittels des Makros in der Spalte H70-119 der Wert 5 gesucht und der Wert in der Spalte davor ( G70-G119), zum Beispiel 24 , in die Zelle
I60 geschrieben werden.
Analog dazu gibt es noch einen zweiten und dritten Eingabebereich, I51 - M51 und I55 - M55, wobei die Zahlen geschrieben werden sollen in I61 - M61 und I62 - M62.
Registriert seit: 12.04.2014
Version(en): Office 365
moin,
in der Hoffnung dass deine Zellbereiche richtig! sind...
das wäre ein Weg
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngBereich As Range
Dim c As Range
Set rngBereich = Range("I47:M47")
If Not Intersect(rngBereich, Target) Is Nothing Then
Set c = Range("H70:H119").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(60, Target.Column).Value = Cells(c.Row, "G").Value
End If
End If
Set rngBereich = Nothing
Set rngBereich = Range("I51:M51")
If Not Intersect(rngBereich, Target) Is Nothing Then
Set c = Range("H70:H119").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(61, Target.Column).Value = Cells(c.Row, "G").Value
End If
End If
Set rngBereich = Nothing
Set rngBereich = Range("I55:M55")
If Not Intersect(rngBereich, Target) Is Nothing Then
Set c = Range("H70:H119").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(62, Target.Column).Value = Cells(c.Row, "G").Value
End If
End If
Set rngBereich = Nothing
End Sub
mfg Tom
Registriert seit: 28.08.2022
Version(en): 365
Wieso um alles in der Welt sollte man so etwas per Makro machen wollen, wenn einfache Formeln reichen?
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Registriert seit: 30.05.2023
Version(en): 2007
Hallo Crazy Tom,
erstmal Danke für Deine Mühe. Leider bringt sie nicht den erhofften Erfolg.
1.) Es kommt beim Ausführen die Fehlermeldung: "Argument ist nicht optional !"
2.) Ich verstehe die Zeile Cells(60, Target usw. nicht. Was soll die 60 bedeuten? Ich kann auch nicht erkennen, daß mit dem Script 5 Zahlen in den Zellbereich I60 bis M60 geschrieben werden sollen.
Registriert seit: 12.04.2014
Version(en): Office 365
moin,
bei dem Code handelt es sich um ein Ereignismakro, dass bei einer Zellenänderung im Tabellenblatt stattfindet
also gehört das Makro in das Tabellenblattmodul der entsprechenden Tabelle
wenn du die Zeile Cells(60, Target usw. nicht verstehst solltest du dich erst mal mit VBA-Basics vertraut machen
in deinem Eingangspost stand nüscht davon, dass gleich alle 5 Felder ausgefüllt werden sollen
anbei meine Testdatei
mfg Tom
zabulon.xlsm (Größe: 15,89 KB / Downloads: 9)
Registriert seit: 30.05.2023
Version(en): 2007
Hallo Crazy Tom,
ich hatte bis dato immer nur Makros gehabt, die auf einem Schalter/Button oder Bild lagen, durch deine Hilfe habe ich jetzt zum ersten Mal ein Ereignismakro in ein Blatt integriert. Das hat zwar ein bißchen gedauert, weill ich all die anderen Zellen noch kopieren mußte und dabei immer auf die genaue Positionierung achten mußte usw, aber die Frimmelei hat sich definitiv gelohnt.
Es funktioniert jetzt endlich alles so, wie ich es haben wollte und damit ist dieses Projekt abgeschlossen.
Für deine Hilfe nochmals ein ganz großes Dankeschön.