Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro erweitern

Forumthread: Makro erweitern

Makro erweitern
21.08.2017 15:32:28
Norbert
Hallo Spezialisten
wer kann mir folgendes Skript so umschreiben, das es das Makro Zeile für Zeile abarbeitet (jetzt macht es immer Wiederholungen auf der gleichen Zeile)
Sub t()
Dim i As Integer
For i = 1 To Application.InputBox("Ganzzahl >0:", "Anzahl Durchläufe", 1, , , , , 1)
Call Makro1
Next i
End Sub
Danke für deinen Beitrag
Gruss norbert
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro erweitern
21.08.2017 15:34:43
Uduuh
Hallo,
und was macht Makro1?
Gruß aus’m Pott
Udo

AW: Makro erweitern
21.08.2017 15:43:10
Norbert
Hallo Udo, hier das Makro:
Selection.Copy
Sheets("Formel").Select
Range("N2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L29").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Artikel").Select
Range("S4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B5").Select
End Sub
Anzeige
alles völlig unklar
21.08.2017 18:08:25
Werner
Halo Norbert,
ich wage mal zu bezweifeln, dass dir so jemand helfen kann. Die For Next Schleife, die du bei deinem ersten Code gepostet hast, macht nichts anderes als zig mal (so oft wie die Zahl, die du in der Input-Box eingibst) das Makro1 aufzurufen.
Ich glaube kaum, dass das dein Wunschergebnis ist.
Dein zweiter geopsteter Code (wohl Makro1) ist auch alles andere als zielführend. Kein Mensch weiß, was du eigentlich vor hast.
Poste doch mal eine Beispielmappe mit ein paar Beispieldaten und vor allem beschreibe mal, was passieren soll.
Gruß Werner
Anzeige
AW: Makro erweitern
22.08.2017 11:32:55
Piet
Hallo Nobert,
Makro1 ist eine typische Makro Recorder Aufzeichnung, die bringt uns aber nicht weiter!! Ich erklaeres dir.
Du kopierst am Anfang eine Selection. Wir sehen aber nicht in welchem Blatt und welcher Bereich?
Den Wert kopierst du ins Blatt "Formeln", und kopierst dort Range("L29") ins Blatt "Artikel" Range("S4").
Du schaltest aber nirgendwo in das 1. Blatt zurück. D.h., du bleibst für alle Zeit im Blatt Artikel stehen!!
Was willst du jetzt wohin kopieren? - Und wie oft ? - Das funktioniert so überhaupt nicht !!
Lade eine Beispieldatei hoch oder gib uns die bitte Blattnamen und Bereich an, was von wo nach wo kopiert werden soll. Und wenn du wiederholen willst nehem ich an jeweils die naechste Zeile darunter. Das geht über eine For Next Schleife mit Range("xx").offset(j,0) Dazu spollten wir aber die genauen Start und Zieladressen kennen. Von jdem Bereich der kopiert wird!
mfg Piet
Anzeige
AW: Makro erweitern
22.08.2017 14:59:45
Piet
Hallo Norbert,
danke für die Datei, ich denke ich habe das System so gut verstanden das wir mit einem neuen Makro auskommen. Wenn nur 1mal kopiert werden muss kannst du das verbesserte Makro1 verwenden. Ansonsten das neue Makro: - Kopieren_über_InputBox
Ich denke der Code ist so einfach geschrieben das man ihn kaum erklaeren muss. Ich benutze die Set Anweisung um die Tabellen zum Objekt zu erklaeren. Dann kann man uber .Cells oder .Offset in die naechsten Zellen kopieren.
mfg Piet
Option Explicit      '22.8.2017  Piet  Herber Forum
'Überarbeitet:
Dim Art As Worksheet   'Artikel
Dim Fml As Worksheet   'Formel
'neues Makro über InputBox mit Abbruch Möglichkeit
Sub Kopie_Über_Input()
Dim Zahl As Integer, i As Integer
Set Art = Worksheets("Artikel")
Set Fml = Worksheets("Formel")
Zahl = Application.InputBox("Ganzzahl >0:", "Anzahl Durchläufe", 1, , , , , 1)
If Zahl = Empty Then Exit Sub
For i = 1 To Zahl
'Zelle versetzt um "i" kopieren
Art.Range("B4").Cells(i, 1).Copy
Fml.Range("N2").PasteSpecial Paste:=xlPasteValues, Transpose:=False
'Zelle versetzt um i einfügen
Fml.Range("L29").Copy
Art.Range("S4").Cells(i, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=False
Next i
Application.CutCopyMode = False
End Sub
'altes Makro zum einmal kopieren
Sub Makro1()
Set Art = Worksheets("Artikel")
Set Fml = Worksheets("Formel")
Art.Range("B4").Copy
Fml.Range("N2").PasteSpecial Paste:=xlPasteValues, Transpose:=False
Fml.Range("L29").Copy
Art.Range("S4").PasteSpecial Paste:=xlPasteValues, Transpose:=False
Application.CutCopyMode = False
End Sub

Anzeige
AW: offen stellen vergessen (oWt)
22.08.2017 15:05:37
Piet
Hallo Norbert
wenn die Aufgabe damit erledigt ist bitte den Thread schliessen, Haeckchen -nicht aktivieren-
AW: offen stellen vergessen (oWt)
23.08.2017 11:16:59
Norbert
Hallo Piet
besten Dank - funktioniert einwandfrei
Gruss Norbert
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige