VBA - Modul mit Code in eine neue .......einfügen

Bild

Betrifft: VBA - Modul mit Code in eine neue .......einfügen
von: Bastelpeter
Geschrieben am: 24.02.2005 20:04:05
Hallo zusammen,
ich möchte gerne aus einer Makrolosen Arbeitmappe (für externe) zwei Tabellenblätter in eine neue Arbeitsmappe kopieren (mit Formaten ohne Formeln)und zusätzlich ein VBA-Modul in diese Arbeitsmappe einfügen.
Blatt verschieben kopieren etc. werde ich wohl hinbekommen, nur wie stelle ich das mit dem VBA-Modul an???
Wie immer Dankbar für jede hilfe,
Grüße aus Mainz / Sonnenpeter

Bild

Betrifft: AW: VBA - Modul mit Code in eine neue .......einfügen
von: Bert
Geschrieben am: 24.02.2005 20:06:14
Am einfachsten, wenn du die Codes in einem Tabellenmodul unterbringst. Die Sub dürfen
dort aber nicht Private sein.
Bert
Bild

Betrifft: AW: VBA - Modul mit Code in eine neue .......einfügen
von: Bastelpeter
Geschrieben am: 24.02.2005 20:11:01
Hallo Bert,
sicher doch, dass ist ein Weg hilft mir aber nicht weiter weil die Tabellenmodule Makrolos sind.
Gruß aus Mainz / Sonnenpeter
Bild

Betrifft: AW: VBA - Modul mit Code in eine neue .......einfügen
von: Bert
Geschrieben am: 24.02.2005 20:12:33
Na ja, dann kopierst du die Makros halt aus deinem Modul in ein Tabellenmodul, das schaffst du doch, oder?
Bert
Bild

Betrifft: Nein :-(((
von: Bastelpeter
Geschrieben am: 24.02.2005 20:17:50
Na ja, vieleicht nach Stunden etc.......
SP
Bild

Betrifft: AW: Nein :-(((
von: Nepumuk
Geschrieben am: 24.02.2005 20:21:13
Hallo Peter,
was zum basteln:


Public Sub Import_Export()
    Dim vbc As Object, iCounter As Integer, cType As String, StDateiname As String
    Workbooks.Open "D:\Eigene Dateien\Eigene Tabellen\Exportmappe.xls"
    For Each vbc In Workbooks("Exportmappe.xls").VBProject.VBComponents
        With vbc.CodeModule
            For iCounter = 1 To .CountOfLines
                If .ProcOfLine(iCounter, 0) > "" Or InStr(1, .Lines(iCounter, 1), "Dim") <> 0 _
                Or InStr(1, .Lines(iCounter, 1), "Public") <> 0 Or InStr(1, .Lines(iCounter, 1), "Type") <> 0 _
                Or InStr(1, .Lines(iCounter, 1), "Static") <> 0 Or InStr(1, .Lines(iCounter, 1), "Declare") <> 0 Then
                    Select Case vbc.Type
                        Case 1: cType = ".bas"
                        Case 2, 100: cType = ".cls"
                        Case 3: cType = ".frm"
                    End Select
                    Workbooks("Exportmappe.xls").VBProject.VBComponents(vbc.Name).Export "C:\Temp\" & vbc.Name & cType
                    Exit For
                End If
            Next iCounter
        End With
    Next vbc
    Workbooks.Open "D:\Eigene Dateien\Eigene Tabellen\Importmappe.xls"
    With Workbooks("Importmappe.xls").VBProject
        For Each vbc In .VBComponents
            Select Case vbc.Type
                Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
                Case 100
                With vbc.CodeModule
                    .DeleteLines 1, .CountOfLines
                End With
            End Select
        Next
        StDateiname = Dir("C:\temp\" & "*.*")
        Do While StDateiname <> ""
            If UCase(Right(StDateiname, 4)) = ".BAS" Or UCase(Right(StDateiname, 4)) = ".FRM" Or UCase(Right(StDateiname, 4)) = ".CLS" Then
                .VBComponents.Import "C:\Temp\" & StDateiname
            End If
            StDateiname = Dir
        Loop
        For Each vbc In .VBComponents
            If vbc.Type = 2 Then
                If Left(vbc.Name, 5) = "Diese" Or Left(vbc.Name, 7) = "Tabelle" Then
                    .VBComponents(Left(vbc.Name, Len(vbc.Name) - 1)).CodeModule.InsertLines 1, vbc.CodeModule.Lines(1, vbc.CodeModule.CountOfLines)
                    .VBComponents.Remove .VBComponents(vbc.Name)
               End If
            End If
        Next vbc
    End With
End Sub


Gruß
Nepumuk
Bild

Betrifft: Dachte mir schon.........
von: Bastelpeter
Geschrieben am: 24.02.2005 20:34:47
Danke Nepumuk,
dachte mir schon das, dass nicht so einfach ist, aber jetzt habe ich ja was zum basteln.

Danke!
Ist zwar kurz und prägnant,
aber den wenigsten bekannt.
© Erhard Blanck

Ehm, mir schon DANKE!
Grüße aus Mainz / Sonnenpeter
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Textboxen über Index ansprechen"