Avatar billede morton Nybegynder
16. september 2001 - 10:36 Der er 7 kommentarer og
1 løsning

referancer til makroer i excel

Hej Eksperter,

Jeg står har en masse ecxel-filer i en rimelig omfattende bibliotekstruktur. Problemet består i at selve startbiblioteket i denne struktur skal renames. Derved vil jeg mene at alle mine makroer som har referancer som har det gamle startbiblioteksnavn ikke vil fungere mere. Hvad gør man i sådan et tilfælde??

Med venlig hilsen

Morton
16. september 2001 - 12:19 #1
Rigtig god arbedjslyst :-)
Avatar billede johs_j Novice
16. september 2001 - 13:14 #2
Alle referencer / stier skal ændres til den nye start_BIB.
Måske skulle du overveje at ændre stien til:

ThisWorkBook.Path & \"\\\" & Filnavn

Så behøver du ikke at skulle ændre det i fremtiden. Det kan nemlig også være et problem hvis du flytter en excel-fil.
Avatar billede morton Nybegynder
17. september 2001 - 11:16 #3
Der må da være en måde jeg kan gøre det lettere på i stedet for at åbne hver eneste dokument og lave referencen om i makroerne...
Avatar billede janvogt Praktikant
18. september 2001 - 08:54 #4
Det er der næppe.

Nu kender jeg ikke din specifikke problemstilling, men behøver du at angive hele stien i dine referencer?
Jeg plejer at undlade dette. Godt nok kan makroen så ikke kaldes ud over det aktive dokument, men det er også ofte tilstrækkeligt.

Ihvertfald undgår du så, at komme i ovennævnte problemstilling.
Avatar billede bak Forsker
19. september 2001 - 19:33 #5
Jeg lytter med og smider 60 point oveni.
Firmaet har lige ændret bibliotekstruktur totalt.
Avatar billede bak Forsker
23. september 2001 - 03:20 #6
Morton> her er lidt rå kode til dig.
Det kan sikkert gøres smartere men det virkede for mig.
Sti er det bibliotek du har dine ark med makroer i
(den tager også underbibs.)
ChangeFrom er den tekst der skal erstattes og Change TO er det den skal erstattes med.
Lav nu en test først og fjern så msgbox


Sub findstreng_I_VBA_Kode()
Dim VBComp As Object
Dim StartLine As Long
Dim Msg As String
Dim Sti, ChangeFrom, ChangeTO, TmpLine, NewLine As String
Dim HasFoundIt, LineFound As Boolean

Set fs = Application.FileSearch
\'************************************
\'BRUGERVARIABLE
Sti = \"C:\\dokumenter\"
ChangeFrom = \"c:\\windows\"
ChangeTO = \"c:\\temp\"
\'************************************
Application.Calculation = xlManual
Application.ScreenUpdating = False
With fs
.NewSearch
.LookIn = Sti
.SearchSubFolders = True
.FileName = \"*.xls\"
End With
If fs.Execute(SortBy:=msoSortByFileName, _
  SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To fs.FoundFiles.Count
  fil = fs.FoundFiles(i)
  Workbooks.Open fil, 0
  For Each VBComp In ActiveWorkbook.VBProject.VBComponents
  Set VBCodeMod = ActiveWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule
  With VBCodeMod
    StartLine = .CountOfDeclarationLines + 1
    HasFoundIt = .Find(ChangeFrom, StartLine, 1, .countoflines, 1)
    If HasFoundIt Then
    LineFound = True
      Do Until LineFound = False
        TmpLine = .Lines(StartLine, 1)
        y = InStr(1, TmpLine, ChangeFrom, vbTextCompare)
        NewLine = Mid(TmpLine, 1, y - 1) & ChangeTO & Mid(TmpLine, y + Len(ChangeFrom))
        .replaceline StartLine, NewLine
        ActiveWorkbook.Save
        MsgBox (.Lines(StartLine, 1) & \"  linie :\" & StartLine)
        StartLine = StartLine + 1
        LineFound = .Find(ChangeFrom, StartLine, 1, 0, 1)
      Loop
    End If
  End With
  Next VBComp
  ActiveWorkbook.Close savechanges = False
  Next i
End If
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub

Avatar billede bak Forsker
23. september 2001 - 12:46 #7
Lidt mere forklaring:
Koden finder alle *.xls filer i \"STI\" og underbiblioteker, åbner dem en efter en, søger alle moduler igennem efter strengen i ChangeFrom og erstatter kodelinien med en ny linie, hvor ChangeFrom er ændret til ChangeTO-strengen. Gemmen filen, hvis der er foretaget en udskiftning.
Avatar billede morton Nybegynder
24. september 2001 - 16:20 #8
Tak for det bak - det lader til at fungere!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester