Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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: 1 Gast/Gäste