Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketVBA Filedialog boks

 Besvar Besvar
Forfatter
mha Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 03.Jan.2019
Land: Danmark
Status: Offline
Point: 7
Direkte link til dette indlæg Emne: VBA Filedialog boks
    Sendt: 03.Jan.2019 kl. 09:31
Hej derude..

Først godt nytår...

Jeg sidder med en dialogboks, som forsøger at fortælle mig hvilken file (filnavn: Udtræk) jeg skal hente ind, men det giver bare ikke mening. Hvordan styre jeg det? Hvad er det for en property jeg skal kontrollere?



Jeg ser frem til at høre fra jer.

Mvh.
Martin
Til top



Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 709
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 10:24
Ok. Du skal kigge på følgende linje i koden:

    'Start position hentes fra subrutinen
    .InitialFileName = Start_position

Du kan se, at Start_position = "Z:\Martin\Projekt 2 - Maria\Udtræk". Her skal du have en backslash på til sidst, dvs. "Z:\Martin\Projekt 2 - Maria\Udtræk\"
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 09:46
Hej Martin.

Godt Nytår til dig også.

Hvis jeg skal være ærlig, har jeg ingen anelse om, hvad det er du laver.

Men for mig ser det ud til, du bare skal klikke på det filnavn oven over, du skal lave hente ind og så klikke på "Åben".

Hvis det ikke løser problemet er der til venstre for "Åben" en "Funktion", der kan klikkes på.
Måske kan det løse problemet.

Hvis intet af dette hjælper dig, ved jeg ikke hvad der skal gøres.

Mvh.
Ib
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 709
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 09:49
Kan du prøve at poste den del af VBA-koden, der indeholder noget med Application.GetOpenFilename?
Til top
mha Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 03.Jan.2019
Land: Danmark
Status: Offline
Point: 7
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 09:52
Hej Ib og jer andre.

Du har fuldstændigt ret IB, at det kan man bare gøre, men udfordringen er at den foreslår en filenavn, som jeg gerne vil kunne styre.




Det ser mest professionel ud, hvis den blot er tom....

Hvilken property skal jeg kigge på?

Med venlig hilsen
Martin
Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 709
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 09:57
Hvis det er VBA-kode, der kalder denne dialogboks, er jeg nødt til at se VBA-koden, før jeg kan skyde mig ind på det.
Til top
mha Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 03.Jan.2019
Land: Danmark
Status: Offline
Point: 7
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 10:13
Hej Maxzpad

hermed koden:

--------------------------

Function filedialog1(Label_box As String, Return_type As Byte, Dialog_filter As String, Start_position As String) As String

' Label_box er overskriften p? dialogboksen
' Return_type er dialog type vi ?nsker
' Dialog_filter er det filter vi s?tter op
' Start_position er vores mappe vi ?nsker at starte i

' koden her sender blot variablen tilbage - uanset om du v?lger case 1, 2, 3 eller 4

Dim MSO As Object ' styre filedialog type
Dim svar As String ' h?ndtere svar fra filedialogen

' vi s?ger blot at omdanne indholdet, skrives i sm? bogstaver
' s? vi ikke l?ngere nede f?r en fejl.
Dialog_filter = LCase(Dialog_filter)

' set dialog type
Select Case Return_type
    Case 3
        Set MSO = Application.filedialog(msoFileDialogOpen)
End Select

With MSO
    
    ' Der kan kun hentes en file af gangen
    .AllowMultiSelect = False
    
    If Return_type = 2 Or Return_type = 4 Then
            
        Debug.Print "---"
            
    Else
            
'------------------------------------------------
' I denne blog s?ttes filterne op i dialogboksen.
'------------------------------------------------
              
        'Nulsting af filteret
        .Filters.Clear

        '---------------------------------------
        'Filetyper til filteret
        '---------------------------------------

        ' Excel
        If InStr(1, Dialog_filter, "excel") <> 0 Then
            .Filters.Add "Excel files", "*.xls;*.xlsb;*.xlsm;*.xlsx;*.xlt;*.xltm;*.xltx;*.xlw;*.xml;*.xps;*.xla;*.xlam"
        End If
       
        'Vi s?tter filteret til standart i boksen
        .FilterIndex = 1
    
    End If
    
    'Start position hentes fra subrutinen
    .InitialFileName = Start_position
    
    'Titlen hentes fra subrutinen.
    .Title = Label_box
       
    'Kaster svaret fra dialogboksen ind i "svar" variablen. Er der trykket p? annulere, er svaret "Empty"
    If .Show = "-1" Then
        svar = .SelectedItems(1)
    Else
        svar = "Empty"
    End If
End With
    
' Her overf?res svaret fra dialogboksen til funktionen. Er "svar" tomt f?r de ogs? et tomt svar.
If svar <> "" Then

    filedialog1 = svar
    
End If

End Function

------------------------

her er de variabler som i brug når funktionen trækkes.



Mvh.
Martin

Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 709
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 10:24
Ok. Du skal kigge på følgende linje i koden:

    'Start position hentes fra subrutinen
    .InitialFileName = Start_position

Du kan se, at Start_position = "Z:\Martin\Projekt 2 - Maria\Udtræk". Her skal du have en backslash på til sidst, dvs. "Z:\Martin\Projekt 2 - Maria\Udtræk\"
Til top
mha Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 03.Jan.2019
Land: Danmark
Status: Offline
Point: 7
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 10:40
Fedt...

det virker - hold da ferie, hvor kan det være "skrøbeligt"...


Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 709
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 10:52
Ja, det virker lidt tosset, fordi der startes jo faktisk i den ønskede filmappe, selv om den ekstra backslash ikke er med, men det er åbenbart sådan, den (koden) arbejder med det.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 03.Jan.2019 kl. 11:06
Hej Martin.

Så blev jeg også klogere Confused

Husk at markerer Max's svar med Dette svar løste mit problem, så andre også kan se løsningen.
Du finder linket over Max's svar og når det er markeret, vil svaret hoppe op og stå lige under dit spørgsmål.

Wink
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk