Clever-Excel-Forum

Normale Version: Makro mit while
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich schaffe es nicht und brauche Hilfe.

Das Makro soll alle Berechnungen speichern und im TB Zusammenfassung abschreiben.

Ich kann nur einmal mit Kopie und Einfügen, aber es wird jedes mal überschrieben. Anbei meine Datei.[attachment=44699]

VG
Moin!
Es wäre vielleicht nicht verkehrt, wenn Du Dein bisheriges Makro postest.
In einer xlsx, die ich nicht geöffnet habe, dürfte keins vorhanden sein.

Gruß Ralf
..unabhängig davon gibt es (offiziell) keine while Schleife (mehr). Ist noch eine Relikt alter Tage. While (solange) ist nur der Bedingungsteil einer Do Loop - Schleife, dessen Bedingung festlegt, wie lange die Schleife laufen soll. 
Statt  While kann auch until (bis) verwendet werden.

Weiterhin ist zu beachten, ob es sich um eine Kopf- oder Fußgesteuerte Schleife handelt. Bei der Kopfgesteuerten wird die Bedingung direkt nach dem dem Do formuliert.

Bsp.:
Kopfgesteuert


Code:
dim a as byte

a = 1
Do until (a = 1) 'bis a = 1
  a = a + 1
Loop

'oder
Do while(a < 1) 'solange a < 1
  a = a + 1
Loop

Beide Schleifen werden nie ausgeführt, weil die Bedingung bereits am Anfang wahr ist
Wird die Bedingung jedoch am Fuß (nach dem Loop) formuliert, wäre die 1. Schleife (in diesem speziellen Fall) eine Endlosschleife, weil die Bedingung nie wahr wird, die 2. wird immer mindestens 1 mal ausgeführt. 
So etwas sollte man beachten...
in der .xlsx sieht man besser was passiert, ich habe es da dargestellt. Wenn es helfen kann. hier folgt

Sub Makro3()
'
' Makro3 Makro
'

'
    Range("B1").Select
    Selection.Copy
    Sheets("Zusammenfassung").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Eingabe").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Zusammenfassung").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("Ergebnis").Select
    Range("B1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Zusammenfassung").Select
    Range("C2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=Eingabe!RC*2"
    Range("C3").Select
    Sheets("Ergebnis").Select
    Range("B2").Select
    Selection.Copy
    Sheets("Zusammenfassung").Select
    Range("D2").Select
    ActiveSheet.Paste
    Range("D4").Select
End Sub
...sorry.... gruseliger Recordercode! Wer soll sich den anschauen, ohne Schaden zu nehmen?

Erzähl einfach, was Du vorhast. Z. Bsp.: Makro soll die Werte vom Bereich A1 bis C5 aus dem Blatt 1 in den Bereich B2 bis D6 des Blattes 2 kopieren.... oder was auch immer....
Ok.

Auf Blatt 1 werden zwei Werte alpha1 und beta1 in B1 und B2 geschrieben. Damit werden im Blatt 2 zweite Werte W1 und W2 in B1 und B2 errechnet. Im Blatt 3 soll dann in A2, B2, C2 und D2 stehen alpha1, beta1, W1, W2.

Ich soll dann nur die alphas und betas eingeben. Anschließend wenn ich möchte auf Blatt 3 schauen.
Nur ergänzend zum sorry …
Der Rekorder zeichnet eine einmalige Aktion "korrekt" auf, ist aber dynamisch wie eine Wanderdüne bei Windstille.
Ernsthaft:
Wenn man von VBA keine Grundlagen hat, nützt auch eine Anfrage in einem Forum wenig.

Grundlage 1:
Schmeiß das Select-Gedöns raus!
Bitte lesen!
(bleib gleich auf der Seite und lerne)

Grundlage 2:
Ermittle dynamisch die jeweils erste freie Zeile!
Bitte lesen!

Gruß Ralf
...gaaanz schlecht erklärt. Für Deine Erklärung brauchst Du keine 3 Blätter und auch kein Makro.

Ich vermute mal, Du möchtest bei Änderung der Werte von B1 und B1 im Blatt Eingabe, dass die Berechnungen in der jeweils 1. freien Zeile vom Blatt Zusammenfassung eingetragen werden.

Aber selbst das kannst Du einfacher, auf einem Blatt und vor allem ohne Makro haben, indem Du due Struktur änderst und eine intelligente Tabelle verwendest. siehe Anhang
Es geht um viel mehr Daten auf die jeweiligen Tabellenblätter und die Werte in Eingabe werden jedes mal überschrieben.
...ja und? Das ist doch kein Grund für 3 Tabellenblätter?

Schau Dir mal die Anlage an. In F und G3 gibst Du Deine (überschreibbaren) Werte ein und siehst trotzdem alles auf einen Blick...
...und das sogar ganz ohne Schleife... 19
Seiten: 1 2