Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<
Microsoft Office 2003-2019 => Excel => Thema gestartet von: ELLY_ELLY am Mai 22, 2014, 11:28:01 Vormittag
-
Hallo an alle Helfer,
ich habe leider kaum bis gar keine Ahnung von VBA und Makro in Excel. Ich muss für meinen Arbeitgeber einen Makro schreiben.
In einem Tabellenblatt soll ein "Button"/Userform dauerhaft erscheinen. Wenn man diesen anklickt sollen bestimmte Zellen aus dem ersten Tabellenblatt in genau die gleichen Zellen im zweiten Tabellenblatt kopiert und eingefügt werden. Des Weiteren sollen diese Zellen im zweiten Tabellenblatt aufaddiert, also nicht überschrieben, werden. :o Es handelt sich also um Zahlen.
Des Weiteren soll bei dem gleichen Klick das erste Tabellenblatt ausgedruckt und die komplette Datei gespeichert werden.
Außerdem weiß ich nicht, wie ich die UserForm dann in meinem Tabellenblatt einfügen kann.
Ich brauche ganz dringend eure Hilfe, da ich das leider alleine nicht hinbekomme :(
Ich bin für jeden Lösungsvorschlag dankbar und beantworte gerne weitere Fragen. Auch Lösungsansätze sind gerne gesehen!
Vielen lieben Dank! :)
ELLY_ELLY
-
ich habe leider kaum bis gar keine Ahnung von VBA und Makro in Excel. Ich muss für meinen Arbeitgeber einen Makro schreiben.
Da stellt ich zuallererst für mich einmal die Frage, wie dein Arbeitgeber dazu kommt, dir eine solche Aufgabe zu übertragen. Nach deiner eigenen Aussage hier bist du der doch nicht annähernd gewachsen. [Kopfschüttel]
Und der zweite Punkt: IMHO ist ein Forum für die Hilfe zur Selbsthilfe gedacht. DAS aber wird mit hoher Sicherheit eine 90%ige "Fremdleistung" durch die kostenlosen Helfer hier im Forum. Und das kann es nicht sein ... Ein gerüttelt Maß an Eigenleistung sollte schon gegeben sein. Und wenn du dann spezielle Fragen hast sind die Helfer hier gewiss gerne bereit, dir auf die Sprünge zu helfen.
-
Hallo,
mein Arbeitgeben sieht es als eine Art Projekt für mich.
Ich habe bereits etliche Codes ausprobiert, aber nichts funktioniert und mit meinem nicht vorhandenen Wissen, weiß ich natürlich nicht einmal, ob es die richtigen sind.
Ich werde mich wohl irgendwie dadurch kämpfen müssen.
Vielen Dank trotzdem! ;)
ELLY_ELLY
-
Das ist ein Code, den ich generiert habe, um bestimmte Zellen aus dem ersten Blatt ins zweite zu kopieren:
Private Sub CommandButton1_Click()
Dim Rng2Copy As Range, Rng2Paste As Range
Dim aWerte()
Set Rng2Copy = Sheets("05 2014").Range("C20:H20", "C24:H24", "C28:H28", "C32:H32", "C36:H36", "C40:H40", "C44:H44", "C48:H48", "C52:H52", "C56:I56", "C60:H60", "C60:H60", "C64:H64", "C68:M68", "C72:M72", "L20;L24", "L28;L32", "L34", "L36", "M36", "L40")
Set Rng2Paste = Sheets("05 2014_Überischt").Range("C20:H20", "C24:H24", "C28:H28", "C32:H32", "C36:H36", "C40:H40", "C44:H44", "C48:H48", "C52:H52", "C56:I56", "C60:H60", "C60:H60", "C64:H64", "C68:M68", "C72:M72", "L20;L24", "L28;L32", "L34", "L36", "M36", "L40")
If Sheets("05 2014").CheckBox1.Value = True Then
aWerte() = Rng2Copy
Rng2Paste = aWerte()
End If
End Sub
-
Hallo ELLY_ELLY,
hast Du denn den Code ausprobiert, heißt, läuft dieser?
Einige Tipps:
- Wenn Du im VBA-Editor auf das Schlüsselwort klickst und F1 drückst (z.B. Range), springt VBA automatisch zum Hilfethema.
- Den Datentyp immer explizit deklarieren, statt Dim aWerte() dann Dim aWerte() As Variant.
- Vollständige Referenzierungen: statt Sheets(...) dann eher ThisWorkbook.Sheets(...), die die Mappe ist das oberste Objekt
- Da es sich bei Dir um Tabellen handelt, eignet sich Worksheets besser, somit: ThisWorkbook.Worksheets(...)
Hast Du den Makrorekorder schon ausprobiert? Falls nein, den erreichst Du z.B. über ein Symbol unten links oder über die
Entwicklerregisterkarte (Menüband, "Entwickler") oder über "Ansicht" -> Makros. Möglichst wenig anderes bei einer Aufzeichnung
tun, als die Aktion, die Du durchführen möchtest. Anschließend kannst Du den Code in einem Modul anschauen.
Jetzt kommt aber ein aber: der Makrorekorder zeichnet vieles auf, was Du nicht benötigst. Eine Überarbeitung des Codes is unabdingbar.
UserFormen kann er nicht, er bringt Dich aber auf die Spur, wie die VBA-Funktionen heißen. PS: für das Aufaddieren beim Kopieren, schaue
mal bei "Inhalte einfügen" rein.
Gruß
-
Hallo,
vielen Dank für die Tipps. Leider funktioniert es nicht so, wie ich das möchte. Wenn ich die Userform anklicke, bekomme ich einen Laufzeitfehler 450. Also scheint noch etwas falsch zu sein. Ich habe Sheets (...) durch ThisWorkbook.Worksheets (...) ersetzt.
Den Rekorder habe ich bereits ausprobiert, aber das klapt irgendwie gar nicht :-\