Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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
Inhaltsverzeichnis

KKleinsten mit VBA

KKleinsten mit VBA
13.09.2014 15:57:34
Hans

Hallo
ich möchte diese Formel in Makro umwandeln um rechenzeit zu sparen
=KGRÖSSTE(WENN((B:B=D2);A:A);1)
anbei ein Muster der Tabelle
https://www.herber.de/bbs/user/92611.xlsx
Mfg
Hans

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: KKleinsten mit VBA
13.09.2014 16:12:21
Hajo_Zi
Hallo Hans,
schränke den Bereich ein, wenn Du es nicht für 1.048.576 Zeilen machst, ist es wohl schon schneller.

AW: KKleinsten mit VBA
13.09.2014 16:27:01
Hans
selbst wenn ich auf 1000 Zeilen gehe ist das immer noch ein Problem
bei jeder Wert eingabe muss man Warten bis alles gerechnet ist
oder man schaltet die "Berechnungsoptionen auf Manuell"
das ist doch nervig
oder?

AW: KKleinsten mit VBA
13.09.2014 17:36:12
Hans
habe etwas passendes gefunden
jetzt muss nur noch die Ausgabe umgeschrieben werden
in diesem Fall E2
Sub Makro1()
With Tabelle1.UsedRange
MsgBox Evaluate("=Max(IF(" & .Columns(2).Address & "=""ball""," & .Columns(1).Address &  _
",""""))")
End With
End 

Sub '

Anzeige
AW: KKleinsten mit VBA
16.09.2014 12:57:40
Daniel
Hi
also Makro so (passend für deine Beispieldatei)
Sub test()
Dim ze As Long
Dim FO As String
Dim Zelle As Range
With Sheets("Tabelle1")
ze = .Cells(.Rows.Count, 1).End(xlUp)
With .Cells(1, 4).CurrentRegion
With .Resize(.Rows.Count - 1, .Columns.Count - 1).Offset(1, 1)
FO = "=IFERROR(LARGE(IF((R2C2:RxxxC2=RC4),R2C1:RxxxC1),R1C),"""")"
FO = Replace(FO, "xxx", ze)
For Each Zelle In .Rows(1).Cells
Zelle.FormulaArray = FO
Next
.Rows(1).Copy .Rows(2).Resize(.Rows.Count - 1)
.Formula = .Value
End With
End With
End With
End Sub

Gruß Daniel

Anzeige
AW: KKleinsten mit VBA
16.09.2014 21:08:14
Hans
Hallo
ja funktioniert super
leider tu ich mich schwer das jetzt in die Original Tabelle zu übertragen
die Spalten und Zeilen sind im Original etwas anders
Sub test()
Dim ze As Long
Dim FO As String
Dim Zelle As Range
' Mit Arbeitsblatt
With Sheets("Tabelle1")
' ze = letzte Zeile
ze = .Cells(.Rows.Count, 1).End(xlUp)
' Mit Zelle "D1" ?
With .Cells(1, 4).CurrentRegion
' Größe ändern Zeile, Spalte, Versetzen
With .Resize(.Rows.Count - 1, .Columns.Count - 1).Offset(1, 1)
' IFerror ? R2C2:RxxxC2=RC4),R2C1:RxxxC1),R1C was macht das
FO = "=IFERROR(LARGE(IF((R2C2:RxxxC2=RC4),R2C1:RxxxC1),R1C),"""")"
' austauschen FO ?, xxx ?, letzte Zeile
FO = Replace(FO, "xxx", ze)
' Für alle Zellen in Zeile 1
For Each Zelle In .Rows(1).Cells
Zelle.FormulaArray = FO
Next
' Zeile 1 kopieren Zeile 2 größe ändern Zeile -1
.Rows(1).Copy .Rows(2).Resize(.Rows.Count - 1)
' Formel Wert eintragen
.Formula = .Value
End With
End With
End With
End Sub

Mfg
Hans

Anzeige
AW: KKleinsten mit VBA
16.09.2014 22:03:17
Daniel
Hi
Ich kenne deine Originaldatei nicht, daher kann ich dir bei deinem neuen Problem nicht helfen.
Ich habe die Frage für deine Beispieldatei doch schon beantwortet, warum also nochmal?
Gruß Daniel

AW: KKleinsten mit VBA
17.09.2014 00:04:03
Hans
Hallo Daniel,
danke für deine Lösung
ich denke bis morgen habe ich es
das Ziel für mich ist es den Code zu verstehen um was bei der Sache zu lernen
Kopieren und Einfügen ist wohl zu leicht
Kannst du mir sagen von welcher Zelle das mit dem "FormulaR1C1" los geht
das habe ich noch nicht raus
Gruß
Hans

AW: KKleinsten mit VBA
17.09.2014 00:49:17
Daniel
Hi
Bei FormulaR1C1 steht das R für Zeile und das C für Spalte.
Bei absoluten Zellbezügen folgt nach dem Buchstaben direkt die Zeilen- oder Spaltennummer.
Bei relativen Bezügen steht der Versatzwert - ausgehend von der Zelle in der die Formel steht - in eckigen Klammern [].
negative Zahl heißt Versatz nach oben oder links, positive Zahl nach unten oder links.
Einen Versatz von 0 (gleiche Zeile oder Spalten) braucht man nicht angeben .
Gruß Daniel

Anzeige
AW: KKleinsten mit VBA
20.09.2014 01:55:02
Hans
Hallo Daniel,
kannst du mir noch mal helfen
ich brauche zwichen Spalte A und B noch eine leere Spalte
kannst du das anpassen
Danke
Hans

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige