20. januar 2014 - 18:03Der er
9 kommentarer og 1 løsning
Gennemløb af filer i et brugervalgt bibliotek VBA
Jeg er noget rusten i dette VBA - men det skal jo ikk holde en tilbage.
Jeg har en kode, som gennemløber samtlige filer - .jpg-filer - i et defineret bibliotek. Hvis koden finder filer, som er ioverenstemmelse med filnavne i en kolonne i Excel-filen, bliver billedet indsat på en defineret plads.
Det fungerer sådan set fint.
Men jeg har behov for at brugeren vælger biblioteket (stien), idet det ofte er svært at vide hvor disse jpg-filer findes. Dernæst siger erfaringen, at det er svært for brugeren, at regne det korrekte stinavn ud.
Er der nogen der har en god ide til hvordan det løses - evt. ved at bruge Excels/microsofts sædvanlige dialogbokse til at gøre det.
Alternativt at man/jeg laver en formular - som kan søge i bibliotekerne (brugervenligt) - (kan man det?)
Det ville være fantastisk, hvis det kunne lykkes. På forhånd tak.
Public Sub Test() Dim MinSti As String MinSti = Sti ' kald af function End Sub
Function Sti() As String 'Declare a variable as a FileDialog object.
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems Sti = vrtSelectedItem Next vrtSelectedItem Else End If End With Set fd = Nothing
Billederne ligger i samme bibliotek. Ellers må brugeren sørme flytte filerne sammen - andet er ikke rimeligt.
Kabbak: Det ser rigtig godt ud. Det er jo formentlig niveauer over min viden på VBA. Når jeg prøver at afvikle - kommer den med en kompileringsfejl. Dernæst - hvor skal jeg sætte min kode ind? mellem For... Next?
Sorry. Meget for hurtig med spørgsmål. MinSti skal jo bruges i samarbejde med min øvrige kode. Kan ikke nå det i aften - da jeg har et par timers arbejde. Men ser om jeg kan nå det i morgen tidlig. Spændende om jeg kan få det til at virke. Tusind tak - indtil videre.
Public Sub Test() Dim MinSti As String MinSti = Sti ' kald af function , bruges både til 1. og 2, MinSti = Left(MinSti, InStrRev(MinSti, "\") - 1) '2. udkommenter denne linje hvis du bruger 1. End Sub
Function Sti() As String 'Declare a variable as a FileDialog object.
Dim fd As FileDialog
' Set fd = Application.FileDialog(msoFileDialogFolderPicker)'1. Set fd = Application.FileDialog(msoFileDialogOpen) '2. her kan du se filerne og skal klikke på en for at få stien Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems Sti = vrtSelectedItem Next vrtSelectedItem Else End If End With Set fd = Nothing
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.