1 2 3 4 5 6 7 8 9 | Sub test() thesentence = InputBox("Type the filename with full extension", "Raw Data File") Range("A1").Value = thesentence If Dir(thesentence) <> "" Then MsgBox "File exists." Else MsgBox "File doesn't exist." End If End Sub |
Ik ga hier mee spelen. Moet nog wat meer wegwijs worden in VBA voordat ik dit ga snappen maar komt goed.quote:Op donderdag 14 maart 2019 11:33 schreef The_vice het volgende:
zie, voorbeeld is excel macro, moet nog omgezet worden naar een functie:
Je kan middels VBA testen of het bestand bestaat, op basis daarvan laten kopiëren.
Als je op wildcard dingen wilt doen, dan is het handig om het aantal files te tellen dat ergens aan voldoet (>0) zie voorbeeld.
Ja dat wil ik inderdaad. Weliswaar staat alles al in submappen (naam producent), maar ik wil niet dat het GMP.pdf heet maar inderdaad GMP Producent 20042019.pdf".quote:Op donderdag 14 maart 2019 11:33 schreef The_vice het volgende:
Qua bestand namen zou ik inderdaad iets met de datum (en producent ) in de naam doen. Dat is veel makkelijker terugzoeken in de file explorer. Dan kan je bijvoorbeeld in één keer alles van producent X terugvinden
Maar dan: "Certificaat"-"Jaar maand dag"_"producent", dat sorteert beter.
[..]quote:Op donderdag 14 maart 2019 12:21 schreef racerdkb het volgende:
[..]
Ik ga hier mee spelen. Moet nog wat meer wegwijs worden in VBA voordat ik dit ga snappen maar komt goed.
[quote]
Goede investering is Microsoft Access 2016 Programming By Example: . Access is nogal steile leercurve, maar met een goed boek op het bureau kom je snel een heel eind. Staan vaak veel voorbeelden waarop je weer kan voortborduren.
Dan moet ik ook VBA gaan gebruiken om überhaupt naar dat netwerkpad te gaan en het bestand te openen?quote:Vanuit waar wil je gaan zoeken, via explorer of vanuit Access?
Dank voor je input tot nu toe.quote:Beide moet kunnen, maar zelf gebruik ik het liefst VBA, dat is vaak wel zo overzichtelijk.
Ik wil simpelweg dat als je op een knopje klikt op het formulier in Access, je een PDF van dat certificaat op je scherm krijgt.quote:Op zaterdag 16 maart 2019 23:05 schreef The_vice het volgende:
Vanuit waar wil je gaan zoeken, via explorer of vanuit Access?
1 2 3 4 | Public Sub OpenDocument(DocPath As String) Dim A As Long A = Shell("RUNDLL32.EXE URL.DLL,FileProtocolHandler " & DocPath, vbMaximizedFocus) End Sub |
1 2 3 | Private Sub GMP1_Click() Call OpenDocument("O:\Netwerk\Fabrikanten\" & [Producent 1] & "\GMP.pdf") End Sub |
1 | Call OpenDocument("O:\Netwerk\Fabrikanten\" & [Producent 1] & "GMP*") |
1 | Call OpenDocument("O:\Netwerk\Fabrikanten\" & [Producent 1] & "\" & "GMP*") |
1 | Call OpenDocument("O:\Netwerk\Fabrikanten\" & [Producent 1] & "\" & "GMP" & "*" & ".pdf") |
Ja, de rest van de bestandsnaam ook meegeven. Anders moet je iets als onderstaand doen om een array met bestandsnamen te generen die aan het gedeelte van de bestandsnaam "GMP*.pdf" voldoen. En dan de eerste, of laatste laten openen (mits het goed gesorteerd in de array terechtkomt)quote:Op woensdag 20 maart 2019 15:25 schreef racerdkb het volgende:
Ben nu van dat hyperlinkgedoe afgestapt.
.....
Hoe ga ik nu die wildcard er in verwerken?
Ik zat te klooien met o.a.:
....
Moet ik van de filename een aparte string maken in die module waar ik ook m'n OpenDocument code in heb? @:The_vice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | Sub testfile() Dim list As Variant Dim FileNamePart As String Dim FileType As String Dim strPath As String strPath = Environ("USERPROFILE") & "\Pictures" FileNamePart = "CIMG" FileType = "jpg" 'case sensitive! list = ListFiles(strPath, FileNamePart, FileType) 'test if empty (no results from folder) If Len(Join(list)) > 0 Then Debug.Print list(1), list(UBound(list)) End Sub ' Return an array containing the names of the Public Function ListFiles(ByVal dir_path As String, _ ByVal FileNamePart As String, _ ByVal FileType As String, _ Optional ByVal exclude_self As Boolean = True, _ Optional ByVal exclude_parent As Boolean = True _ ) As String() Dim fso As FileSystemObject Dim fso_folder As Folder Dim txt As String Dim fso_file As File Dim i As Long Dim file_names() As String Dim Counter As Long ' Make a new File System object. Set fso = New FileSystemObject ' Get the FSO Folder (directory) object. Set fso_folder = fso.GetFolder(dir_path) If fso_folder.Files.Count = 0 Then Exit Function End If ' Make the list of names. ReDim file_names(1 To fso_folder.Files.Count) i = 1 For Each fso_file In fso_folder.Files If Left(fso_file.Name, Len(FileNamePart)) = FileNamePart Then If Right(fso_file.Name, Len(FileType)) = FileType Then file_names(i) = fso_file.Name i = i + 1 Counter = Counter + 1 End If End If Next fso_file ReDim Preserve file_names(1 To Counter) ListFiles = file_names End Function |
1 | Call |
kan ik jou niet gewoon ff een dagdeel inhuren als extern consultant dat zou me een hoop gedoe schelen.quote:Op woensdag 20 maart 2019 21:22 schreef The_vice het volgende:
weglaten uit je code, hij voert die OpenDocument toch wel uit.
Voorlopig zit ik overdag vol,quote:Op woensdag 20 maart 2019 21:23 schreef racerdkb het volgende:
[..]
kan ik jou niet gewoon ff een dagdeel inhuren als extern consultant dat zou me een hoop gedoe schelen.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |