Informationen und Beispiele zum Thema InputBox | |
---|---|
![]() |
InputBox-Seite mit Beispielarbeitsmappe aufrufen |
Hallo zusammen,
ich habe relativ mühsam, mit meinen sehr übersichtlichen Kenntnissen folgendes Makro gebastelt.
Es kopiert werde aus dem ausgewählten Tabellenblatt in eine andere Arbeitsmappe um diesen dann wo abspeichern zu können.
Zwei Dinge würde ich gerne mit eurer Hilfe verbessern:
1) Dateiname als Variable, am besten über Textbox ändern
2) Er soll bitte die Werte aus allen Tabellenblättern (Bereiche bleiben die selben), in die Upload Datei kopieren.
https://www.herber.de/bbs/user/140100.xlsm
Vielen Dank vorab.
"Windows("Sonstige.xlsx").Activate"angesteuert wird. Bis jetzt ist mein Vorgenen den Dateinamen "Sonstige" durch Suchen und Ersetzen auszustauschen, die Idee wäre hier flexibel zu arbeiten. Bringt es tatsächlich in diesem Fall einen so großen Mehrwert eine Beispieldatei hochzuladen? Denn es ist mir nur durch das herauslöschen einiger Monate und Zeilen möglich auf die vorgeschriebene größe zu kommen, so wird der eigentlich Zweck der Datei auch nicht besser dargestellt.
Option Explicit Sub Kopieren() Dim strQuelle As String, ws As Worksheet Dim loZeile As Long, i As Long Application.ScreenUpdating = False strQuelle = InputBox("Bitte Name der Quelldatei angeben:", "Kopieren aus Datei") If Not strQuelle = vbNullString Then If InStr(strQuelle, ".") = 0 Then strQuelle = strQuelle & ".xlsx" For Each ws In Workbooks(strQuelle).Worksheets With ws Range("J17:KI125").Copy With ThisWorkbook.Worksheets("Upload") loZeile = .Cells(.Rows.Count, "A").End(xlUp).Row If loZeile < 3 Then loZeile = 3 .Range("A" & loZeile).PasteSpecial Paste:=xlPasteValues loZeile = loZeile + 150 End With For i = 296 To 536 Step 24 Cells(17, i).Resize(109, 24).Copy ThisWorkbook.Worksheets("Upload").Range("A" & loZeile).PasteSpecial _ Paste:=xlPasteValues loZeile = loZeile + 150 Next i End With Next ws End If Application.CutCopyMode = False End SubGruß Werner
Range("J17:KI125").Copy Cells(17, i).Resize(109, 24).Copy
.Range("J17:KI125").Copy .Cells(17, i).Resize(109, 24).CopyGruß Werner