AW: Makroimport in Sheets
03.01.2008 11:49:00
fcs
Hallo Wolfram,
hier die Makro-Lösung.
Das Makro kannst du in einer beliebigen Excel-Datei speichern, z.B. auch in der persönlichen Makroarbeitsmappe.
Der Code aus der Textdatei wird jeweils in der aktiven Arbeitsmappe im Modul der ausgewählten Tabelle eingefügt.
Bitte Hinweise in der Fehlerbehandlungsmeldung am Ende des Codes beachten!
Gruß
Franz
Sub Code_ausTextdatei_Einfuegen()
'Fügt VBA-Code aus Textdatei in angegebener Tabelle ein
Dim intWS1 As Byte 'Nummer der Zieltabelle
Dim wbZiel As Workbook, strDateiTxt, ff As Byte, LineText As String, FileText As String
On Error GoTo Beenden
Set wbZiel = ActiveWorkbook
'Nummern und Namen der Tabellen in der Zieldatei einlesen
For ff = 1 To wbZiel.Worksheets.Count
LineText = vbLf & ff & " " & wbZiel.Worksheets(ff).Name
Next
'Zieltabelle wählen
intWS1 = Val(InputBox("Bitte Nr. der Zieltabelle in Datei """ & wbZiel.Name _
& """ eingeben" & vbLf & LineText, _
"Code aus TextDatei in Tabellenmodul importieren", 1))
If intWS1 = 0 Then GoTo Beenden
'Textdatei mit Code auswählen
strDateiTxt = Application.GetOpenFilename(Filefilter:="Textdateien (*.txt),*.txt", _
Title:="Bitte Textdatei mit Code auswählen")
If strDateiTxt = False Then GoTo Beenden
'Text aus Textdatei einlesen
ff = FreeFile()
Open strDateiTxt For Input As ff
Do Until EOF(ff)
Line Input #ff, LineText
FileText = FileText & LineText & vbLf
Loop
'Code unter Zieltabelle einfügen
With wbZiel.VBProject.VBComponents(Worksheets(intWS1).CodeName).CodeModule
.InsertLines 1, FileText
End With
Beenden:
If Err.Number = 1004 Then
MsgBox "Fehler 1004" & vbLf & Err.Description & vbLf _
& "Bitte vor dem Start des Makros im Excel Menü" & vbLf _
& "Extras-->Makro-->Sicherheit..." & vbLf _
& "Die Option ""Zugriff auf VBA-Projekt vertrauen"" aktivieren." & vbLf _
& "Nach Ausführung des Makros diese Option ggf. wieder deaktivieren!"
End If
Set wbZiel = Nothing
End Sub