Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroaufzeichung vereinfachen??

Forumthread: Makroaufzeichung vereinfachen?

Makroaufzeichung vereinfachen?
14.08.2005 19:06:04
Harry
Hallo zusammen,
mit beigefügter Tabelle habe ich (mit Hilfe eines Forumskollegen) ein Kalkulationsblatt entwickelt. In Spalte C habe ich Schaltflächen, die eine einfache Copy and Paste-Funktion ausführen. Da ich von VBA keine Ahnung habe, hab ich mit dem Makrorecorder aufgezeichnet. Für die Zeilen 8 und 9 ist das bereits geschehen.
Nun mein Problem: Meine Tabelle hat 157 Zeilen. Da müßte ich jetzt noch rund 150 mal eine Schaltfläche einrichten und das Makro aufzeichnen.
Das geht doch sicher auch effizienter?
(Ich wollte mit der normalen Kopierfunktion die Schaltflächen verfielfachen, leider schaffe ich damit keine neuen, sondern halt nur Kopien, hier Schaltfläche 27 und 34).
Kann mir jemand helfen?
Viele Grüße
Harry
https://www.herber.de/bbs/user/25624.xls
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroaufzeichung vereinfachen?
14.08.2005 19:24:16
Reinhard
Hi Harry,
benenne die Schaltfflächen
T8:AA8
T9:AA9
T10:AA10
usw
und weise allen das gleiche Makro zu.

Sub EinCodeFürAlle()
Range("T7:AA7").Copy
Range(Application.Caller).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
End Sub

Gruß
Reinhard
Anzeige
AW: Makroaufzeichung vereinfachen?
14.08.2005 20:28:25
Harry
Hallo Reinhard,
danke für die schnelle Antwort!
Leider weiß ich nicht, wie ich die Schaltflächen umbenennen soll, es gibt kein Namensfeld. Du meinst ja sicher nicht den Text der auf der Schaltfläche steht.
Liegt es daran, dass sie vom Typ Ansicht Symbolleisten Formular sind. (Ich habe diese Sorte genommen, weil ich da mit dem Recorder aufzeichnen kann).
Oder muss ich alle Schaltflächen nochmal löschen und neu einrichten?
Viele Grüße
Harry
Anzeige
AW: Makroaufzeichung vereinfachen?
14.08.2005 22:03:46
Matthias
Hallo Harry,
na, bist ja schon ein Stück weiter gekommen ;-)
Du brauchst eigentlich nur 2 Makros. Mit dem ersten weist du allen Schaltflächen auf dem Blatt das Makro "Uebertragen" zu:

Sub Makros_Zuordnen()
Dim i As Integer
Dim Sh As Shape
For Each Sh In Sheets("Kalkulation").Shapes
If Sh.Type = 8 Then
Sh.OnAction = "Uebertragen"
End If
Next Sh
End Sub

Und das Makro "Uebertragen" liest die Zelle aus, die unter der angeklickten Schltfläche liegt, ermittelt deren Zeile und kopiert die Werte entsprechend:

Sub Uebertragen()
Dim zeile As Long
zeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Range("T7:AA7").Copy Range("T" & zeile & ":AA" & zeile)
End Sub

Gruß Matthias
Anzeige
AW: Makroaufzeichung vereinfachen?
14.08.2005 23:22:05
Reinhard
hi Harry,

Sub EinmaligDurchführen()
Dim bild As Shape
z = 8
For Each bild In ActiveSheet.Shapes
bild.name = "T" & z & ": AA" & z
z = z + 1
Next bild
End Sub


Sub EinCodeFürAlle()
Range("T7:AA7").Copy
Range(Application.Caller).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
End Sub

Gruß
Reinhard
Anzeige
AW: Makroaufzeichung vereinfachen?
15.08.2005 19:58:21
Harry
Hallo Reinhardt, hallo Matthias,
vielen Dank für Eure schnellen Antworten. Leider komme ich heute nicht mehr dazu, die Vorschläge auszuprobieren, bin mir aber sicher, dass beide gut funktionieren werden.
Bis bald!
Harry
;

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