Avatar billede cassa Nybegynder
20. juli 2005 - 16:12 Der er 9 kommentarer

Knap til "Indsæt fil"

Hej Eksperter!

Jeg er desværre VBA-præ-novice og skal bruge en knap i et excelark, som kan tilføje en fil fra et givent bibliotek. Simpelt siger I nok, men jeg er helt blank :) Der er point og skulderklap til første hjælpende hånd!

(Knappen skal i praksis blot udføre det samme som "Indsæt > objekt > opret fra fil > vis som ikon > gennemse ")
Avatar billede brynil Nybegynder
20. juli 2005 - 16:50 #1
Jeg tror det nemmeste vil være at starte makro optageren og udføre handlingerne.

Derefter kan du oprette en knap og kopiere koden dertil.
Avatar billede brynil Nybegynder
20. juli 2005 - 16:54 #2
Hvis du ikke kender til fremgangsmåden, så bare sig til!
Avatar billede cassa Nybegynder
20. juli 2005 - 19:21 #3
Det forsøgte jeg - men jeg vil gerne stoppe optagelsen når man kommer til "gennemse" og det kan man ikke da det aktive vindue spærrer for at trykke på "stop makro".. Lusket! :o)
Avatar billede brynil Nybegynder
20. juli 2005 - 20:14 #4
Ja, ydermere vil du også få problemer med individuelt at vælge et ikon. Så det er ikke en brugbar metode når du har brug for at vælge både fil og/eller ikon.

Beklager!

Det er dog muligt at indtaste en sti og/eller filnavn samt icon, men det forudsætter at du på forhånd kender disse og kan indtaste dem når du bliver spurgt (v.hj.af inputbokse). Men det er der ingen gevist ved, tværtimod.
Avatar billede brynil Nybegynder
20. juli 2005 - 20:27 #5
Det kan du kigge på, hvis du er interesseret.

Nedenstående forudsætter at den fil du vil indsætte ligger i C:. Det samme gør sig gældende for dit ikon (*.ico). Stinavnene kan du ændre og gøre mere eller mindre præcise, men det du koder herunder og det du indtaster når du bliver spurgt skal tilsammen give en korrekt sti.

Private Sub CommandButton1_Click()
 
  Dim sFil, sIkon As String
  sFil = InputBox("Skriv filnavn: ", "Vælg objekt")
  sIkon = InputBox("Skriv ikonnavn: ", "Vælg ikon")
   
      ActiveSheet.OLEObjects.Add(Filename:="C:\" & sFil, Link:= _
          False, DisplayAsIcon:=True, IconFileName:= _
          "C:\" & sIkon, IconIndex:=0, IconLabel:= _
          "C:\" & sFil).Select

End Sub

Jeg ved ikke om du kan anvende andet end .ico filer.
Avatar billede brynil Nybegynder
20. juli 2005 - 20:54 #6
Hvis den fil du henter har 'indbygget' et ikon, kan du gøre sådan:

Private Sub CommandButton1_Click()
 
  Dim sFil As String
  sFil = InputBox("Skriv filnavn: ", "Vælg objekt")
   
      ActiveSheet.OLEObjects.Add(Filename:="C:\" & sFil, Link:= _
          False, DisplayAsIcon:=True, IconFileName:= _
          "C:\" & sFil, IconIndex:=0, IconLabel:= sFil).Select

End Sub
Avatar billede cassa Nybegynder
21. juli 2005 - 20:40 #7
Hej Brynil. Mange tak for indsatsen! Jeg mangler desværre bare stadig muligheden for at "gennemse" drevet/bibliotekerne. I din kode kan jeg ikke bladre gennem forskellige biblioteker a la den almindelige Windows "Gennemse". Har du en finte til dét gemt i ærmet? :o)

/Thomas
Avatar billede brynil Nybegynder
21. juli 2005 - 20:45 #8
Nej, ikke umiddelbart.

Mig bekendt mangler VBA de .dll'er der giver dig den mulighed (findes i VB6, bl.a.).
Avatar billede tobler Nybegynder
23. august 2005 - 17:15 #9
Måske kan dette hjælpe dig lidt videre:

Sub RetrieveFileName()
Dim sFileName As String

'Show the open dialog and pass the selected _
file name to the String variable "sFileName"
sFileName = Application.GetOpenFilename
        'They have cancelled.
        If sFileName = "False" Then Exit Sub

MsgBox sFileName
End Sub
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