Microsoft Excel

Herbers Excel/VBA-Archiv

Automatisierung mittels Schleife möglich? | Herbers Excel-Forum


Betrifft: Automatisierung mittels Schleife möglich? von: Nadine
Geschrieben am: 07.01.2012 12:33:50

Hallo liebe Excel Profis,

ich habe ein riesen Problem und hoffe hier hilfe zu finden. Bin leider noch recht unerfahren in excel programmierung und muß für eine Arbeit große Datenmengen sortieren und berechnen. Am einfachsten wäre es, wenn ich es automatisieren könnte. Ich beschreibe mal mein problem:

- in der Spalte A ab Zeile 3 befindet sich die Datenmenge (jetzt z.B. 8760 Zahlenwerte, später vlt auch mehr)
- diese Menge soll gleichmäßig in Blöcke mit je 24 Werten eingeteilt werden.
- in jedem Datenblock (mit jetzt 24 Werten) sollen die x niedrigsten, und die y höchsten werte seperat angezeigt werden (vielleicht in Spalte C=niedrigste und E=höchste)
...x und y sind variable Werte die aus vorherigen Berechnungen resultieren und im Tabellenblatt in der obersten Zeile hinterlegt sind

ich kenne die funktion 'kkleinste' und 'kgrößte', habe es aber nicht hinbekommen das es variabel mit den für x und y eingegebenen werten funktioniert.
habe mal meine testdatei hochgeladen, sie ist nur ein ausschnitt aus einer großen arbeitsmappe:

https://www.herber.de/bbs/user/78276.xlsx

für hilfe wäre ich sehr dankbar!

beste grüße
Nadine

  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: ransi
Geschrieben am: 07.01.2012 13:04:07

Hallo Nadine

Schau mal ob das so passt:

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub machs()
    Dim L As Long
    For L = 3 To 10000 Step 25 'Bis A10000. Anpassen.
        With Sheets("Tabelle1").Cells(L, 1)
            .Offset(0, 2).Resize(5).Formula = "=SMALL(" & .Resize(25).Address & ",Row(A1))"
            .Offset(0, 4).Resize(3).Formula = "=LARGE(" & .Resize(25).Address & ",Row(A1))"
        End With
    Next
End Sub



ransi


  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: Nadine
Geschrieben am: 07.01.2012 13:47:15

super ransi! das läuft schonmal!

aber leider muß es flexibeler sein.
- ist es möglich für x kleinste werte (y größte werte) eine verbindung mit der zelle in der die ziffer steht (hier: C1, bzw.E1 )zu schaffen? das excel also dieses feld ausliest und mir dementsprechend kleinste, bzw. größte werte ausgiebt?
-kann die schleife so lange durchlaufen werden bis keine daten mehr in spalte a stehen? ziel ist es beliebig viele daten (z.B. 26280 oder mehr) dort einzuladen


  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: Andre´
Geschrieben am: 07.01.2012 13:58:40

Hallo Nadine,

probier mal dies:

Public Sub machss()
    Dim L As Long
    For L = 3 To 1000000 Step 25
        With Sheets("Tabelle1").Cells(L, 1)
           If .Offset(0, 0) = "" Then GoTo Ende
            .Offset(0, 2).Resize([c1]).Formula = "=SMALL(" & .Resize(25).Address & ",Row(A1))"
            .Offset(0, 4).Resize([e1]).Formula = "=LARGE(" & .Resize(25).Address & ",Row(A1))"
        End With
    Next
    
Ende:
End Sub
MFG Andre


  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: Andre´
Geschrieben am: 07.01.2012 14:14:57

Hallo Nadine,

falls das Tabellenblatt 1 nicht aktiv ist geht es mit nachfolgenden Code besser:

Public Sub machsss()
    Dim L As Long
    For L = 3 To 1000000 Step 25 'Bis A10000. Anpassen.
        With Sheets("Tabelle1").Cells(L, 1)
           If .Offset(0, 0) = "" Then GoTo Ende
            .Offset(0, 2).Resize(Sheets("Tabelle1").Range("C1")).Formula = "=SMALL(" & .Resize( _
25).Address & ",Row(A1))"
            .Offset(0, 4).Resize(Sheets("Tabelle1").Range("E1")).Formula = "=LARGE(" & .Resize( _
25).Address & ",Row(A1))"
        End With
    Next
    
Ende:
End Sub
MFG Andre


  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: Nadine
Geschrieben am: 07.01.2012 14:42:57

Danke! es funktioniert!!!


  

Betrifft: AW: Automatisierung mittels Schleife möglich? von: Nadine
Geschrieben am: 07.01.2012 15:10:25

super! vielen herzlichen dank für die schnelle hilfe!


Beiträge aus den Excel-Beispielen zum Thema "Automatisierung mittels Schleife möglich?"