ich habe die Frage hier bereits gestern schon einmal gestellt, leider aber noch keine helfende Antwort erhalten. Da die Sache für mich wirklich sehr wichtig ist...stelle ich meinen Hilferuf erneut.
Ich habe folgendes (siehe unten) Makro. Das Makro fragt nach dem Namen eines Tabellenblattes, öffnet dann eine bestimmte Datei (werte.xls) und kopiert einige Spalten in die Datei.
Wie muss ich nun das Makro ändern, dass die Box nach dem Namen der DATEI fragt, diese dann wie gehabt öffnet und die Spalten in das Tabellenblatt "daten" kopiert. Es ist nun also genau andersherum.
Das Tabellenblatt heisst in allen Dateien gleich, nämlich daten.
Nur gibt es jetzt mehrere Dateien und gebe den Namen der Datei ein.
Sub CommandButton1_Click()
'kopiert 3 Bereiche in ausgewählte Tabelle
Dim strOutFile As String
Dim rngInput1 As Range 'Input-Spalte 1
Dim rngInput2 As Range 'Input-Spalte 2
Dim rngInput3 As Range 'Input-Spalte 3
Dim rngOutput1 As Range 'Output-Spalte 1
Dim rngOutput2 As Range 'Output-Spalte 2
Dim rngOutput3 As Range 'Output-Spalte 3
Dim wbkOutput As Workbook 'Output-File
Dim shtOutput As Worksheet 'Output-Tabelle
Dim strSheet As String 'Tabellen-Name
strOutFile = ThisWorkbook.Path & "\werte.xls"
strSheet = InputBox("Tabellenblatt:") 'Tabellen-Namen abfrage
Set rngInput1 = [E1:E306] 'Input-Spalte 1 zuweisen
Set rngInput2 = [G1:G306] 'Input-Spalte 2 zuweisen
Set rngInput3 = [H1:H306] 'Input-Spalte 3 zuweisen
Set wbkOutput = Workbooks.Open(strOutFile) 'Output-File öffnen
On Error GoTo errhandler
Set shtOutput = wbkOutput.Worksheets(strSheet) 'Output-Tabelle zuweisen
On Error GoTo 0
Set rngOutput1 = shtOutput.[B11:B316] 'Output-Spalte 1 zuweisen
Set rngOutput2 = shtOutput.[D11:D316] 'Output-Spalte 2 zuweisen
Set rngOutput3 = shtOutput.[AS11:AS316] 'Output-Spalte 3 zuweisen
rngInput1.Copy 'Spalte 1 kopieren
rngOutput1.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 'als Wert einfügen
rngOutput1.PasteSpecial Paste:=xlFormats
rngInput2.Copy 'Spalte 2 kopieren
rngOutput2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 'als Wert einfügen
rngOutput2.PasteSpecial Paste:=xlFormats
rngInput3.Copy 'Spalte 3 kopieren
rngOutput3.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 'als Wert einfügen
rngOutput3.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False 'Kopiermodus beenden
shtOutput.Activate
shtOutput.Range("A1").Select 'go home
errhandler:
End Sub
Wer kann mir da weiterhelfen?
Verzweifel langsam...
Joe