Avatar billede dkpret Nybegynder
24. juni 2010 - 14:02 Der er 11 kommentarer og
1 løsning

Undgå "Advarsel" om at fil indeholder makroer.

Excel 2003 + Vba

Jeg kalder en Workbook(?) fra Workbbok(1) med følgende kode
 
    Flt = "Excel mappe(*.xls),*.xls,"
    Flt = Flt & "Print-filer (*.prn),*.prn,"
    Flt = Flt & "Tekst-filer(*.txt),*.txt"
    Dim fil As String
    Titel = "Find and select the Month Report"
    Filnavn = Application.GetOpenFilename(Flt, 1, Titel)
    If Filnavn = False Then Exit Sub
    Workbooks.Open Filnavn

Det fungerer fint, men da Workbook(?) indeholder makroer, vil brugeren skulle svare Ja/Nej til at fortsætte.

Kan jeg undgå den dialog, således Workbook(?) åbnes uden afbrydelse og dermed uden makroer ?
Avatar billede MathiasDue Nybegynder
24. juni 2010 - 14:15 #1
Prøv at gå i Funktioner - Makro - sikkerhed - sæt på fanen sikkerhedsniveauet til Lav, og gå over på fanen udgivere der er tillid til og sæt flueben i giv adgang til visual basic-projekt.
Avatar billede newbieatphp Nybegynder
24. juni 2010 - 14:19 #2
#1 Det er i tilfælde af, at man vil åbne med makroer? - spørger spørg til uden makroer.

Desuden skal man lige være opmærksom på, at når man sætter niveauet ned, så skal man være en del mere sikker på hvilke excel-filer man åbner - at der ikke er nogle ondartet. :)
Avatar billede dkpret Nybegynder
28. juni 2010 - 15:55 #3
Tak for svarene.

Det er korrekt at jeg ønsker at åbne arket uden makroer.
(åbne en bestemt side, kopiere data og så arbejde videre med disse andet sted)

Man kan vel sige det er en detalje med om brugeren pludselig skal svare Ja eller nej til at åbne et regneark med eller uden makro. Men kan jeg undgå det vil det være at foretrække. Brugeren skal iøvrigt intet foretage i den pågældende Workbook(?) der åbnes. Alt foregår pr kode.

Problemet er - hvis brugeren pludselig siger Ja til at åbne den pågældende Workbbok(?) med makroer - ja så starter diverse dialogbokse op og det vil virke forvirrende på helheden.
Avatar billede newbieatphp Nybegynder
28. juni 2010 - 16:09 #4
Var det en mulighed, at du henter den data du skal bruge, også kopiere du arket til et nyt tomt excel dokument?
Det kan nemt lade sig gøre via VB kode i det ark som henter dataen.
Avatar billede dkpret Nybegynder
30. juni 2010 - 23:59 #5
Tak for input.

Jeg ved ikke helt om jeg forstår hvad du mener ?

Mit problem (eller ønske) er at jeg arbejder i workbook(1).
Ved hjælp af VBA i workbbok(1), ønsker jeg at hente nogle data fra en bestemt worksheet i ovennævnte Workbook(?). Selve funktionaliteten i denne manøvre har jeg ikke problemer med at få til at fungere.

Men jeg kunne ønske mig at den automatiserede procedure ikke "bremses" op af et spørgsmål til brugeren om at Workbook(?) indeholder makroer. Kan det undgås således at Workbook'en åbnes "uden makroer" og dermed uden at brugeren skal vælge Ja/Nej.?

Beklager mine lange svar tider. Den java version vi har på arbejde er af ældre dato og fungerer ikke her på siden.  :-(
Avatar billede newbieatphp Nybegynder
01. juli 2010 - 01:47 #6
Okay, så misforstod jeg dig lidt :)

Jeg skal prøve at kigge lidt nærmere på det.
Avatar billede newbieatphp Nybegynder
01. juli 2010 - 02:48 #7
Hvis du blot skal hente data fra et andet ark, og det har en bestemt placering, så kan du fx. gøre følgende:

Hente data fra Workbook(?)s celle A1:
='C:\din\placering\af\filen\[filnavn.xls]Ark1'!$A$1


Ellers hvis du vil åben en fil uden den kommer med ja/nej til makro, så fik jeg dette til at virke:

Sub Aaben()
Dim NewWB As Object

sti = "C:\din\placering\af\filen\"
filnavn = "filnavn.xls"
Set NewWB = GetObject(sti & filnavn)

Windows(filnavn).Visible = True 'hvis det også skal være synligt
End Sub

Dog virker makroerne stadig i det nyåbne ark.

Har ikke lige fundet en løsning på at åbne uden makroer, men ellers kan man vel gøre det, at i dit Workbook(?) fik lavet en Workbook_Open(), hvor den tjekker om din WorkBook(1) er åben, og dermed skal ignorer alle makroer.
Avatar billede dkpret Nybegynder
02. juli 2010 - 07:56 #8
Hej newbieatphp

Synes dit 2 forslag ser interessant ud. Prøver om ikke jeg kan bruge det. Om makroerne virker i arket er ligegyldig, da jeg lukker arket med det samme jeg har fået de ønskede data kopieret.

Du hører nærmere. (om et par dage :-)
Avatar billede dkpret Nybegynder
11. juli 2010 - 18:53 #9
Hej newbieatphp

Jeg bruger dit løsningsforslag 2.
Tak for hjælpen.

Sender du et svar ?

Mvh
Avatar billede newbieatphp Nybegynder
12. juli 2010 - 12:09 #10
jeps ... super
Avatar billede dkpret Nybegynder
13. juli 2010 - 11:04 #11
Hej NewBieatphp

Synes lige jeg vil fortælle dig at jeg fandt en lidt simplere løsning på mit problem. Jeg indsætter linien
Application.EnableEvents = False
umiddelbar før jeg åbner filen med makroer. Jeg ønsker som sagt bare at åbne filen - kopiere nogle data - og lukke igen uden at brugeren skal svare på makroer ja/nej eller at diverse makroer startes op.


    Application.EnableEvents = False

    Workbooks.Open filnavn

Herefter vælger jeg mine data og kopierer dem til udklipsholder med

    Selection.Copy

og afslutter med

    Application.EnableEvents = True

Hvorefter jeg returnerer til den oprindelige Workbook(1).

Der bliver ikke spurgt om makroer og de makroer der er i Workbook(?) bliver ikke udført.

Mvh Dkpret
Avatar billede newbieatphp Nybegynder
13. juli 2010 - 11:28 #12
Okay, jeg havde faktisk selv kigget lidt på det, men som jeg forstod det, så var det kun i det aktive workbook, at den ville slå advarsler fra - og slet ikke en opstarsadvarsel omkring makroer.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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