Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1776to1780
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
Inhaltsverzeichnis

VBA Code durch VBA korrigieren

VBA Code durch VBA korrigieren
13.08.2020 18:13:29
Berny
Hallo Freunde,
ich habe großen Mist gebaut. Beim Aufbau eines Moduls in einem Formblatt habe ich eine fehlerhafte Eingabe gemacht.
Ich wollte abfragen, ob sich die Application im CutCopyMode befindet Ich frage aber nur nach dem copy modus.
Application.CutCopyMode = 1
anstatt
Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut
So und jetzt wurde das Formblatt 100 + x mal verwendet.
Ich hatte vor langer Zeit ein Modul aus einem Forum, welches einen Code ersetzt. Das habe ich jetzt versucht, aber es funktioniert leider nicht.
Sub ersetzen()
Datei = "Test.xlsm"
Modulname = "Tabelle1"
Workbooks(Datei).Activate
With Workbooks(Datei).VBProject.VBComponents(Modulname).CodeModule
PcStrLn = 1
PcLnCnt = .CountOfLines
Strng = .Lines(1, .CountOfLines)
CngdStrng = Replace(Strng, "'Application.CutCopyMode = 1'", "'Application.CutCopyMode =  _
xlCopy Or Application.CutCopyMode = xlCut'", 1, , vbTextCompare)
.DeleteLines 1, .CountOfLines
.AddFromString CngdStrng
End With
End Sub

Warum wird hier nichts ersetzt? Gibt es eine andere, bessere Methode?
M.f.G.
Berny

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code durch VBA korrigieren
13.08.2020 18:25:39
Werner
Hallo,
das bietet dir doch im VBA Fenster angeboten. Wenn du in deinem VBA Projekt bist drück StRG & H und du kannst suchen und ersetzen. Und das in der aktuellen Prozedur, im aktuellen Modul oder Projrktweit.
Gruß Werner
AW: VBA Code durch VBA korrigieren
13.08.2020 18:32:00
Berny
Hallo Werner,
Danke für deine Meldung. Das ist mir schon klar mit dem ersetzen.
Mein Problem ist, dass ich das unendliche male machen muss.
Ich habe eine Schleife um alle Mappen der Reihe nach zu öffnen.
Das Passwort bekomme ich auch auf (zumindest in meinem Test). Nur dann …
Wenn ich das alles von Hand machen will, sitze ich Tage.
M.f.G.
Berny
Anzeige
AW: snb
13.08.2020 18:40:36
Fennek
Hallo,
snb schlägt das vor:

Sub Macro_code_vervangen()
With ThisWorkbook.VBProject.VBComponents("Macroos").codemodule
.DeleteLines .ProcStartLine("macro3", 0) + 1, .ProcCountLines("macro3", 0) - 2
.InsertLines .ProcStartLine("macro3", 0) + 1, "c00 = " & Chr(34) & "Dit is de nieuwste tekst"
End With
End Sub
Dabei muss im Trustcenter der Zugriff auf das VBProject zugelassen werden.
mfg
http://snb-vba.eu/VBA_Excel_VBproject_en.html#L_3.1.3
AW: snb
13.08.2020 19:21:39
Berny
Hallo Fennek,
meintest du : "Zugriff auf das VBA Projetmodell vertrauen", oder gibt es noch eine Einstellung?
Kannst du mir das noch erklären?
.DeleteLines .ProcStartLine("macro3", 0) + 1, .ProcCountLines("macro3", 0) - 2
.InsertLines .ProcStartLine("macro3", 0) + 1, "c00 = " & Chr(34) & "Dit is de nieuwste tekst"
wo muss hier das eingesetzt werden was ich durch was ersetzen will?
M.f.G.
Berny
Anzeige
AW: vielleicht
13.08.2020 19:49:22
Fennek
Hallo,
ich halte "Application im CutCopyMode" für komplet überflüßig, da es nur das Clipboard leert. Das motiviert nicht gerade, sich mit diesem Thema zu beschäftigen.
Lade den kompletten Code des Moduls hoch, vielleicht findet sich jemand, der dir hilft. Vielleicht ist es besser das Modul zu löschen und ein besseres zu importieren.
mfg
AW: VBA Code durch VBA korrigieren
13.08.2020 19:18:55
onur
Mit "Beim Aufbau eines Moduls in einem Formblatt " meinst du das Codemodul des Blattes?
Wenn ja, ist der Name des Blattes in jeder der Dateien immer der Selbe?
AW: VBA Code durch VBA korrigieren
13.08.2020 19:59:54
Berny
Hallo onur,
ja es ist der Ereignis - Code für die Tabelle oder Blatt (Worksheet_SelectionChange).
und ja die Tabelle heißt immer gleich mit dem gleichen Inhalt.
Ich kann auch alles ersetze... Hauptsache es wird korrigiert.
Gruß Berny
Anzeige
AW: VBA Code durch VBA korrigieren
13.08.2020 20:07:20
onur
Dann solltest du (Makrorecorder einschalten)
Datei öffnen
zu ersetzendes Blatt auswählen
Blatt löschen
die Datei mit dem korrekten Blatt aktivieren
Blatt in die andere Datei kopieren
Makrorecorder beenden und anpassen
AW: VBA Code durch VBA korrigieren
13.08.2020 20:21:20
Berny
Hallo noch mal,
so einfach ist das nicht. Die Tabelle(n) sind alle mit Daten und Formatierungen ….gefüllt.
wenn ich die Austausche sind die Daten weg!
AW: VBA Code durch VBA korrigieren
13.08.2020 20:27:49
onur
DU hast doch geschrieben: "Ich kann auch alles ersetze... Hauptsache es wird korrigiert."
AW: VBA Code durch VBA korrigieren
13.08.2020 21:30:48
Berny
mit alles Ersetzen meinte ich natürlich das Makro es muss nicht nur die eine Zeile sein. Oder warum glaubst du, dass ich so viele Kopien eine Formulars habe?
Gruß Berny
Anzeige
AW: VBA Code durch VBA korrigieren
13.08.2020 21:38:46
onur
"Oder warum glaubst du, dass ich so viele Kopien eine Formulars habe?" Keine Ahnung, da du es ja nicht verraten hast - interessiert mich aber ehrlich gesagt auch gar nicht.
Ich bin dann raus, da ich keine Lust auf patzige Antworten habe, wenn ich versuche, Jemandem zu helfen.
AW: VBA Code durch VBA korrigieren
14.08.2020 07:36:12
Berny
Sorry!
Das war mir schon klar, als du mich angemacht hast, weil ich erst nach 58 min auf deine Frage geantwortet habe. Dann kommt ein Lösungsvorschlag, den man sich an drei Finger abzählen kann, dass er nicht funktioniert. Und wenn's schwierig wird, ist der andere patzig.
Ich habe eine höfliche konkrete Frage ans Forum gestellt. Ich weiß, dass ich der Hilfesuchende bin.
Wenn du raus bist ist das deine Sache. Dann hoffe ich, dass sich ein anderer erbarmt mir zu helfen.
Gruß Berny
Anzeige
AW: VBA Code durch VBA korrigieren
14.08.2020 07:53:32
onur
Klar, dein Problem ist ja sooooo schwierig und deswegen bin ich raus.
Das Lustigste dabei ist, dass immer die Leute Code durch Code ersetzen wollen, die nicht mal zwei fehlerfreie VBA-Zeilen am Stück schreiben können, geschweige denn ihr Problem präzise erklären.
AW: VBA Code durch VBA korrigieren
13.08.2020 19:58:32
onur
Wen du hier Hilfe willst, solltest auch dir gestellte Fragen beantworten.
AW: VBA Code durch VBA korrigieren
13.08.2020 20:04:31
Berny
Sorry, ich muss ab und zu mal etwas essen.
Außerdem habe ich seit 3 h Feierabend. deshalb schaue ich nur noch sporadische hier herein.
AW: VBA Code durch VBA korrigieren
14.08.2020 07:48:23
Berny
Hallo liebe Forumsteilnehmer,
nach dem sich schon einige verabschiedet haben, möchte ich meine Frage noch einmal stellen.

Wie kann man via VBA in einem VBA - Code eine, immer gleiche Zeile, durch eine andere immer gleiche Zeile ersetzen.

siehe auch meine ursprüngliche Anfrage.
Hat jemand ein Bsp. für mich (am besten gleich im Zusammenspiel mit der Passwort Eingabe) die habe ich zwar schon hin bekommen, aber das muss ja auch zusammen passen.
M.f.G.
Berny
Anzeige
AW: VBA Code durch VBA korrigieren
14.08.2020 09:35:49
peterk
Hallo
In meinem kleinen Bespiel ersezte ich die Zeile mit "Debug.print" durch "Debug.print timer(),i" im Aktiven Workbook

Sub ersetzen()
Modulname = "Tabelle1"
With ActiveWorkbook.VBProject.VBComponents(Modulname).CodeModule
For i = 1 To .CountOfLines
strng = .Lines(i, 1)
If InStr(1, strng, "Debug.print", vbTextCompare) > 0 Then
.ReplaceLine i, "Debug.print timer(),i"
Exit For
End If
Next i
End With
End Sub

AW: VBA Code durch VBA korrigieren
14.08.2020 10:07:49
Berny
Hallo Peterk
S U P E R !!! es geht!
Danke!
Jetzt habe ich noch ein kleines Problem. Vielleicht weißt du auch hier einen Rat.
ich öffnen den Schreibschutz mit
SendKeys "%{F11}%xi{TAB 9}" & "PW" & "{tab}{enter 2}%q"
Das geht ganz gut. Wenn ich aber die Datei innerhalb des Moduls mit Workbook.open öffne wird der Schreibschutz nicht aufgehoben. Das kann ich mir nicht erklären
Wie auch immer, notfalls muss ich halt händisch alle Mappen öffnen.
M.f.G.
Berny
M.f.G.
Berny
Anzeige
AW: VBA Code durch VBA korrigieren
14.08.2020 10:19:32
peterk
Hallo
Warum verwendest Du nicht "Unprotect" bzw. "Protect". Beide Methoden sind sowohl auf WorkBook alsauch auf WorkSheet Ebene definiert (SendKeys ist die schlechteste aller Möglichkeiten)
AW: VBA Code durch VBA korrigieren
14.08.2020 10:34:12
Berny
Hallo peterk,
sorry, dass ich schon wieder blöd nachfrage. Man kann das VB-Projekt mit "Unprotect" entsperren?
.VBProject.unprotect
geht bei mir nicht. wie muss ich die Eingabe richtig machen?
Gruß Berny
AW: VBA Code durch VBA korrigieren
14.08.2020 11:14:00
peterk
Hallo
VBProject hat leider keine Protect/Unprotect Methode. Eine Lösung ohne SendKey
http://www.siddharthrout.com/index.php/2019/01/20/unprotect-vbproject-from-vb-code/
P.S: Du Musst "Ret = FindWindow(vbNullString, "VBAProject Password")" auf
Ret = FindWindow(vbNullString, "VBAProject Kennwort") ändern
Anzeige
AW: VBA Code durch VBA korrigieren
14.08.2020 11:24:56
Berny
Hallo,
OK das ist interessant! aber im Moment zu stark für mich
Vielen herzlichen Dank nochmal und ein schönes Wochenende
Gruß Berny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige