Clever-Excel-Forum

Normale Version: Suchen/Ersetzen innerhalb des VBA Codes
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

bräuchte eure Hilfe!

Ich habe eine Tabelle "Template" mit ein paar Makros speziell zu dieser Tabelle. Diese Tabelle wird dupliziert und als 001 umbenannt.

die Makros in 001 müssen mit dem neuen Namen angepasst werden, also in VBA code vom sheets("Template") in Sheet("001") ersetzt werden.

hat jemand eine Idee per Makro mit Suchen/Ersetzen innerhalb des VBA Codes?


thx
t
schreib doch deine Makros so das der Sheetname nicht notwendig ist. 
Spezielle Hilfe dazu, gibts nach zeigen der Makros.
Aus Template wird fortlaufende Tabellen erzeugt, 001, 002, 003, etc.

>zeigen der Makros
was würde helfen?
sag ich dir wenn ich so ein Makro gesehen habe.  Es kommt doch immer drauf an was da im Programm steht.
Hier ein simpler code, egal wo man in der Tabelle ist, mit dem Klick auf Symbol in der 001 wird sie nach oben (eine Tabelle mit etwa 3400 Zeilen, 200 Spalten) scrollt.

Code:
Sub ScrollTop()
ActiveWindow.ScrollRow = 1
'ActiveWindow.ScrollColum = 1
Range("A2").Select
ActiveSheet.AutoFilterMode = flase
'Range("D3").Value = "All"
End Sub

Frage:
Wenn VBA-Code die Tabelle umbenennt, sagen wir in 001, kann ein anderer VBA-Code durch Suchen und Ersetzen Sheet("Template")  in Sheet("001") durchführen? Mir ist so eine Funktion auf VBA code nicht bekannt.
Hallo Tom,

es gibt wohl Möglichkeiten, VBA-Quelltexte zur Laufzeit zu ändern. Das habe ich allerdings noch nie versucht, weil ich es noch nie benötigt habe. Eventuell solltest du mal eine Beispieldatei hochladen. Wenn deine neuen Blätter alle in der gleichen Mappe stehen, könnte man mit einem Makro im Modul der Arbeitsmappe zum Ziel kommen. Das braucht man nur einmal, weil es auf alle bestehenden Tabellenblätter zugreifen kann, je nachdem, welches aktiv ist.
Verzichte auf 'Select', "scroll column', und nicht bestehende parameter wie 'flase'
danke Klaus-Dieter


Ich habe mich mit einem Entwickler in NY kurz unterhalten, bin auch seiner Meinung, dass es nicht funktionieren wird:

Tabelle "Template" hat zweilei Marko-Gruppen, die eine allgemeine Funktion ausführen wie

--Sub ScrollTop()
hier sollten keine Werte in der Tabelle verändern, sondern den Namen des Makro, etwas in Sub ScrollTop_001() ergänzen.

--Das wiederum sollte Excel in der Lage sein, das Icon in der Tabelle automatisch zum Makro zu assignen, was excel nicht kann, Tastenkombination, weiss nicht????.

--Und dann solche Makros, die die Tabelle auf irgendeine art und weise verändern.

Code:
Sub AddLink()
Dim Path As String
Dim outFileName As String
Dim WrdArray() As String
outFileName = Selection.Value
WrdArray() = Split(outFileName, "_")
Path = "A:\SAP\data.NY_001_2022\" & WrdArray(0) & "\" & outFileName
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="" & Path
End Sub

    --Oder solche:


Code:
Sub Clear2Death()
With Worksheets("Template")
     .Range("A7:A3500").ClearContents '
     .Range("I7:I3500").ClearContents '
     .Range("D7:D3500").ClearContents '
     .Range("L7:L3500").ClearContents '
End With
End Sub

für Tabelle ... hier sollte Worksheets("Template") zu Worksheets("001"), 002, 003, etc, umbenannt werden, damit Makros innerhalb jeweiliger Tabelle funktionieren.


btw:
brauche zeit um so ein Beispiel +/- 10 blabla-Datensätze zu erstellen, so schnell geht es bei mir leider nicht.

thx
Man könnte "Template" natürlich auch als Template speichern …
Warum eigentlich vom Aufbau her identische Sheets in einer Mappe?
Wie lange arbeitest du schon mit VBA ???
Von meinem Berater aus Redmond:
Code:
Sub M_snb()
    Intersect(Sheets(1).Range("7:3500"), Sheets(1).Range("A:A,D:D,I:I,L:L")).Select
    Sheets(1).Range("A7:A3500,D7:D3500,I7:I3500,L7:L3500").Select
End Sub
Seiten: 1 2