Ich möchte in vba eine Funktion durch eine Schleife öfters ablaufen lassen.
For i=1 To 10
Cells(j, 6).Formula = „=KGRÖSSTE(‚MinMax-Werte Gesamtübersicht‘!G“&i":J"&i";1)"
Durch diese Funktion will bezwecken, dass aus einer Zeile nach der anderen der Maximalwerte aus einer Tabelle aus gelesen werden. i soll die Tabelle sein aus der ich auslese und je ist die Tabelle in welche ich schreibe
was ist denn eigentlich die frage?
vielleicht hilft folgender link:
http://www.online-excel.de/excel/singsel.php?f=147
Hallo,
kann leider nicht helfen!
Wie Du aus meinem Profil sehen kannst, bin ich selbst Anfänger in VBA
Gruß
fourseasons
So ganz verstehe ich die Frage nicht: Wenn Du einen Maximalwert aus einer Tabelle ausliest, ist doch das Ergebnis nur eine einzige Zahl. Wieso willst Du die denn nicht in eine Zeile sondern gleich in eine Tabelle schreiben und was soll in den verschiedenen Zellen der „Schreib“-Tabelle denn drin stehen?
Hallo sander.1,
ich muss zugeben, dass ich das Ganze nicht ganz verstanden habe, weshalb ich nur pauschal antworten kann:
Eine Schleife funktioniert wie folgt
For i = 1 to 10
… Anweisung …
next i
Möchte man eine Formel durch VBA einfügen lassen, muss die englische Form angegeben werden, mit Zeilen/Spalten-Bezug (RC). So wird sie nicht funktionieren.
Wie soll die Formel denn im Tabellenblatt tatsächlich aussehen? Vielleicht kann ich das dann besser nachvollziehen.
Schönen Gruß
Natator
Sorry, das hatte ich vergessen:
Die englische Form von KGRÖSSTE ist LARGE
hi sander.1
leider hab ich deine frage nicht ganz verstanden. schick mir doch einfach mal deine tabelle zu und dann schau ich mal drüber, ob ich dir helfen kann.
thorsten
email: [email protected]
Hallo,
leider habe ich deine Frage bzw. dein Problem nicht verstanden. Kannst du das besser erläutern?
Gruß
Mario
Hallo.
Ich habe ein paar Makros erzeugt, die den Maximal und Minimalwert einer Zelle in einem Bereich oder auf der ganzenTabelle Tabelle1 ermitteln, und in den Zellen A2 und B2 auf Tabelle2 eintragen.
Benenne die Tabellen nach Deinen Bedürfnissen um, und ändere Die Tabellennamen in den makros.
Füge den folgenden Programmtext in ein neues VBA Modul ein, und erstelle z. B. auf Tabelle2 Schaltflächen mit denen Du die makros starten kannst.
Makros:
Sub Maximalwert_ermitteln_eintragen()
Sheets(„Tabelle2“).Select 'Zum Eintrag des Maximalwertes Tabelle2 auswählen
Range(„A2“).Select 'Maximalwert erscheint in Zelle A2
ActiveCell.Value = „=MAX(Tabelle1!A2:smiley:10)“ 'Maximalzellwert in Bereich A2:smiley:10 auf Tabelle1
End Sub
Sub Minimalwert_ermitteln_eintragen()
Sheets(„Tabelle2“).Select 'Zum Eintrag des Mainimalwertes Tabelle2 auswählen
Range(„B2“).Select 'Minimalwert erscheint in Zelle B2
ActiveCell.Value = „=MIN(Tabelle1!A2:smiley:10)“ 'Minimalzellwert in Bereich A2:smiley:10 auf Tabelle1
End Sub
Sub Minimal_Maximalwerte_eintragen()
'Prozeduraufrufe:
Call Minimalwert_ermitteln_eintragen
Call Maximalwert_ermitteln_eintragen
End Sub
Sub Maximalwert_ganzer_Tabelle1_ermitteln_eintragen()
Sheets(„Tabelle2“).Select 'Zum Eintrag des Maximalwertes Tabelle2 auswählen
Range(„A2“).Select 'Maximalwert erscheint in Zelle A2
ActiveCell.Value = „=MAX(Tabelle1!A1:IV65536)“ 'Maximalzellwert in Bereich A1:IV65536 (ganze Tabelle1)
End Sub
Viel Erfolg! Kuno!
Hallo sander.1,
entschuldige, dass ich mich erst jetzt melde, aber ich hab grad mördermäßig stress. Muss meine Diplomarbeit nächste Woche abgeben und noch einiges einarbeiten.
Ich geh mal davon aus, dass sich das Problem mittlerweile gelöst hat. Aber das nächste Mal gerne wieder.
Gruß
Philipp
Cells(j, 6).Formula = „=LARGE(‚MinMax-Werte Gesamtübersicht‘!G“&i&":J"&i&",1)"
In VBA müssen die Englischen Befehle genommen werden. Die bekommt man am besten mit der Makroaufzeichnung raus.
Ebenso muss statt das ; ein Komma verwendet werden.
Nach dem &i fehlte noch ein & zum Verbinden.
Mit obiger korrigierter Zeile müsste es jetzt klappen.
Hallo Sander.1 könntest Du deine Frage noch etwas genauer beschreiben, vielleicht mit nem Beispiel.
Willst Du wissen, wie die Funktion gebaut sein muss oder wie man diese in einer Schleife aufruft
Hi, ich denke die Frage hat sich erledigt.
Gruß Ramaka