Excel oszlop adataihoz pdf hozzárendelése VBA
2019-11-19T15:26:10+01:00
2019-11-28T17:33:29+01:00
2022-08-11T16:30:31+02:00
csanad998
Sziasztok!

Egy olyan problémám lenne, hogy egy projekt egy adott excelben vezetem a Költségeket az adataikkal.
Az egyik oszlop a számlaszámokat tartalmazza.
Továbbá ugyanazon a helyen, ahol ez a fájl van egy másik mappában tárolom az összes számlát pdf formátumban.
Azt szeretném megoldani, hogy mikor egy új rendelést viszek fel vagy egy adott rendelésnél megváltoztatom a számlaszámot, akkor azt az Excel érzékelje és automatikusan létrehozzon egy hyperlinket, ami a számla pdf-re mutat.
A segítséget előre is köszönöm.
Mutasd a teljes hozzászólást!

  • Linkekkel még nem dolgoztam, de szerintem szükséged lesz egy FileSystemObject-re. Ezt felhasználva a pdf-eket tartalmazó mappa fájljain végiglépkedve keresed a számlaszámot a fájlnevekben.
    Aztán meg kell oldani a link beszúrását a megfelelő cellába.
    Tudom ez elég általános így, de a profik majd jobban tudnak segíteni.
    Mutasd a teljes hozzászólást!
  • Private Sub Worksheet_Change(ByVal Target As Range) Dim fso As FileSystemObject Set fso = New FileSystemObject Dim fsFile As File Dim myFolder As Folder Dim találat As Long Dim fájlNév As String 'Ha az "A" oszlopban tárolod a számlaszámokat: If Not Intersect(Target, Range("A:A")) Is Nothing Then Set myFolder = fso.GetFolder("C:\számlaszámok") For Each fsFile In myFolder.Files fájlNév = fsFile.Name találat = InStr(1, fájlNév, Target.Value, 1) If találat > 0 Then Application.EnableEvents = False ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=myFolder.Path & "" & fsFile.Name Application.EnableEvents = True End If Next fsFile End If End Sub
    A FileSystemObject használatához a VBA kódablakban:
    Tools>>References>>Microsoft Scripting Runtime bejelölés!
    A fenti kód a munkalap moduljában készült. Biztos, hogy kell még rajta reszelgetni, de nálam működik.
    A működés feltétele, hogy amikor beviszed a táblában (az "A" oszlopban) a számlaszámot, akkor a fájl már létezzen a mappájában. 
    A fájlnév tartalmazza a számlaszámot.
    A számlaszám ne legyen sehol elütve. Meg biztos van még néhány apróság.
    Mutasd a teljes hozzászólást!
  • Ha másvalaki gépén is használni akarod a makrót, akkor talán jobb lenne egy késői kötést alkalmazni a FleSystemObjecthez. Nem biztos, hogy egy átlagos felhasználó megtalálja a megfelelő referenciát.
    Mutasd a teljes hozzászólást!
  • Ha az excel akadékoskodik a fájl megbízhatóságát illetően, akkor érdemes lehet az 
    Office gomb >> excel beállításai >> Adatvédelmi központ >> Adatvédelmi központ beállításai >> Megbízható helyek lapon a fájlokat tartalmazó mappát felvenni a listára.
    Mutasd a teljes hozzászólást!
  • Köszönöm, tökéletesen müködik.
    Még annyit kérdeznék, hogy ez a FileSystemObject ez micsoda?
    Mutasd a teljes hozzászólást!
  • Ha jól tudom a scrrun.dll tartalmazza azokat a metódusokat és tulajdonságokat, amelyen keresztül a te géped fájlrendszerét a vba használatával el tudod érni, szokványos fájlkezelő utasításokat tudsz kiadni.
    Ezt a dll-t csatoltad a projektedhez és hoztál létre belőle egy objektumpéldányt. Ez a példány testesíti meg a géped fájlrendszerét.
    Mutasd a teljes hozzászólást!
  • Ha működik a dolog, akkor zárd le a témát...
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd