Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche Hilfe beim Tausch oder editieren von Modulen

Suche Hilfe beim Tausch oder editieren von Modulen
29.09.2004 13:27:51
Modulen
Hallo, ein Hilferuf !
In einer größeren Menge von Exceldateien besteht der Bedarf zur Modifizierung der jeweils gleichartigen anhängenden VBA-Module. Ich suche dringend eine Lösung mit welcher ich per VBA entweder die Module modifizieren oder gegen ein modifiziertes Modul austauschen kann. Die bisher zu diesem Thema gefundenen Lösungen passen entweder nicht richtig bzw. sind nicht ganz verstanden worden.
Wer kann helfen ? Danke schon mal vorab.
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche Hilfe beim Tausch oder editieren von Modulen
29.09.2004 18:00:37
Modulen
Hallo Thomas,
da finde ich im Archiv sicher zwanzig Beiträge alleine von mir zu diesem Thema. Wenn das Projekt allerdings geschützt ist, kannst du das Ganze vergessen. Dann schreib besser ein Makro, mit dem du alle Tabellenblätter in eine neue Mappe kopierst. Die Makros würde ich in einem Addin unterbringen, das ist nämlich ganz einfach auszutauschen. In die Mappe machst du per Makro einen Verweis auf das Addin, dann wird es automatisch nur mit dieser geladen und nicht grundsätzlich mit Excel. Außerdem kannst du den Ordner, in dem sich das Addin befindet selbst bestimmen. Damit bist du unabhängig vom Betriebssystem, denn die verschiedenen Systeme haben unterschiedliche Pfade zu den Addins.
Gruß
Nepumuk
Anzeige
AW: Suche Hilfe beim Tausch oder editieren von Modulen
29.09.2004 21:16:30
Modulen
Hallo Nepomuk und Freaks,
Danke für den Hinweis zum Addin, welches ich auch langfristig nachrüsten will.
Aber selbst in dieser Variante wären in allen Dateien die unnötige Module zu löschen und mit dem dem neuen Modul (Verweis auf Addin) auszurüsten.
Es soll also zunächst nur ein namentlich bezeichnetes Modul ausgetauscht werden. Wenn das klappt gehts weiter.
Ich fand auch einen annähernden Beitrag (siehe unten), verstehe ihn aber nicht vollständig bzw. mein VBA nicht. Ist eine Kommentierung der Zeilen möglich?
Hier sollten wohl alle Module gelöscht werden und mir ist nicht ganz klar von wo der Ersatz kommen sollte.
Ich danke schon mal im voraus.
Thomas

Sub Export_Import()
Dim vbc As Object, iCounter As Integer, cType As String, StDateiname As String
Workbooks.Open "D:\Eigene Dateien\Eigene Tabellen\Exportmappe.xls"
SendKeys "%{F11} %Xi{TAB 9}" & "Dein Kennwort" & "{tab}{enter}{enter} %q"
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\Testmappe.xls"
SendKeys "%{F11} %Xi{TAB 9}" & "Dein Kennwort" & "{tab}{enter}{enter} %q"
With Workbooks("Testmappe.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

Anzeige
AW: Suche Hilfe beim Tausch oder editieren von Modulen
02.10.2004 09:33:21
Modulen
Hallo Thomas,
der Code kopiert aus einer Mappe ("Exportmappe.xls") alle Module nach C:\Temp und von dort aus nach ("Testmappe.xls") (sieht auch verdächtig nach einem Code von mir aus). Aber wie schon geschrieben, wenn das Projekt geschützt ist, dann funktioniert es nicht mehr. Ab Excel2000 SP3 nimmt das Kennworteingabefeld für das Projektkennwort keine Sendkeys mehr an. Ich habe es übrigens aufgegeben meine Projekte zu schützen. Der Normaluser weiß garnicht wie er in den VBA - Editor kommt und der, der sich damit auskennt, hat das Kennwort in ca. 10 Sekunden geknackt. Also was soll's.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige