Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1168to1172
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

Makro werte kopieren, code ausfueren

Makro werte kopieren, code ausfueren
Peter
Guten Morgen,
Ich brauche wieder Hilfe um ein Makro zusammenzustellen.
Ich habe in einer Excel Datei zwei Mappen: "Data" und "Analysis". Ich habe auch ein Makro das mir in der "Analysis" Datei automatisch Werte filtert und in den Zellen D1:I1 das Ergebniss kalkuliert.
Jetzt wuerde ich gerne den Prozess weiter optimieren.
In der Mappe "Data" habe ich Werte die in den Zeilen A bis G eingetragen sind in 20+ Zeilen.
Das Makro sollte im Idealfall:
1) Auf "Data" wechseln
2) A2:G2 kopieren
3) Auf "Analysis" wechseln
4) Die kopierte Werte in K1:Q1 einfuegen (als Werte)
5) Die Code ausfueren (die ich schon habe)
6) Die kalkulierte Werte aus Zellen D1:I1 kopieren
7) Auf "Data" zurueckwechseln
8) Die kopierte Werte in I2:O2 einfuegen (als Werte)
9) Dann nochmals vom Vorne mit den Werten aus der naechsten Zeile
Das Ganze soll so lange wiederholt werden bis es keine weitere Werte in Data A:G gibt.
aslo A3:G3, A4:G4 etc und auch die Werte aus der Analysis weiter in I3:O3, I4:O4 etc einfuegen
Habt Ihr eine Idee ob das moeglich ist?
Danke schoen
Peter
AW: Makro werte kopieren, code ausfueren
10.08.2010 11:57:45
Björn
Hallo,
Da kannst Du doch fast alles schon mal mit dem Recorder aufzeichnen.
Ich erledige jetzt doch nicht deine Arbeit.
Das Forum soll dazu dienen, dir bei Problemen (mit VBA / Excel) zu helfen.
Du versuchst es ja nicht mal selber, das finde ich etwas schwach von Dir....
Viel Erfolg trotzdem.
Gruß
Björn B.
AW: Makro werte kopieren, code ausfueren
10.08.2010 13:59:08
Peter
Bjorn,
Schade dass du so denkst. Wenn Du nicht helfen moechtest ist okay, aber mich schwach zu nennen nur weil ich die Kenntnisse nicht habe finde ich nicht gut.
Zu der Frage:
Mit dem Recorder kann ich einiges machen, aber ich habe keine Ahnung wie ich das ganze wiederhole nachdem es einmal gemacht worden ist. Ich weiss nicht wie man einen prozess wiederholt bis es keine weiteren Werte gibt usw.
Hoffentlich kann mir jemand zeigen wie das geht. Jemand der mich nicht beleidigt, bitte...
Anzeige
Wow - Moment, unterstell mir hier mal nix!!!
10.08.2010 14:10:48
Björn
Hallo Peter,
verdreh mir nicht die Worte, dass habe ich so nicht gesagt!
Ich habe gesagt, dass ich es schwach finde, dass du es nicht mal versuchst. Nix anderes.
Und wenn ich dann lese, dass du wissen willst, wie man ein bestimmtes Blatt aktivierst, dann weiß ich, dass du es noch nicht versucht hast. Wie gesagt, das ist schwach, weil Du nun von uns erwartest, dass das einer für dich schreibt.
Das hat überhaupt nichts damit zu tun, was Du schon kannst und was nicht.
Es geht darum, dass Du was lernst, da hilft es nicht, dass Du einen fertigen Code bekommst. Dann musst Du ja bei jeder kleinen Anpassung wieder fragen, wie man das macht.
Also:
Selber versuchen
Wenn es nicht klappt, den Code posten und dazu schreiben, wo was mit welcher Fehlermeldung hängen bleibt bzw. wo Dir der Ansatz fehlt.
Ich könnte Dir jetzt den fehlenden Ansatz liefern: Statt mit Range("A1") kannst Du mit Cells(1,1) eine Zelle variabel ansprechen. Statt der 1 (die beiden Ziffern stehen für Zeile und Spalte) kannst Du eine Variable (Integer) nehmen und so in einer Schleife die Zeilen durchgehen.
Hilft Dir das?
Gruß
Björn B.
Anzeige
Natuerlich habe ich es versucht!!!!
10.08.2010 15:09:38
Peter
Natuerlich habe ich es versucht mit dem Makrorecorder!
Bin zu nichts gekommen, daher frage ich hier.
Ich dachte ich erklaere alles was ich zu tun versuche damit man einen klareren Bild bekommt was ist es was ich zu erreichen versuche.
Anstatt mich zu belehren koenntet Ihr einfach sagen: "Peter, mach Schritt 1 bis 6 mit Makrorecorder und dann baue dir die Schleife wie folgt.....
Dann wuerde ich mich nicht so schlecht fuelen wie ich mich jetzt fuehle nach alles was mir vorgeworfen wurde... schwach, das ich Geld verdiene mit Eurer Bemuehungen usw.
Sehr enttauschend! Danke fuer die grosse Hilfe, Bjorn und Kopfschuetteln!
Anzeige
AW: Natuerlich habe ich es versucht!!!!
10.08.2010 15:15:54
Kopfschüttel
Hallo Peter
Du bist wirklich Spiiiiitze, sowas war schon lange nicht mehr hier im Forum. Mir kommen die Tränen.
Liegt wohl an der momentanen Witterung.
Nix für ungut, ich schüttle weiter
Bitte gern geschehen...
10.08.2010 15:17:48
Björn
Du gibst Dir ja schon selber die Antwort...
Mach das ganze mal mit Makrorekorder, habe ich schon in meinem 1. Beitrag geschrieben und dann schreib Dein Problem oder was nicht geht.
Übrigens, ich heiße Björn.
Aber ich bin jetzt eh raus.
Du liest ja gar nicht, was ich Dir schreibe bzw, machst es dann nicht. Also spar ich mir die Zeit.
Ich habe Dir gechrieben, dass Du das mit Makrorekorder aufzeichnen sollst und dann helfe ich Dir weiter.
- MACHST DU ABER NICHT.
Ich habe Dir geschrieben, dass Du Shleifen brauchst, das interessiert Dich auch nicht. Wenn es Dir jemand anderes schreibt, dann liest Du es plötzlich.
Gruß
Björn B.
Anzeige
AW: Bitte gern geschehen...
10.08.2010 15:26:38
Peter
Okay, ich versuche nochmals
Hallo Bjoern!
Ich jetzt alles mit dem Makrorecorder aufgezeichnet wie von Dir empfohlen.
Wie baue ich eine Schleife die das Problem loest? Benutze ich For...Next oder loop oder etwas anderes?
Wie mache ich so, dass die Scheife sich wiederholt bis es keine Werte mehr gibt in der Liste?
Funktioniert das Automatisch oder muss ich immer einen Wert eingeben bevor ich das Makro starte?
Vielen Dank
Peter
AW: Bitte gern geschehen...
10.08.2010 15:31:19
Paolo
Hallo Peter
einfach eine abgespeckte Musterdatei uploaden und dazu schreiben, was gemacht werden soll.
Servus Paolo
AW: Bitte gern geschehen...
10.08.2010 15:48:29
Peter
Hallo Paolo,
Hier ist die Datei:
https://www.herber.de/bbs/user/71004.xls
Von "Data" A2:G2 cop, wechseln zu "analysis", paste to K1:Q1, F9 drucken um das neuzukalkulieren, C1:I1 copy, wechseln zu "Data", paste to I2:O2.
Das wiederholen bis es fuer alle Werte gemacht worden ist.
Vielen Dank
Peter
Anzeige
AW: Bitte gern geschehen...
10.08.2010 18:27:58
Peter
danke
AW: Schritt für Schritt
10.08.2010 18:58:53
mpb
Hallo Peter,
er wäre hilfreich gewesen, wenn Du den per Makrorekorder aufgezeichneten Code in der Beispieldatei mitgepostet hättest. Ich habe das jetzt mal nachgeholt. Aktiviert war die Tabelle "Data" und ich habe für eine "Zeile" manuell alle copy/paste-Schritte durchgeführt. Ergebnis:
Sub Peters_Aufzeichnung()
Range("A2:G2").Select
Selection.Copy
Sheets("Analysis").Select
Range("K1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Calculate
Range("C1:I1").Select
Selection.Copy
Sheets("Data").Select
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Dieser Code enthält überflüssigen Ballast, z.B. Selects, daher habe ich ihn entschlackt mit folgendem Ergebnis:
Sub Peters_Aufzeichnung_entschlackt()
Worksheets("Data").Range("A2:G2").Copy
Worksheets("Analysis").Range("K1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Calculate
Worksheets("Analysis").Range("C1:I1").Copy
Worksheets("Data").Range("I2").PasteSpecial Paste:=xlPasteValues
End Sub
Somit haben wir einen brauchbaren Code für einen Kopiervorgang. In Deiner Beispieldatei soll das jedoch für 5 Zeilen (Zeilen-Nr. 2-6) wiederholt werden. Ich nehme jetzt mal an, der Beginn des relevanten Bereichs in "Data" ist immer in Zeile 2 und die letzte Zeile ist variabel. Also können wir die For-Next-Schleife, für die ich mich der Einfachheit halber entschieden habe, mit Zeile 2 beginnen lassen. Die letzte Zeile muss aber im Makro noch ermittelt werden. Außerdem muss für den ersten der beiden Kopiervorgänge je Schleifendurchlauf die "Quelladresse" und für den zweiten Kopiervorgang die "Zieladresse" variabel adressiert werden. Ansonsten würde immer Zeile 2 kopiert und im zweiten Kopiervorgang würden die Ergbnisse überschrieben. Diese Überlegungen in Code umgesetzt ergibt dann folgenden Code:
Sub Peters_Aufzeichnung_mit_Schleife()
'Feststellen, wieviele Zeilen kopiert werden sollen
'Der Code entspricht folgendem manuelle Vorgehen:
'Zelle A65356 markieren, STRG-PFEITASTE NACH OBEN drücken und Zeilennummer auslesen
z = Worksheets("Data").Range("A65356").End(xlUp).Row
'Schleife von Zeile 2 bis Zeile z
' Statt Range verwenden wir Cells, da einfacher zu indizieren
For i = 2 To z
Worksheets("Data").Range(Worksheets("Data").Cells(i, 1), Worksheets("Data").Cells(i, 6)). _
Copy
Worksheets("Analysis").Range("K1").PasteSpecial Paste:=xlPasteValues
Calculate
Worksheets("Analysis").Range("C1:I1").Copy
Worksheets("Data").Cells(i, 9).PasteSpecial Paste:=xlPasteValues
Next i
Application.CutCopyMode = False
End Sub

Einziges Problem: Die Calculate-Anweisung (=F9) bewirkt in der Beispieldatei nichts, da die TEILERGEBNIS-Formeln auf immer den gleichen Bereich zugreifen und somit 5mal das gleiche Ergebnis liefern. Ich vermute mal aufgrund des älteren Threads, dass hier noch die Filterung erfolgen muss.
Abschließend noch eine Bitte: Versuche mal nachzuvollziehen und zu verstehen, wie man von aufgezeichnetem Code zu dem gewünschten Makro kommt. Ich denke, dass wird Dir für künftige Aufgaben nützen.
Gruß
Martin
Anzeige
AW: Kommst Du klar? Bitte Rückmeldung (owT)
11.08.2010 18:26:52
mpb
AW: Makro werte kopieren, code ausfueren
10.08.2010 14:53:58
mpb
Hallo Peter,
zum wiederholen braucht man Schleifen. Schau Dir mal über die Suche die Beiträge im Archiv an. Hier werden Schleifen erklärt:
http://www.online-excel.de/excel/grusel_vba.php?f=6
Gruß
Martin
AW: Makro werte kopieren, code ausfueren
10.08.2010 15:01:23
Peter
Danke, Martin!
Und was ist mit "Danke Björn?"
10.08.2010 15:07:43
Björn
Hallo,
nur so nebenbei bemerkt:
Den Hinweis mit Schleifen habe ich Dir auch gegeben.
Sogar noch, wie man eine Zelle variabel anspricht.
Aber nix für ungut ;-)
Gruß
Björn B.
AW: Deine Ansprüche sind schon ein bischen hoch
10.08.2010 14:32:39
Kopfschüttel
Hallo Peter
da kann man(frau) dem Björn nur rechtgeben!
Hier wird geholfen, aber nicht die Arbeit gemacht. Schließlich wirst Du ja für Deine Arbeit bezahlt und nicht die fleißigen Helfer hier im Forum.
Dank mal drüber nach!
Übrigens, hier beleidigt keiner den Anderen, aber die Wahrheit sollte ein Jeder vertragen!
Ein guten Tag
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige