Suchen/Ersetzen innerhalb des VBA Codes
#1
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
Antworten Top
#2
schreib doch deine Makros so das der Sheetname nicht notwendig ist. 
Spezielle Hilfe dazu, gibts nach zeigen der Makros.
Antworten Top
#3
Aus Template wird fortlaufende Tabellen erzeugt, 001, 002, 003, etc.

>zeigen der Makros
was würde helfen?
Antworten Top
#4
sag ich dir wenn ich so ein Makro gesehen habe.  Es kommt doch immer drauf an was da im Programm steht.
Antworten Top
#5
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.
Antworten Top
#6
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Tom2020
Antworten Top
#7
Verzichte auf 'Select', "scroll column', und nicht bestehende parameter wie 'flase'
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
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
Antworten Top
#9
Man könnte "Template" natürlich auch als Template speichern …
Warum eigentlich vom Aufbau her identische Sheets in einer Mappe?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste