Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Code in "DieseArbeitsmappe" extern ändern

VBA Code in "DieseArbeitsmappe" extern ändern
Kai
Hallo,
Folgende Situation:
Ich möchte mit Hilfe von VBA den Code des VBAProject-Moduls "DieseArbeitsmappe" bei ca. 200 Excel-Dateien ändern. Der Code der ausgetauscht werden soll ist überall gleich und liegt als neu1.txt bei mir aufm Desktop. Die "File-Changer.xls" ebenfalls.
Quelltext:
...
Do While strDatei ""
Set Wkb = Workbooks.Open(strPfad & strDatei, False, False)
Wkb.VBProject.VBComponents("DieseArbeitsmappe").CodeModule.AddFromFile ("C:\Dokumente und Einstellungen\kai\Desktop\neu1.txt")
Application.DisplayAlerts = False
Wkb.Save
Wkb.Close SaveChanges:=False
strDatei = Dir()
Application.DisplayAlerts = True
Loop
...
Ich probiere schon seit heute morgen herauszufinden wo der Fehler ist, aber ich komme einfach nicht drauf... Es wird lediglich die erste Datei geöffnet und dann offen gelassen und nichts wird geändern... von daher liegt der Fehler halt irgendwo bei "Wkb.VBProject....". Fehlermeldungen gibt es keine. Kann mir wer helfen?
Kai
Anzeige
AW: VBA Code in "DieseArbeitsmappe" extern ändern
07.05.2010 16:49:12
Ramses
Hallo
Zeig mal den ganzen Code
Gruss Rainer
Ggf verlangt VBComponents einen numer...
07.05.2010 16:51:29
Luc:-?
…Index, Kai,
dann müsstest du mit dem und evtl noch Namensvgl arbeiten oder die Komponente direkt ansprechen, wenn das möglich ist…
(Irgendeinen Grd wird's schon dafür geben, dass ich das immer so mache…) ;-)
Gruß Luc :-?
Anzeige
AW: VBA Code in "DieseArbeitsmappe" extern ändern
07.05.2010 18:56:22
Nepumuk
Hallo,
normal ist das aber nicht. Bei VBA gut sollte man schon erwarten können, dass du dir mal Gedanken machts. In 200 Dateien den selben Code !!! Das schreit seit 198 Dateien förmlich nach einem Addin.
Gruß
Nepumuk
AW: VBA Code in "DieseArbeitsmappe" extern ändern
10.05.2010 09:44:19
Kai
Ein Addin kommt auf Grund mangelnder Flexibilität und der häufigen Weitergabe der Dateien absolut nicht in Frage. Gedanken habe ich mir darum schon gemacht...
Luc, was genau meinst du mit Index? Sorry, aber ich stehe da gerade aufm Schlauch :)
@Ramses:
'LOAD
Private Sub CommandButton1_Click()
Dim Wkb As Workbook, Zielmappe As Workbook
Dim strPfad As String, strDatei As String, tabName As String
Dim abbruch As Integer
abbruch = 0
On Error GoTo Errorhandling:
Set Zielmappe = ThisWorkbook
tabName = ActiveSheet.Name
'Abort condition
Do While abbruch = 0
'Choose process
MsgBox "Load process folder. Press 'Cancel' when completed."
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select folder"
.ButtonName = "Choose folder..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strPfad = .SelectedItems(1) & "\"
Else
strPfad = ""
End If
End With
If strPfad = "" Then
MsgBox ("Done")
abbruch = 1
GoTo AbortLoad
Else
'MsgBox strPfad
End If
'Load process
strDatei = Dir(strPfad & "*.xls", vbDirectory)
Do While strDatei  ""
Set Wkb = Workbooks.Open(strPfad & strDatei, False, False)
Wkb.VBProject.VBComponents("DieseArbeitsmappe").CodeModule.AddFromFile ("C:\Dokumente und  _
Einstellungen\kai\Desktop\neu1.txt")
Wkb.Worksheets("control").Unprotect Password:=""
Wkb.Worksheets("control").Cells(10, 1) = "bla"
Wkb.Worksheets("control").Cells(11, 1) = "bla"
Wkb.Worksheets("control").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, Password:=""
Wkb.Worksheets("data").Cells(18, 8) = "bla"
Wkb.Worksheets("data").Cells(20, 8) = "bla"
Wkb.Worksheets("data").Cells(35, 8) = "bla"
Wkb.Worksheets("data").Cells(37, 8) = "bla"
Application.DisplayAlerts = False
Wkb.Save
Wkb.Close SaveChanges:=False
strDatei = Dir()
Application.DisplayAlerts = True
Loop
Application.ScreenUpdating = True
Loop
AbortLoad:
Application.ScreenUpdating = True
Errorhandling:
If Err.Number = 9 Then MsgBox ("Wrong file!")
End Sub

Eventuell ist der Code an der ein oder anderen Stelle nicht ganz sauber. Aber funktionieren tut er ohne die Zeile "Wkb.VBProject.VBComponents("DieseArbeitsmappe").CodeModule.AddFromFile ("C:\Dokumente und Einstellungen\kai\Desktop\neu1.txt")" einwandfrei!!
Kann mir eventuell damit jemand weiterhelfen? Ich verzweifel bald
Anzeige
AW: VBA Code in "DieseArbeitsmappe" extern ändern
10.05.2010 10:12:12
Anton
Hallo Kai,
ersetze
If Err.Number = 9 Then MsgBox ("Wrong file!")
durch
If Err.Number 0 Then MsgBox Err.Description
dann siehst du vllt mehr.
mfg Anton
AW: VBA Code in "DieseArbeitsmappe" extern ändern
10.05.2010 11:02:26
Kai
Hallo Anton,
Oh man. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr...
Vielen Dank! Problem schon gelöst.
Fehlermeldung: "Der programmatische Zugriff auf das Visual-Basic-Projekt ist nicht sicher"
Lösung: Extras, Makro, Sicherheit, Vertrauenswürdige Quellen, "Zugriff auf Visual-Basic-Project vertrauen" aktivieren
Danke an alle Beteiligten.
Gruß
Kai
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige