[VisualBasic] Suchen und Ersetzen von Werten per Makro

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Timbo6, 9. Oktober 2006 .

  1. 9. Oktober 2006
    Suchen und Ersetzen von Werten per Makro

    Hallo,
    hoffe jemand kann mir helfen...
    Ich will folgendes realisieren, hab aber nur bedingt Ahnung von Makros und überhaupt keine Ahnung von Visual Basic !
    Ich habe vorhandene Makros die zu Analysezwecken Versionsnummer auslesen sollen.
    Jetzt habe ich das Problem das diese Makros sehr viel Quellcode haben und ich die sich ständig ändernden Versionsnummern nicht immer von Hand editieren will.
    Würde das gerne nach dem "Suchen & Ersetzen"-Prinzip machen. Von Vorteil wäre hierbei wenn man das ganze auch als Makro in den vohandenen Quellcode implementieren könnte ?
    Gibt es da Wege und Lösungen sowas, vielleicht sogar mit Eingabemaske, zu realisieren ?

    Hier ein Auszug der Makros. Ist zwar nicht der ganze Code, aber er wiederholt sich eh nur, also belanglos. Die fettmakierten und in " " sind Wert/ Parameter die jedesmal editiert werden sollen:

    Code:
    Sub Anlagen()
    
    ChangeFileOpenDirectory [B]"D:\Anlagen\ABC\uebersicht\l1\H249\1.3\"[/B]
    Documents.Open FileName:=[B]"1.3.ddl"[/B], ConfirmConversions:=False, ReadOnly:=
    False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:=
    "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="",
    Format:=wdOpenFormatAuto, Encoding:=1252
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "{"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
    .Text = "}"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ",^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ",^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "°"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ActiveDocument.SaveAs FileName:=[B]"1.3.ddl.txt"[/B], FileFormat:=wdFormatText,
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False,
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=
    False, Encoding:=1252, InsertLineBreaks:=True, AllowSubstitutions:=False,
    LineEnding:=wdCRLF
    ActiveDocument.Close
    ChangeFileOpenDirectory [B]"D:\Anlagen\ABC\uebersicht\l1\H300\1.3\"[/B]
    Documents.Open FileName:=[B]"1.3.ddl"[/B], ConfirmConversions:=False, ReadOnly:=
    False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:=
    "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="",
    Format:=wdOpenFormatAuto, Encoding:=1252
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "{"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
    .Text = "}"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ",^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ",^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "°"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ActiveDocument.SaveAs FileName:=[B]"1.3.ddl.txt"[/B], FileFormat:=wdFormatText,
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False,
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=
    False, Encoding:=1252, InsertLineBreaks:=True, AllowSubstitutions:=False,
    LineEnding:=wdCRLF
    ActiveDocument.Close
    
    
    End Sub
    Danke schon mal... ?(
     
  2. 9. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    du kannst ja anstatt den Namen Variable verwenden und diese dann über ein unserForm
    eingeben, wenn du es selbst nicht
     
  3. 9. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    Bahnhof ?(
    Bitte erläuter mal.... danke :tongue:
     
  4. 9. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    lad mal deine Datei auf X UP hoch, ich versuch mal ob ichs morgen oder übermorgen hinbekomm
     
  5. 10. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    Jo hört sich gut an: Download offline!/
    Danke erstmal... :]
     
  6. 10. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    Kannst du nicht oben die Versionsnummer angeben und unten immer als Variable aufrufen?

    Code:
    Dim VersionsNr
    VersionsNr = 1.3 'ein Beispiel und dann unten 
    [...]
    ChangeFileOpenDirectory "D:\Anlagen\ABC\uebersicht\l1\H249\[b]" & VersionsNr & "[/b]\"
    Documents.Open FileName:= [b]VersionsNr & ".ddl"[/b] , ConfirmConversions:=False, ReadOnly:=
    False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:=
    "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="",
    Format:=wdOpenFormatAuto, Encoding:=1252
    
    und unten genau so.

    Code:
    "1.3.ddl" => =VersionsNr & ".ddl"
    "D:\Anlagen\ABC\uebersicht\l1\H300\1.3\" => "D:\Anlagen\ABC\uebersicht\l1\H300\" & VersionsNr & "\"
    "1.3.ddl.txt" => =VersionsNr & ".ddl.txt"
    

    Hoffe das System ist zu erkennen.
    Mfg Nash
     
  7. 10. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    um ein User form musst du auf einfügen gehen. Außerdem musst du in dein Marco
    Load Userform(Name des Userform) und
    Userform.show einfügen damit es dein starten angezeigt wird.
    Im Userform selbst must du ein paar Textboxen einfügen. Mithilfe eines OK Buttos musst du dann
    würde ich dann dein restliches Marko ausfürgen. Du must mit VersionsNr=text1.text die entsprechene Zuweisung von der TextBox zur Variablen machen.
     
  8. 11. Oktober 2006
    AW: Suchen und Ersetzen von Werten per Makro

    Yoh Super ihr beiden, so werde ich es lösen.
    Hört sich auch nicht ganz so schwer an.
    Werde es ausprobieren und dann hoffentlich zeitnah hier die Lösung posten !!!
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.