Just nu i M3-nätverket
Gå till innehåll

Kolla om mallfil är öppnad i Excel VBA


Tommy H

Rekommendera Poster

Hej!

Jag vill öppna en mallfil för att för över uppgifter till den och det går ju bra, men om jag kör samma makro igen, så kommer det att öppnad en ny fil och det vill jag undvika.

T.ex så öppnar jag Chk.xltx via kod, och då döps den om till Chk1 och nästa gång till Chk2 osv.

Hur kan jag kolla om det redan finns en Chk-fil öppen?

Jag vill kunna välja att spara filen manuellt i ett senare skede då den ska sparas på olika ställen beroende på tillhörighet

jag skulle ju vilja ha något i stil med ("chk" & " * ") i min kontroll men det köps inte.

/TH

Länk till kommentar
Dela på andra webbplatser

Kanske:

 

On Error resume next

Set wb = workbooks("chk...")

If WB is nothing then  <- ingen bok öppen

 

fast nu söker man på boknamn, inte mallens kanske. Testa, kanske går.

Länk till kommentar
Dela på andra webbplatser

Hmmm...

Jag får inte det att fungera.

Kodstycket ser i stort sett ut så här:

 

Set wb=Workbook(CHECKL1")

If wb Is Nothing Then

Set wbTarget = Workbooks.Open(Fullname)

End If

 

Detta fungerar så länge som det är just "CHECKL1" som är öppen.

Skulle jag ha haft en "CHECKL" öppen tidigare så kommer det ju att bli "CHECKL2" i stället och då fungerar det inte.

Det blir ju så då man öppnar en mall...

Jag vill ju i princip byta ut "ettan" i "CHECKL1" till en joker som gäller oavsett slutsiffra.

Det fungerar dock inte med *, ? mellanslag eller så...

Mallen heter för övrigt "CHECKL.xltx"

/TH

Länk till kommentar
Dela på andra webbplatser

Problemet kan vara vad boken verkligen heter. Öppnar man en mall och inte sparar blir jag nu osäker utan att testa. Kolla vad en ny-öppnad mall verkligen heter och anpassa koden.

Länk till kommentar
Dela på andra webbplatser

Mallen heter för övrigt "CHECKL.xltx"

 

Den heter inte så när den är öppnad, den heter väl "CHECKL.XLSX" efter öppning.

 

Du måste väl unna stänga ner en öppen mall med kod typ nedan innan du öppnar en ny:

"Application.DisplayAlerts = false

Windows(wb).Activate

ActiveWindow.close SaveChanges:=false

Application.DisplayAlerts = true"

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...