Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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
Teil im VBA Code ersetzen und speichern
04.04.2017 11:02:19
Hauke
Hallo zusammen,
mittlerweile jabe ich für jeden Kollegen in meiner Abteilung eine Excel Datei angelegt, mit der man Tagesreports erstellen und senden kann. Alles läuft super.
Nun muss ich aber von Zeit zu Zeit Änderungen und Neuerungen einspielen. Dies ist bei 40 Kollegen aber auch etwas Zeit intensiv. Ich habe eine Original-Datei, auf der ich erst alle Änderungen vornehme und dann mittels Suchen, Ersetzen und Speichern unter neuem Namen es für alle Kollegen zugänglich mache. Das lässt sich doch sicher schneller lösen. :D
Folgendes ist nun die Aufgabenstellung:
- VBA Code durchsuchen nach dem Namen des Kollegen zum Beispiel "Max"
- "Max" ersetzen durch "Christian"
- Datei speichern unter "MA-Datei - Christian"
- VBA Code durchsuchen nach dem Namen des Kollegen zum Beispiel "Christian"
- "Christian" ersetzen durch "Paul"
- Datei speichern unter "MA-Datei - Paul"
und immer so weiter.
Ich habe mich bereits daran versucht:

Private Sub CommandButton1_Click()
Call CommandButton2_Click
Call CommandButton3_Click
End Sub
Private Sub CommandButton2_Click()
Dim m As Object, v As Object, VBACode As String
Dim SuchString As String, ErsatzString As String
Dim wb As Workbook
SuchString = "TESTTEST"
ErsatzString = "Max"
For Each v In ActiveWorkbook.VBProject.vbcomponents
If v.Name  "UserForm1" Then
Set m = v.CodeModule
If m.CountOfLines > 0 Then
VBACode = m.Lines(1, m.CountOfLines)
VBACode = Replace(VBACode, SuchString, ErsatzString)
m.DeleteLines 1, m.CountOfLines
m.InsertLines 1, VBACode
End If
End If
Next v
ActiveWorkbook.SaveAs Filename:="C:\Users\Desktop\" & ErsatzString & ".xlsm"
Set m = Nothing
Set v = Nothing
End Sub
Private Sub CommandButton3_Click()
Dim m As Object, v As Object, VBACode As String
Dim SuchString As String, ErsatzString As String
Dim wb As Workbook
SuchString = "Max"
ErsatzString = "Hauke"
For Each v In ActiveWorkbook.VBProject.vbcomponents
If v.Name  "UserForm1" Then
Set m = v.CodeModule
If m.CountOfLines > 0 Then
VBACode = m.Lines(1, m.CountOfLines)
VBACode = Replace(VBACode, SuchString, ErsatzString)
m.DeleteLines 1, m.CountOfLines
m.InsertLines 1, VBACode
End If
End If
Set m = Nothing
Next v
ActiveWorkbook.SaveAs Filename:="C:\Users\Desktop\" & ErsatzString & ".xlsm"
Set m = Nothing
Set v = Nothing
End Sub

Die erste Datei wird sauber erstellt und dann stürzt Excel ab. Habe schon versucht, das Makro nach dem Durchlauf zu löschen mittels neuem Makro, aber das Problem bleibt bestehen.
Hat vllt jemand eine Idee?
Viele Grüße,
Hauke-Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Teil im VBA Code ersetzen und speichern
04.04.2017 16:57:34
onur
Wieso packst du den den Namen und Pfad-Namen nicht in eine Variable statt jedesmal den Code ändern zu wollen?
AW: Teil im VBA Code ersetzen und speichern
05.04.2017 10:07:56
Hauke
Hallo Onur,
wie würdest du das denn anstellen?
VG,
Hauke-Christian
AW: Teil im VBA Code ersetzen und speichern
05.04.2017 17:20:27
onur
Alle Mengen und Zutaten auswählen (inkl. Titelzeile, soweit vorhanden)
Menü Start/Sortieren&Filtern/nach Größe sortieren (Absteigend)-
fertig.
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige