Makro mit while
#1
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.
.xlsx   Mappe1.xlsx (Größe: 11,51 KB / Downloads: 4)

VG
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
..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...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#4
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
Antworten Top
#5
...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....
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#6
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.
Antworten Top
#7
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Kevin Fragesteller
Antworten Top
#8
...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


Angehängte Dateien Thumbnail(s)
   
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#9
Es geht um viel mehr Daten auf die jeweiligen Tabellenblätter und die Werte in Eingabe werden jedes mal überschrieben.
Antworten Top
#10
...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


Angehängte Dateien
.xlsm   Eingabe.xlsm (Größe: 17,69 KB / Downloads: 3)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste