Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme mit Schleife und Datentransfer

Forumthread: Probleme mit Schleife und Datentransfer

Probleme mit Schleife und Datentransfer
12.08.2007 15:10:51
Nils
Hi Leute,
vorab, ich bin eher ein Laie in VBA und habe mich selber step by step an das Thema rangearbeitet. Allerdings habe ich meine "Programmierung" hauptsächlich mit dem Makrorecorder gemacht. Problem ist jetzt aber:
1. Ich habe ein funktionierendes kompliziertes Makro, was macht, was ich will. Aber ich muss diese Berechnung 500 mal machen, also mit einer Schleife versehen.
2. Der berechnete Endwert soll rausgeschrieben werden und dann soll das Makro einfach wieder ausgeführt werden und die alten Werte überschreiben.
Kann man denn einfach vor ein fertiges Makro eine Schleife setzen, ohne groß zu programmieren? Verzweifele langsam daran und würde mich über Hilfe freuen.
Gruß Nils

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Schleife und Datentransfer
ransi
HAllo
So wie ich das verstanden habe:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub test()
Dim i As Integer
For i = 1 To 500
    'dein Code
Next
End Sub

?
ransi

Anzeige
AW: Probleme mit Schleife und Datentransfer
12.08.2007 15:43:51
Nils
Hi Ransi,
danke für die Hilfe, nur leider kann ich ja irgendwie nicht überprüfen, ob er das immer neu berechnet, wenn er alles überschreibt und ich nur einen Wert hinten rausbekomme. Hast du denn eine Idee wie ich es schaffe, dass ich diesen jeweils errechneten Endwert in eine neue Spalte kopieren kann? Verstehst du was ich meine? Also ich rechne mit Zufallszahlen ein Ergebnis aus....daher kommt bei jeder Berechnung ein anderes Ergebnis raus, was ich in eine neue Spalte haben will - brauche ja die Endergebnisse.
Gruß Nils
PS: Nicht aufregen, bin Laie auf dem Gebiet und versuche die Hilfen dann anzuwenden. Bin sehr dankbar über jede Hilfe.

Anzeige
AW: Probleme mit Schleife und Datentransfer
12.08.2007 20:53:14
Renee
Mazwara Nils,
Stell doch mal Dein kompliziertes Makro, das mach was Du willst hier ins Forum.
Dann erklär noch mal wohin der Output des Makros soll, wenn es mehrmals nacheinander läuft.
Ohne Dein Code ist das ein fruchtloses Ratespiel.
Greetz Renee

AW: Probleme mit Schleife und Datentransfer
13.08.2007 10:02:00
Nils
Na gut, aber es sind halt nur aufgenommene Macros hintereinander gestellt. Laie halt ;)

Sub Zufallszahlen1()
' Überschriften Makro
Range("D1").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.FormulaR1C1 = "Datum"
Range("E1").Select
Selection.Interior.ColorIndex = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.FormulaR1C1 = "MSCI"
Range("F1").Select
Selection.Interior.ColorIndex = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.FormulaR1C1 = "CGBI"
Range("G1").Select
Selection.Interior.ColorIndex = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.FormulaR1C1 = "Berechnung"
Range("H1").Select
' DatumZukunft Makro
Range("D3").Select
ActiveCell.FormulaR1C1 = "1/15/2008"
Range("D4").Select
ActiveCell.FormulaR1C1 = "2/15/2008"
Range("D3:D4").Select
Selection.AutoFill Destination:=Range("D3:D502"), Type:=xlFillDefault
Range("D3:D502").Select
' Zufallszahlen Makro
Application.Run "ATPVBAEN.XLA!Sample", ActiveSheet.Range("$B$3:$B$146"), Range("$E$3:$E$146"), " _
R", 500, False
' SVerweis Makro
Range("F3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R3C2:R146C3,2,FALSE)"
Range("F3").Select
Selection.AutoFill Destination:=Range("F3:F502"), Type:=xlFillDefault
Range("F3:F502").Select
' BerechnungohneKostenMSCIinklFörd Makro
Range("G3").Select
ActiveCell.FormulaR1C1 = "=84.12*(RC[-2]/100+1)"
Range("G4").Select
ActiveCell.FormulaR1C1 = "=(84.12+R[-1]C)*(RC[-2]/100+1)"
Range("G4").Select
Selection.AutoFill Destination:=Range("G4:G19"), Type:=xlFillDefault
Range("G4:G19").Select
Range("G19").Select
ActiveCell.FormulaR1C1 = "=(84.12+R[-1]C+154)*(RC[-2]/100+1)"
Range("G8:G19").Select
Selection.AutoFill Destination:=Range("G8:G470"), Type:=xlFillDefault
Range("G8:G470").Select
End Sub


Die Wiederholung sollte vor dem "Zufallszahlenziehen" kommen und hier am Ende sollten dann alle Werte in eine neue Zeile jeweils aussortiert werden, d.h. bei 500 Versuchen alle 500 Zahlen extra.
Gruß und danke Nils

Anzeige
AW: Probleme mit Schleife und Datentransfer
14.08.2007 14:03:48
Renee
Hallo Nils,
Irgendwie werde ich aus diesem Code nicht schlau.
Was soll dieses Programm genau machen?
Kannst Du mal eine Beispielmappe hochladen und erklären, wo Du den Output unter welchen Regeln geschrieben haben willst. Oder willst Du in Kolonne E einfach nur zuällige Werte aus dem Bereich von
B2:D502 ?
Greetz Renee

Anzeige
Deiner Makrosammlung entnehme ich,...
15.08.2007 01:39:17
Luc:-?
...dass du Stichproben (engl samples) zusammenstellen willst, Nils,
und dafür das Analyse-AddIn nutzt. Da ich vermute, dass der Eingabebereich (Param1) immer gleich bleibt und sich nur der Ausgabebereich (Param2) ändert, musst du dafür Sorge tragen, dass Param2 das zyklisch tut (wohl Spalten ab Spalte E). Dazu musst du Param2 [Range("$E$3:$E$146")] auf Range(Cells(3, i), Cells(146, i)) ändern und die Run-Anweisung in einen Zyklus einbetten:

Dim i As Long
Const n As Long = nrletztespalte
For i = 5 to n
Application.Run "ATPVBAEN.XLA!Sample", ActiveSheet.Range("$B$3:$B$146"), _
Range(Cells(3, i), Cells(146,  i)), "R", 500, False
Next i


Natürlich lässt sich dein Code noch deutlich optimieren, aber das wirst du im Laufe der Zeit schon schaffen!
Gruß Luc :-?
PS: Dein 2. Beitrag (Code) war für einen Fachmann zwar aussagekräftig genug, nicht aber für die Allgemeinheit. Du hast das entscheidende Stichwort leider nicht erwähnt... ;-)

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige