Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

Variable Stichprobenziehung

Variable Stichprobenziehung
19.08.2018 19:37:29
Barhos
Hallo,
ich brauche eure Hilfe bei folgendem:
Ich habe ein Makro erstellt, bei dem man eine Stichprobe aus einer Grundgesamtheit (Zelle C2:N25) ziehen kann.
Beispielsweise werden mir alle Inhalte der Zelle XY angezeigt.
Problem ist, dass ich das Makro variabel gestalten will, sprich in eine Eingabemaske soll die Anzahl der Stichproben eingegeben werden können. Momentan ist die Anzahl aber fest.
Das Makro sieht so aus:
Public Sub stichprobe()
Application.ScreenUpdating = False
With Sheets("Tabelle1").Range("A2:A25")
.FormulaLocal = "=ZUFALLSZAHL()"
.Value = .Value
End With
With Sheets("Tabelle1").Range("B2:B25")
.FormulaLocal = "=KGRÖSSTE(A2:A25;ZEILE())"
.Value = .Value
End With
With Sheets("Tabelle1").Range("O2:O11")
.FormulaLocal = "=SVERWEIS(B2;A:C;3;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("P2:P11")
.FormulaLocal = "=SVERWEIS(B2;A:D;4;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("Q2:Q11")
.FormulaLocal = "=SVERWEIS(B2;A:E;5;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("R2:R11")
.FormulaLocal = "=SVERWEIS(B2;A:F;6;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("S2:S11")
.FormulaLocal = "=SVERWEIS(B2;A:G;7;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("T2:T11")
.FormulaLocal = "=SVERWEIS(B2;A:H;8;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("U2:U11")
.FormulaLocal = "=SVERWEIS(B2;A:I;9;FALSCH)"
.Value = .Value
End With
With Sheets("Tabelle1").Range("V2:V11")
.FormulaLocal = "=SVERWEIS(B2;A:J;10;FALSCH)"
.Value = .Value
End With
Sheets("Tabelle1").Range("A2:A25").ClearContents
Application.ScreenUpdating = True
End Sub

Habt ihr einen Vorschlag, wie man das Gante variabel gestalten könnte?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Stichprobenziehung
25.08.2018 11:11:07
fcs
Hallo Barhos,
hier dein Makro angepasst für eine variable Anzahl Stichproben.
Gruß
Franz
Public Sub stichprobe()
Dim iSP As Integer, AnzSP As Integer, AnzSPMax As Integer
AnzSPMax = 12 'maximale Anzahl an Stichproben
Anzahl_eingeben:
AnzSP = Application.InputBox("Anzahl Stichproben?" & vbLf _
& "(Wert von 1 bis " & AnzSPMax & ")", _
"Stichproben generierieren", 1, Type:=1)
Select Case AnzSP
Case 0 'abgebrochen
Exit Sub
Case 1 To AnzSPMax
'zulässige werte
Case Else
MsgBox "nur Werte von 1 bis " & AnzSPMax & " sind zulässig", vbOKOnly, _
"Stichproben generierieren"
GoTo Anzahl_eingeben
End Select
Application.ScreenUpdating = False
With Sheets("Tabelle1").Range("A2:A25")
.FormulaLocal = "=ZUFALLSZAHL()"
.Value = .Value
End With
With Sheets("Tabelle1").Range("B2:B25")
.FormulaLocal = "=KGRÖSSTE(A$2:A$25;ZEILE()-1)"
.Value = .Value
End With
'alte Ergebnisse löschen
With Sheets("Tabelle1").Range("O1")
.Resize(11, AnzSPMax).ClearContents
End With
'Stichproben generieren
With Sheets("Tabelle1").Range("O2:O11")
For iSP = 1 To AnzSP
'Spaltentitel eintragen
.Range("A1").Offset(-1, iSP - 1).Value = "SP " & iSP
'Stichprobenwerte übernehmen
With .Offset(0, iSP - 1)
.FormulaLocal = "=SVERWEIS(B2;A:N;" & iSP + 2 & ";FALSCH)"
.Value = .Value
End With
Next iSP
End With
Sheets("Tabelle1").Range("A2:A25").ClearContents
Application.ScreenUpdating = True
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige