Excel: Aktivera makro i en viss fil automatiskt

Permalänk
Medlem

Excel: Aktivera makro i en viss fil automatiskt

Har inte hittat någon lösning på detta så prövar att fråga er som har koll:

Jag har gjort en excelfil åt min flickvän. Denna fil innehåller ett makro som automatiskt sorterar ett antal kolumner när man trycker på en knapp.
Eftersom min flickvän är dålig på datorer så vill jag att makrot i just denna excelfil ska aktiveras automatiskt utan att hon i fortsättningen får en säkerhetsvarning och behöver godkänna/aktivera makrot varje gång hon öppnar filen. Det ska bara funka liksom.

Går det att åstadkomma detta för bara en viss fil, utan att ändra de allmänna säkerhetsinställningarna för hela Windows? I så fall hur?

Permalänk
Medlem

Vilken version av Excel har du/ni?

Jag skulle nog skapa en xlam fil, det vill säga ett Excel add-in.
På så vis kommer macrot alltid att läsas in oavsett vilken fil som öppnas, sen kan du i macrot specificera vilken fil som macrot verkligen ska köras i.
Du kommer aldrig se några varningar när man har det som xlam fil.

Koden här under är en kod som jag använder och den kan lätt ändras till ditt syfte.
Skapa ett nytt excelark och öppna macroeditorn.
I ThisWorkbook, klistra in följande kod:

Public WithEvents App As Application Private Sub App_SheetActivate(ByVal Sh As Object) Dim wkbName As String Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook wkbName = Application.Workbooks(1).Name extension = Mid(wkbName, InStr(wkbName, ".")) shtName = Left(wkbName, InStr(wkbName, ".") - 1) If extension = ".CSV" And Range("A1").Value = "time,lat,lon,hMSL,velN,velE,velD,hAcc,vAcc,sAcc,gpsFix,numSV" Then Response = MsgBox(prompt:="Run Flysight GPS-Script?", Buttons:=vbYesNo) If Response = vbNo Then Exit Sub End If Else Exit Sub End If __________________________________________________________________________________________ End Sub Private Sub Workbook_Open() Set App = Application End Sub

Koden ovan kollar (som du ser) om filen som öppnats är CSV-fil och om den uppfyller vissa andra kriterier.
Variablen shtName är filnamnet minus ".xls"
Så här kan du lätt korrigera koden till " if shtName <> "Tjejens excelfil" Then Exit Sub "
Tror det kommer funka....
Sen där linjen är är där du kopierar in det makro som du skrivit sen tidigare.
Sen är det bara att spara filen som Excel add-in (5:e nere ifrån i Excel 2007 ;P )
Då borde filen sparas i C:\Users\ <<<USER>>> \AppData\Roaming\Microsoft\AddIns

Nu måste vi aktivera Add-in filen.
"knappen där uppe till vänster" -> Excel options
Add-Ins i vänsterfältet, Längst ner finns det en drop down meny. Manage [Excel add ins] Go
Här kanske ditt add-in finns med i listan, annars får du välja Browse och leta upp det.

Detta borde funka.
Beskrivningen ovan är för Excel 2007, det är möjligt att det skiljer lite till 2010 till det svårare och mer koplicerade, men det är så Microsoft jobbar.

Permalänk
Medlem

Agonotheta; Stort tack för ditt utförliga svar!
Ska pröva detta så snart jag hinner, uppskattar att du tog dig tid att förklara hur det funkar.
Jag kör Excel 2007, och det gör tjejen också såvitt jag vet, så det bör kunna funka.