Hej!
Jag har noll koll egentligen på VBA. Har ändå lyckats få till en funktion i mitt excelark där man som användare klickar på en knapp, får upp dialogrutan för att browsa efter fil och därefter så läggs den till som en klickbar ikon i mitt dokument. Mitt problem är att ikonen hamnar på fel plats. Jag har flera knappar som ska ha samma funktion och tanken är att filen/ikonen ska hamna på samma rad i kolumnen till höger. Kan någon se om något i koden nedan är felaktigt? Jag skulle ju helst vilja ha en kod som typ hämtar knappens cell och sen anger att målfilen ska placeras på samma rad, en kolumn till höger.
Bifogar länk till bild där man ser att det hamnar fel. Just nu hamnar alla ikoner/filer på samma plats för knapparna i kolumn A och alla hamnar på samma plats för knapparna i kolumn C. ibb.co/n6WQrDB
Public Sub Insert_Document()
Blad1.Unprotect Password:="XXXXXX"
Dim fd As FileDialog
Dim selectedFile As String
Dim docObj As OLEObject
Dim destCell As Range
If IsError(Application.Caller) Then
MsgBox "The Insert_Document macro must be called from a button click, not directly.", vbCritical
Exit Sub
End If
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = "Select document to insert"
.Filters.Clear
.Filters.Add "Word documents", "*.doc*"
.Filters.Add "PDF documents", "*.pdf"
.Filters.Add "All files", "*.*"
If Not .Show Then Exit Sub
selectedFile = .SelectedItems(1)
End With
Set destCell = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(, 1)
Set docObj = ActiveSheet.OLEObjects.Add(Filename:=selectedFile, Link:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\Windows\Explorer.exe", IconIndex:=0, IconLabel:=Filename)
With docObj
.Name = Left(Mid(selectedFile, InStrRev(selectedFile, "\") + 1), 32)
.Top = destCell.Top
.Left = destCell.Left
.Width = destCell.Width - 5
.Height = destCell.Height - 5
End With
Blad1.Protect Password:="XXXXXX"
End Sub