Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 19 van 19

Onderwerp: Filter voor GetOpenFilename

  1. #1
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Vraag is opgelost

    Filter voor GetOpenFilename

    Goedemorgen,

    Zit met een vraagje over het GetOpenFilename.

    Heb in een bepaalde Map diverse notities staan.
    Deze notities heb ik als volg genoemd: Not1 20200812_1
    Not1 betekent dus een notitie, waarvan 1 dus het nummer is. Het vervolg is de datum.

    Nu kan ik met
    Code:
    mid(Notitie;4;2) het nummer bovenwater halen.
    De bedoeling als ik een Notitie open, (bv. nummer 2) ik alleen in de Index alleen de bestanden zie van notitie nummer 2.
    Weet even niet hoe ik dit filter moet aanpassen om dit boven water te krijgen.
    Heb een vb-tje bijgevoegd.

    Heeft iemand een idee?

    Bij voorbaat many Thanks.

    Dutch
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door DutchOirs : 9 september 2020 om 17:08

  2. #2
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Klein stukje verder, maar nog geen beoogd doel :-(
    Bijgevoegde bestanden Bijgevoegde bestanden

  3. #3
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Code:
    Sub M_snb()
      With Application.FileDialog(1)
         .InitialFileName = "Not2*"
         If .Show Then .Execute
      End With
    End Sub
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  4. #4
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Goedenavond snb,

    Ben met je oplossing bezig en werkt tot een bepaalde hoogte.

    Code:
    Sub M_snb()
      Dim NotitieNr As Integer
      ZoekCB.Visible = 1
      Image1.Visible = 1
      HuidigeDir = CurDir                                                              ' zoekt de huidige directory (Excel) op voor een variablele [CurDir]
      ChDir ActiveWorkbook.Worksheets("Blad1").Range("Q5")        ' zet de directory in het Menu in de juiste map voor Foto's
      
      With Worksheets("Blad1") 
        NotitieNr = Mid(.Range("Q7"), 4, 2)                                    ' Notitienummer, waaraan de jpg's gekoppeld zijn
      End With
      
      With Application.FileDialog(1)
         .InitialFileName = "Not" & NotitieNr & "*"
     '    If .Show Then .Execute
         If .Show Then
      '     Image1.Picture = LoadPicture(ActiveWorkbook.Worksheets("Control").Range("Q35") & TmpPhotoName)
           Image1.Picture = LoadPicture(.Execute)
           
         End If
      End With
      ChDir HuidigeDir                                                                 ' zet het oude path weer terug voor MenuBestand Excel-files
    End Sub
    De opzet is, om in dat menu (wat nu werkt met jouw oplossing) een picture te kiezen welke vervolgens in Image1 moet komen.

    Als ik het met .Execute opzet doe, opent hij een nieuw file?
    En dat is niet de bedoeling, maar het gekozen picture moet in Imag1 komen.
    Bijgevoegde bestanden Bijgevoegde bestanden

  5. #5
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Nogmaals goedenavond snb,

    Ben eruit.

    Wat is het geworden:
    Code:
    Sub M_snb()
      Dim NotitieNr As Integer, lngCount As Long
    
      ZoekCB.Visible = 1
      Image1.Visible = 1
      HuidigeDir = CurDir                                                                ' zoekt de huidige directory (Excel) op voor een variablele [CurDir]
      ChDir ActiveWorkbook.Worksheets("Blad1").Range("Q5")          ' zet de directory in het Menu in de juiste map voor Foto's
      
      With Worksheets("Blad1")
        NotitieNr = Mid(.Range("Q7"), 4, 2)
      End With
      
      With Application.FileDialog(1)
        .InitialFileName = "Not" & NotitieNr & "*"
        If .Show Then
          For lngCount = 1 To .SelectedItems.Count
            Image1.Picture = LoadPicture(.SelectedItems(lngCount))
          Next lngCount
        End If
      End With
      ChDir HuidigeDir                               ' zet het oude path weer terug voor MenuBestand Excel-files
    End Sub
    Met bovenstaande haalt hij alle jpg's die bij een notitie horen eruit en zet deze als keuze in het overzicht.
    Vervolgens als je er eentje kiest opent deze in het Image venster.
    Dit was de opzet, om niet pictures in verschillende mappen te moeten zetten.

    Bedankt voor je hulp bij deze.

    Vr. Gr.

    Dutch

  6. #6
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Goedemorgen snb,

    Bij uitwerking van m'n prog. loop ik toch tegen een probleempje op.

    Gebruik namelijk 2 mappen voor m'n notities. Notities Belangrijke Zaken en Notities Technische zaken.

    Voordat het picture wordt opgehaald kijkt hij welke Map hij moet wezen en vervolgens met het notitie nummer haalt hij dan de juiste picture op.

    Echter dit Application.FileDialog switch niet met de directory mee.

    Code:
    Sub M_snb()
      Dim HuidigeDir As String, NotitieNr As Integer, lngCount As Long
    
      ZoekCB.Visible = 1
      Image1.Visible = 1
      HuidigeDir = CurDir                                           ' slaat de huidige directory (Excel) op voor een variablele [CurDir]
      
      UserForm2.Show                                                ' haalt het juiste Path op
      
    MsgBox ("CurDir =  " & CurDir)
    
      With Worksheets("Blad1")
        NotitieNr = Mid(.Range("Q7"), 4, 2)                         ' haalt het juiste NotitieNummer op
      End With
      
      With Application.FileDialog(1)
         .InitialFileName = "Not" & NotitieNr & "*"
         If .Show Then
            For lngCount = 1 To .SelectedItems.Count
      '          MsgBox .SelectedItems(lngCount)
              Image1.Picture = LoadPicture(.SelectedItems(lngCount))
            Next lngCount
         End If
      End With
      ChDir HuidigeDir                               ' zet het oude path weer terug voor MenuBestand Excel-files
    End Sub
    Heeft u enig idee?

    Zal het vb-tje erbij doen.
    Bijgevoegde bestanden Bijgevoegde bestanden

  7. #7
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Iets eenvoudiger:
    Bijgevoegde bestanden Bijgevoegde bestanden
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  8. #8
    Giga Senior cow18's avatar
    Geregistreerd
    24 mei 2008
    Locatie
    Alveringem, België
    Vooraf en net voor je filedialog naar de goeie map switchen met je chdir, zou dat niet helpen ?

  9. #9
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    @cow18

    Neen, directory wijzigen is overbodig.
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  10. #10
    Giga Senior cow18's avatar
    Geregistreerd
    24 mei 2008
    Locatie
    Alveringem, België
    was een gokje vanop afstand

  11. #11
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Goedemiddag allen,
    Na het weekend het gebeuren weer opgepakt.
    Helaas wat snb aanbracht werkt niet. Gebruik namelijk excel 2003.

    Wat Cow 13 aanbracht ben ikzelf ook al een tijd bezig.

    Probleem alleen is dat deze optie daarbij niet werkt.

    Code:
    Sub M_snb()
      MsgBox ("M_snb Image lukt, path niet")
      Dim NotitieNr As Integer, lngCount As Long
    
      ZoekCB.Visible = 1
      Image1.Visible = 1
      HuidigeDir = CurDir                                                      ' zoekt de huidige directory (Excel) op voor een variablele [CurDir]
    MsgBox ("Huidige Dir =  " & CurDir)
      
      ChDir ActiveWorkbook.Worksheets("Blad1").Range("Q5")                     ' zet de directory in het Menu in de juiste map voor Foto's
    MsgBox ("1 Nieuwe Dir =  " & CurDir)                              ' deze moet geswitcht kunnen worden met Q6
      
      With Worksheets("Blad1")
       NotitieNr = Mid(.Range("Q7"), 4, 2)                      ' haalt het juiste NotitieNr op
      End With
    
      With Application.FileDialog(1)
         .InitialFileName = "Not" & NotitieNr & "*"
         
     '    If .Show Then .Execute
         If .Show Then
            For lngCount = 1 To .SelectedItems.Count
              Image1.Picture = LoadPicture(.SelectedItems(lngCount))
            Next lngCount
         End If
      End With
    MsgBox ("2 Nieuwe Dir =  " & CurDir)
      ChDir HuidigeDir                               ' zet het oude path weer terug voor MenuBestand Excel-files
    MsgBox ("3 Weer Huidige Dir =  " & CurDir)
    End Sub
    Op een of andere manier onthoud het FileDialog het voorgaande gebruikte Path.
    Als je met ChDir je Path veranderd pakt het FileDialog NA de 1e keer het niet meer op.
    Bijgevoegde bestanden Bijgevoegde bestanden

  12. #12
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Je ziet in O6 een ~ staan. Dat is een ongeldig teken voor een pad.
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  13. #13
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Hoi snb,

    Werkt hier wel, maar heb het aangepast en komt niet meer voor.

    Desondanks als je het Path switcht door van bv. Q5 naar Q6 te gaan, werkt het niet.

    De 1e keer werkt het wel als je het menu opent, maar als je daarna in VBA het Path switcht naar Q6, pakt het FileDialog menu het niet op..
    Bijgevoegde bestanden Bijgevoegde bestanden

  14. #14
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Als je het pad niet gebruikt, werkt het niet.

    With Application.FileDialog(1)
    .InitialFileName = "Not" & NotitieNr & "*"

    Kijk eens beter in het presenteerblaadje in #7
    Laatst aangepast door snb : 16 september 2020 om 17:54
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  15. #15
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Als ik je goed begrijp zou het Pad hier komen?

    Code:
      With Application.FileDialog(1)
        .InitialFileName = Pad & "Not" & NotitieNr & "*"
    OF  .InitialFileName = CurDir & "Not" & NotitieNr & "*"
    wat bedoel je met het presenteerblaadje in #7
    Laatst aangepast door DutchOirs : 16 september 2020 om 18:33

  16. #16
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Ok als het paard niet naar het water wil, brengen we het water naar het paard :-)

    Code:
      With Application.FileDialog(1)
         If ActiveWorkbook.Worksheets("Blad1").Range("Q3").Value = 5 Then .InitialFileName = ActiveWorkbook.Worksheets("Blad1").Range("Q5") & "Not" & NotitieNr & "*"
         If ActiveWorkbook.Worksheets("Blad1").Range("Q3").Value = 6 Then .InitialFileName = ActiveWorkbook.Worksheets("Blad1").Range("Q6") & "Not" & NotitieNr & "*"
         If .Show Then
            For lngCount = 1 To .SelectedItems.Count
              Image1.Picture = LoadPicture(.SelectedItems(lngCount))
            Next lngCount
         End If
      End With

    En dit werkt.

    Weet niet of dit de schoonste oplossing is, dus als iemand een beter idee heeft?


    Vr. Gr.

    Dutch
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door DutchOirs : 16 september 2020 om 18:57

  17. #17
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Verder niet gekeken waar het over gaat.
    Code:
    With Application.FileDialog(1)
       x = Sheets("Blad1").Range("Q3").Value
         If x > 4 And x < 7 Then .InitialFileName = Sheets("Blad1").Range("Q" & x) & "Not" & NotitieNr & "*"
         If .Show Then
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  18. #18
    Senior Member
    Geregistreerd
    30 september 2009
    Locatie
    Amsterdam
    Hoi HSV,

    Nr 5 en nr 6 hebben ieder een aparte pad.
    In het Menu van m'n file zitten er zelfs meerdere.
    Dus het pad wordt met de keuze bepaald in het menu

    Maar thanks voor het meewerken :-)

    Ben happy dat ik eruit ben :-)

    Fijne avond nog

  19. #19
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Niet getest dus!
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren