Gå till innehåll

Batch find and replace Excel


Gå till lösning Löst av MH_,

Recommended Posts

Postad (redigerade)

I den här tråden på eforum... https://eforum.idg.se/topic/359970-efterlysning-batchredigering-sidfot-excel/

fick jag av Monshi en lösning som har hjälpt mig många gånger.

Nu skulle jag vilja ha en variant som söker i kalkylbladet och jag vill då ha denna sök & ersätt enbart där. Alltså inte sök i både blad och sidfot/sidhuvud samtidigt.

Jag klistrar in hela koden från den fil jag brukar använda:

Option Explicit
Dim globalSearchFor As String
Dim globalReplacewith As String


Sub SearchReplace(searchFor As String, replaceWith As String, ws As Worksheet)
    With ws.PageSetup
        .LeftHeader = replace(.LeftHeader, searchFor, replaceWith)
        .CenterHeader = replace(.CenterHeader, searchFor, replaceWith)
        .RightHeader = replace(.RightHeader, searchFor, replaceWith)
        .LeftFooter = replace(.LeftFooter, searchFor, replaceWith)
        .CenterFooter = replace(.CenterFooter, searchFor, replaceWith)
        .RightFooter = replace(.RightFooter, searchFor, replaceWith)
    End With
End Sub


Sub LoopWorkbook(wb As Workbook)
    Dim ws As Worksheet
    For Each ws In wb.Worksheets
        SearchReplace globalSearchFor, globalReplacewith, ws
    Next ws
End Sub

Function GetFolder() As String
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select a Folder"
        .AllowMultiSelect = False
        .InitialFileName = Application.DefaultFilePath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
NextCode:
    GetFolder = sItem
    Set fldr = Nothing
End Function

Sub StartSub()
    Dim value
    value = InputBox("Sök efter")
    If value = "" Then Exit Sub
    globalSearchFor = value
    value = InputBox("Ersätt med")
    If value = "" Then Exit Sub
    globalReplacewith = value
    Dim folder As String
    folder = GetFolder
    
    If folder = "" Then Exit Sub
    Application.ScreenUpdating = False
    LoopAllSubFolders folder
    Application.ScreenUpdating = True
    
End Sub

Sub LoopAllSubFolders(ByVal folderPath As String)
    Dim filename As String
    Dim fullFilePath As String
    Dim numFolders As Long
    Dim folders() As String
    Dim i As Long
    
    If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
    filename = Dir(folderPath & "*.*", vbDirectory)
    
    While Len(filename) <> 0
        If Left(filename, 1) <> "." Then
            fullFilePath = folderPath & filename
            If (GetAttr(fullFilePath) And vbDirectory) = vbDirectory Then
                ReDim Preserve folders(0 To numFolders) As String
                folders(numFolders) = fullFilePath
                numFolders = numFolders + 1
            Else
                If isExcelFile(folderPath & filename) Then
                    Debug.Print folderPath & filename
                    Dim wb As Workbook
                    On Error GoTo stepOver
                    Set wb = Workbooks.Open(folderPath & filename)
                    LoopWorkbook wb
                    wb.Save
                    wb.Close True
stepOver:
                End If
            End If
        End If
        filename = Dir()
    Wend
    For i = 0 To numFolders - 1
        LoopAllSubFolders folders(i)
    Next i
End Sub

Function isExcelFile(filename As String) As Boolean
  isExcelFile = (InStr(1, filename, ".xl") > 0)
End Function

 

Tillägg:

Efter lite sökning hittade jag ett program jag tidigare har använt för detta - IceTeaReplacer.

Det fungerar fortfarande men man måste manuellt döda instanser av Excel mellan sökning och ersättning. 

Redigerad av Mikael63
Mjukvara
Länk till kommentar
Dela på andra webbplatser

Då räcker det väl att ersätta/förenkla 

Sub SearchReplace(searchFor As String, replaceWith As String, ws As Worksheet)
    With ws.PageSetup
        .LeftHeader = replace(.LeftHeader, searchFor, replaceWith)
        .CenterHeader = replace(.CenterHeader, searchFor, replaceWith)
        .RightHeader = replace(.RightHeader, searchFor, replaceWith)
        .LeftFooter = replace(.LeftFooter, searchFor, replaceWith)
        .CenterFooter = replace(.CenterFooter, searchFor, replaceWith)
        .RightFooter = replace(.RightFooter, searchFor, replaceWith)
    End With
End Sub

 

Med

Sub SearchReplace(searchFor As String, replaceWith As String, ws As Worksheet)
ws.Cells.Replace What:=searchFor, Replacement:=replaceWith, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

Där du väljer vilka argument som är nödvändiga (searchOrder borde du t.ex kunna skippa)

 

Sen kanske men inte behöver LoopWorkbook egentligen. Men har du en kod som funkar. Dont fix it

 

  • Thanks 1
Länk till kommentar
Dela på andra webbplatser

Postad (redigerade)

Tackar, fungerar ju perfekt detta!

Skulle egentligen vilja komplettera mitt tillägg i tråden på eforum. Monshi skapade två olika varianter och båda fungerar bra var för sig. Den ena, den som endast ersätter datum, behöver ligga på en viss plats i filstrukturen för att fungera. Den andra, den ovan, kan ligga var som helst då man pekar på angiven startkatalog.

 

Redigerad av Mikael63
Länk till kommentar
Dela på andra webbplatser

  • 3 månader senare...
Postad (redigerade)

Nu har jag en fundering till..

Om det skulle gå att läsa av rader i en tabbseparerad textfil som alternativ till att mata in värde i dialoger?

Alltså att sökningen sker lika tidigare i alla filer men att man kan söka och ersätta flera ord samtidigt.

En annan fundering är om man, oberoende av ovanstående, kunde maska vilka filer som ska genomsökas och ändras?

Typ alla ABCD*.xlsx

Bifogar hela filen.

FindAndReplace_valfritt.xlsm

Redigerad av Mikael63
Länk till kommentar
Dela på andra webbplatser

i  "startSub" kan du istället för "InputBox:arna" öppna din textfil som en arbetsbok och hämta sök/ersätt paren från A/B kolumnen. sen loppa rad för rad tills du stöter på en tom cell (do...loop i exemplet)

'...
'befintlig kod för att hämta sökväg
Dim folder As String
folder = GetFolder
If folder = "" Then Exit Sub

'ny kod för att hämta sök/ersätt från textfil

Dim SökTextBok As Workbook
Dim rMinStartCell As Range
Set SökTextBok = Workbooks.Open("C:\temp\sökpar.txt")
Set rMinStartCell = SökTextBok.Sheets(1).Range("A1")

' Loopa igenom raderna i textfilen
Do Until rMinStartCell.Value = ""
    globalSearchFor = rMinStartCell.Value
    'Och "ersätt med" från  B-kolumnen
    globalReplacewith = rMinStartCell.Offset(0, 1).Value
    'kör koden du redan har för att kolla om det finns tomma värden
    If globalSearchFor = "" Then Exit Sub
    If globalReplacewith = "" Then Exit Sub
    
    ' anropa LoopAllSubFolders
    Application.ScreenUpdating = False
    	LoopAllSubFolders folder
    Application.ScreenUpdating = True

	'sist i loopen flytta du ner "rMinStartCell" en rad
    Set rMinStartCell = rMinStartCell.Offset(1, 0)
'och loopa
Loop

'och stäng textfilen när loopen är färdig
SökTextBok.Close

Se bara till att ändra ordningen så att getfolder osv ligger före i koden.

 

Det här exemplet är förmodligen väldigt långsamt.  Du kör ett par med sök/ersätt , loppar igenom alla filar osv. Sen tar du nästa par och kör sök/ersätt. 

Det borde vara mycket snabbare att vända på det - sök upp en fil, kör samtliga sök/ersätt. Sök upp nästa fil osv.  Men då måste du ändra din fungerande struktur, och sånt suger.

 

Här har du text om hur man läser textfiler med VBA

https://www.automateexcel.com/vba/read-import-text-file/

https://www.automateexcel.com/vba/read-import-text-file/

  • Thanks 1
Länk till kommentar
Dela på andra webbplatser

42 minuter sedan, MH_ sade:

Det borde vara mycket snabbare att vända på det - sök upp en fil, kör samtliga sök/ersätt. Sök upp nästa fil osv. 

Ja, inte bara för hastigheten utan även för resultatet!

Äh, jag var mest nyfiken, jag har hittat en mjukvara som gör detta jobb men tänkte om det skull fungera utan det.

Länk till kommentar
Dela på andra webbplatser

Utan att testa. Dra ner startsubben till:

Sub StartSub()
    Dim folder As String
    folder = GetFolder
    If folder = "" Then Exit Sub
    Application.ScreenUpdating = False
        LoopAllSubFolders folder
    Application.ScreenUpdating = True
End Sub


så kan du lägga en "yttre loop" så att du kör alla sök/ersättpar innan du går till nästa bok

Sub LoopWorkbook(wb As Workbook)
Dim SökTextBok As Workbook
Dim rMinStartCell As Range
Set SökTextBok = Workbooks.Open("C:\temp\sökpar.txt")
Set rMinStartCell = SökTextBok.Sheets(1).Range("A1")
Dim ws As Worksheet

Do Until rMinStartCell.Value = ""
    globalSearchFor = rMinStartCell.Value
    globalReplacewith = rMinStartCell.Offset(0, 1).Value
    If globalReplacewith = "" Then Exit Sub
        For Each ws In wb.Worksheets
            SearchReplace globalSearchFor, globalReplacewith, ws
        Next ws
    Set rMinStartCell = rMinStartCell.Offset(1, 0)
Loop
SökTextBok.Close

End Sub

 

Där du kanske vill deklarera "SökTextBok" globalt och läsa in /stänga från StartSub

Medan globalSearchFor och globalReplacewith kan göras lokala.

 

Dvs om du har tråkigt. 

  • Like 1
Länk till kommentar
Dela på andra webbplatser

Postad (redigerade)

Skippar nog detta men har i stället ett annat önskemål som kanske är enklare att lösa.

Jag vill kunna välja, maska, vilka filnamn som ska ingå i sökningen.

Ex. ABC*.XLS*

Ja eller bara ABC* då det ändå endast är Excelfiler som "fungerar"

Tillägg: Behöver inte vara en inputbox utan det räcker om filtret görs i koden

Redigerad av Mikael63
Länk till kommentar
Dela på andra webbplatser

Nej. vid närmare eftertanke så används samma DIR för att söka efter undermappar. Och då skiter sig den delen.

 

Du redan en separat funktion (isExcelFile) som kollar om de filer (inte mappar) som hittas är excelfiler.  Du får väl modifiera den istället

Börja med att ta bort sökvägen ur anropet så att

If isExcelFile(folderPath & filename) Then
blir:

If isExcelFile(filename) Then

Sen får du modifiera funktionen

Function isExcelFile(filename As String) As Boolean
  isExcelFile = (InStr(1, filename, ".xl") > 0)
End Function

 

till

Function isExcelFile(filename As String) As Boolean
  isExcelFile = ((InStr(1, filename, ".xls") > 0) AND (InStr(1, filename, "ABC") = 1))
End Function

 

raden 

isExcelFile = (InStr(1, filename, ".xl") > 0)

kollar redan om det är en excelfil. 

Men den klarar inte ABC*.XLS*  eftersom det bara är en strängsökning. Då får du dela upp det på två delar med AND, typ 

Dvs .XLS någonstans och  ABC på första positionen

  • Thanks 1
Länk till kommentar
Dela på andra webbplatser

  • 1 månad senare...

En annan fundering..

Går det att få till det så att detta

image.png.5e90cc92c32eac1979209b095e3e1965.png

blir

image.png.107b0ee8eef90cd66ec0d1a97c969f0e.png

Om jag i Sök (och ersätt) klistrar in text som innehåller tabb eller tecken för tabb eller annat?
Typ, Sök efter

Äpple{TAB}{TAB}5x10{TAB}{TAB}ABC123

Jag kan alltså inte söka ABC123 enbart då det då kommer att ersättas på alla ställen.

(Det här programmet jag skaffat är bra på sitt sätt men klarar vad jag vet inte detta.)
 

Klistrar in hela den kod jag har/kör med

 

Option Explicit
Dim globalSearchFor As String
Dim globalReplacewith As String


Sub SearchReplace(searchFor As String, replaceWith As String, ws As Worksheet)
ws.Cells.Replace What:=searchFor, Replacement:=replaceWith, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub


Sub LoopWorkbook(wb As Workbook)
    Dim ws As Worksheet
    For Each ws In wb.Worksheets
        SearchReplace globalSearchFor, globalReplacewith, ws
    Next ws
End Sub

Function GetFolder() As String
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select a Folder"
        .AllowMultiSelect = False
        .InitialFileName = Application.DefaultFilePath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
NextCode:
    GetFolder = sItem
    Set fldr = Nothing
End Function

Sub StartSub()
    Dim value
    value = InputBox("Sök efter")
    If value = "" Then Exit Sub
    globalSearchFor = value
    value = InputBox("Ersätt med")
    If value = "" Then Exit Sub
    globalReplacewith = value
    Dim folder As String
    folder = GetFolder
    
    If folder = "" Then Exit Sub
    Application.ScreenUpdating = False
    LoopAllSubFolders folder
    Application.ScreenUpdating = True
    
End Sub

Sub LoopAllSubFolders(ByVal folderPath As String)
    Dim filename As String
    Dim fullFilePath As String
    Dim numFolders As Long
    Dim folders() As String
    Dim i As Long
    
    If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
    filename = Dir(folderPath & "*.*", vbDirectory)
    
    While Len(filename) <> 0
        If Left(filename, 1) <> "." Then
            fullFilePath = folderPath & filename
            If (GetAttr(fullFilePath) And vbDirectory) = vbDirectory Then
                ReDim Preserve folders(0 To numFolders) As String
                folders(numFolders) = fullFilePath
                numFolders = numFolders + 1
            Else
                If isExcelFile(folderPath & filename) Then
                    Debug.Print folderPath & filename
                    Dim wb As Workbook
                    On Error GoTo stepOver
                    Set wb = Workbooks.Open(folderPath & filename)
                    LoopWorkbook wb
                    wb.Save
                    wb.Close True
stepOver:
                End If
            End If
        End If
        filename = Dir()
    Wend
    For i = 0 To numFolders - 1
        LoopAllSubFolders folders(i)
    Next i
End Sub

Function isExcelFile(filename As String) As Boolean
  isExcelFile = (InStr(1, filename, ".xl") > 0)
End Function

 

Länk till kommentar
Dela på andra webbplatser

Spontant, nej. inte med upplägget du har. 

Din kod öppnar (väl?) filen som en excelfil och kör sök/ersätt. och då tar den en cell i taget. 

Om du vill söka avgränsaren (tab) så tror jag att du måste behandla det som en textsträng och aldrig öppna filen i excel.

kanske något i den här stilen (inte testat)

https://stackoverflow.com/questions/37291553/excel-macro-to-find-and-replace-multiple-strings-in-any-text-file

 

Om du öppnar det som en excelfil så kanske du kan hitta varje cell med [5x10] och kolla innehållet 2 celler till höger och vänster. men det blir ju ett helt annat upplägg.

Länk till kommentar
Dela på andra webbplatser

8 timmar sedan, MH_ sade:

Spontant, nej. inte med upplägget du har. 

Okej, en chansning...

8 timmar sedan, MH_ sade:

Din kod öppnar (väl?) filen som en excelfil och kör sök/ersätt

Ja (fast det är inte min, utan din och Monshis)

 

8 timmar sedan, MH_ sade:

Om du vill söka avgränsaren (tab)

Behöver inte vara TAB utan det som så att säga finns mellan två celler bredvid varandra.

 

8 timmar sedan, MH_ sade:

Om du öppnar det som en excelfil så kanske du kan hitta varje cell med [5x10] och kolla innehållet 2 celler till höger och vänster.

Ja det kommer alltid vara samma förhållande, kolumnerna ser likadan ut i alla böcker, däremot är inte radnumret likadant från gång till gång.

***

Just nu vet jag bara att det kan komma att köras på 14 filer (och kanske aldrig fler gånger sedan) och det är inte allt för blodigt jobb (men tråkigt) att öppna alla 14 i en smäll, klistra in nya värden, spara, stänga.

 

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Nya problem...

I sidfoten har jag i vissa böcker

&[Flik]

Det skulle jag nu vilja byta till något annat men att ange just &[Flik] som text att söka "tar" inte.

Kan något i koden råda bot på det? Eller ska jag skriva på annat sätt? Att ange den text som fliken/bladet har fungerar inte.

Länk till kommentar
Dela på andra webbplatser

Jag TROR inte att excels sök/ersätt någonsin går in i header/footer och söker. Kan du hitta en vanlig text i en sidfot med sökfunktionen? Det kan inte jag.

 

Det är möjligt att du måste öppna varje Footer och kolla vad som står, typ så här:

https://techcommunity.microsoft.com/t5/excel/macro-to-update-footers-on-multiple-worksheets/m-p/74507

problemet är att det svenska "&[Flik]" ser ut som "&A" för VBA. i alla fall om man kollar med:

MsgBox Blad.PageSetup.CenterFooter

då kan du testa någonting i stil med:

Sub Makro1()
Dim Blad As Worksheet
For Each Blad In Worksheets
    If Blad.PageSetup.CenterFooter = "&A" Then
        Blad.PageSetup.CenterFooter = "property of M63"
    End If
Next Blad
End Sub

för att söka igenom centrum-foten i samtliga blad i boken (och &[Flik] måste stå ensam i sin del av sidfoten)

  • Thanks 1
Länk till kommentar
Dela på andra webbplatser

38 minuter sedan, MH_ sade:

Jag TROR inte att excels sök/ersätt någonsin går in i header/footer och söker. Kan du hitta en vanlig text i en sidfot med sökfunktionen? Det kan inte jag.

Ja visst funkar det! Jag har (fått) olika makron för det, ett söker enbart datum, en söker valfritt (koden nedan) och sen har jag ett som söker överallt utom sidfot och ett som söker överallt.

 

43 minuter sedan, MH_ sade:

det svenska "&[Flik]" ser ut som "&A" för VBA

TACK! Det löste mitt problem!

 

Option Explicit
Dim globalSearchFor As String
Dim globalReplacewith As String


Sub SearchReplace(searchFor As String, replaceWith As String, ws As Worksheet)
    With ws.PageSetup
        .LeftHeader = replace(.LeftHeader, searchFor, replaceWith)
        .CenterHeader = replace(.CenterHeader, searchFor, replaceWith)
        .RightHeader = replace(.RightHeader, searchFor, replaceWith)
        .LeftFooter = replace(.LeftFooter, searchFor, replaceWith)
        .CenterFooter = replace(.CenterFooter, searchFor, replaceWith)
        .RightFooter = replace(.RightFooter, searchFor, replaceWith)
    End With
End Sub


Sub LoopWorkbook(wb As Workbook)
    Dim ws As Worksheet
    For Each ws In wb.Worksheets
        SearchReplace globalSearchFor, globalReplacewith, ws
    Next ws
End Sub

Function GetFolder() As String
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select a Folder"
        .AllowMultiSelect = False
        .InitialFileName = Application.DefaultFilePath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
NextCode:
    GetFolder = sItem
    Set fldr = Nothing
End Function

Sub StartSub()
    Dim value
    value = InputBox("Sök efter")
    If value = "" Then Exit Sub
    globalSearchFor = value
    value = InputBox("Ersätt med")
    If value = "" Then Exit Sub
    globalReplacewith = value
    Dim folder As String
    folder = GetFolder
    
    If folder = "" Then Exit Sub
    Application.ScreenUpdating = False
    LoopAllSubFolders folder
    Application.ScreenUpdating = True
    
End Sub

Sub LoopAllSubFolders(ByVal folderPath As String)
    Dim filename As String
    Dim fullFilePath As String
    Dim numFolders As Long
    Dim folders() As String
    Dim i As Long
    
    If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
    filename = Dir(folderPath & "*.*", vbDirectory)
    
    While Len(filename) <> 0
        If Left(filename, 1) <> "." Then
            fullFilePath = folderPath & filename
            If (GetAttr(fullFilePath) And vbDirectory) = vbDirectory Then
                ReDim Preserve folders(0 To numFolders) As String
                folders(numFolders) = fullFilePath
                numFolders = numFolders + 1
            Else
                If isExcelFile(folderPath & filename) Then
                    Debug.Print folderPath & filename
                    Dim wb As Workbook
                    On Error GoTo stepOver
                    Set wb = Workbooks.Open(folderPath & filename)
                    LoopWorkbook wb
                    wb.Save
                    wb.Close True
stepOver:
                End If
            End If
        End If
        filename = Dir()
    Wend
    For i = 0 To numFolders - 1
        LoopAllSubFolders folders(i)
    Next i
End Sub

Function isExcelFile(filename As String) As Boolean
  isExcelFile = (InStr(1, filename, ".xl") > 0)
End Function

 

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Dags igen! 🤓

Nu har jag fixat en "snurra" i AutoMate som läser in alla värden, startar ovanstående Excelmakro (jag har fyra olika med nästan samma innehåll) och sedan behöver man manuellt invänta tills man ser att Excel tuggat alla filer för att därefter manuellt "okeja" för att nästa värden ska användas i nästa körning.

Om jag vet hur lång tid en sådan sökning tar kan jag pausa min loop så länge plus lite marginal men då kan det å ena sidan ta onödigt lång tid, totalt, eller så kan det "skita sig" om det visar att det tar längre tid än uppskattat.

Skulle man kunna få upp en dialog när alla filer har loppats klart? Då kanske jag kan "wait for window" i min loop där jag okejar den dialogen automatiskt i stället?

Antar att det är i denna sektion man behöver lägga till det?

Sub LoopAllSubFolders(ByVal folderPath As String)
    Dim filename As String
    Dim fullFilePath As String
    Dim numFolders As Long
    Dim folders() As String
    Dim i As Long
    
    If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
    filename = Dir(folderPath & "*.*", vbDirectory)
    
    While Len(filename) <> 0
        If Left(filename, 1) <> "." Then
            fullFilePath = folderPath & filename
            If (GetAttr(fullFilePath) And vbDirectory) = vbDirectory Then
                ReDim Preserve folders(0 To numFolders) As String
                folders(numFolders) = fullFilePath
                numFolders = numFolders + 1
            Else
                If isExcelFile(folderPath & filename) Then
                    Debug.Print folderPath & filename
                    Dim wb As Workbook
                    On Error GoTo stepOver
                    Set wb = Workbooks.Open(folderPath & filename)
                    LoopWorkbook wb
                    wb.Save
                    wb.Close True
stepOver:
                End If
            End If
        End If
        filename = Dir()
    Wend
    For i = 0 To numFolders - 1
        LoopAllSubFolders folders(i)
    Next i
End Sub

 

Länk till kommentar
Dela på andra webbplatser

Tack.

Nej inte där, då får jag dialog efter varje bearbetad fil.

Ska testa på andra delar i koden men först behöver jag kolla varför den ena av de fyra likartade makrofilerna inte jobbar som den ska, när den gjorde det igår...   (SBT)

 

Redigerad av Mikael63
SBT
Länk till kommentar
Dela på andra webbplatser

Hittat var det ska läggas in, tror jag, längst ner i denna sub

Sub StartSub()
    Dim value
    value = InputBox("Sök efter")
    If value = "" Then Exit Sub
    globalSearchFor = value
    value = InputBox("Ersätt med")
    If value = "" Then Exit Sub
    globalReplacewith = value
    Dim folder As String
    folder = GetFolder
    
    If folder = "" Then Exit Sub
    Application.ScreenUpdating = False
    LoopAllSubFolders folder
    Application.ScreenUpdating = True
    MsgBox "Fääääääärdig"
    
End Sub

Nu återstår att se om jag kan få Automate att detektera denna.
Tillägg: Johoddå! Funkar bra.

image.thumb.png.27410ae43823592db081b1e9aa541be1.png

Redigerad av Mikael63
Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...