Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord
Computer

Hallo. Hoe kan ik een knop toevoegen in een cel (Excel), waardoor de gebruiker een bijlage als pictogram kan toevoegen?

Ik heb een invulformulier gemaakt in excel. In een bepaalde cel wil ik graag door de gebruiker een bijlage laten toevoegen. Om dit gebruikersvriendelijk te maken, wil ik dit met een knop 'toevoegen bijlage' doen, zodat de gebruiker een pop up scherm krijgt en de bijlage kan toevoegen. Deze bijlage dient wel als pictogram te worden toegevoegd. M.b.v. VBA is het mij tot nu toe niet gelukt. Hebben jullie tips?

2 antwoorden
    • +
    • 0
    • -
    Beste Gast,

    Het is mogelijk om een object in te voegen. Daarmee heb je keuze uit verschillende typen bestanden. Als je het vinkje aanzet bij Pictogram kan je het bestand als een pictogram invoegen. Hieronder de VBA code voor het invoegen van een nieuw Word document.
    Maar de vraag die je stelt is niet 100% volledig (welk soort bestand? / voorbeeldbestand) en daarom kan ik je vraag ook niet volledig beantwoorden.

    ActiveSheet.OLEObjects.Add(ClassType:="Word.Document.12", Link:=False, _
    DisplayAsIcon:=True, IconFileName:= _
    "C:\PROGRA~2\MICROS~1\Office14\WINWORD.EXE", IconIndex:=0, IconLabel:= _
    "Microsoft Word-document").Activate

    Je kan mijn contactgegevens vinden op http://clickandknow.nl wellicht kan ik je dan verder helpen.

    Met vriendelijke groet,

    Richard Koolman
    Click and Know
    • +
    • 0
    • -
    Beste Karina,

    Ondertussen heb je het aangepaste bestand mogen ontvangen.
    Met de onderstaande VBA code is het mogelijk om via een knop (die de macro Toevoegen aanroept) een bestand in te voegen binnen het Excel document als pictogram.
    Het maakt niet uit welk type bestand er ingevoegd wordt (extensies .XLSX, .DOCX, .TXT zijn mogelijk).

    BEGIN CODE

    Const MAX_FILENAME_LEN = 260
    Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, _
    ByVal lpDirectory As String, _
    ByVal lpResult As String) As Long

    Sub Toevoegen()

    Dim intKeuze As Integer
    Dim strPath As String
    Dim Bestand As String

    ' Dialoogvenster verkenner openen zonder dat er meerdere bestanden gekozen kunnen worden.
    Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False

    ' Dialoogvenster zichtbaar maken
    intKeuze = Application.FileDialog(msoFileDialogOpen).Show

    ' Controleren of er wel iets is geselecteerd
    If intKeuze <> 0 Then
    ' Het path van het geselecteerde bestand opslaan in de StrPath variabele
    strPath = Application.FileDialog( _
    msoFileDialogOpen).SelectedItems(1)

    ' De bestandsnaam uit het Path halen
    Bestand = Right(strPath, Len(strPath) - InStrRev(strPath, ""))

    ' Pictogram / ICON van de applicatie opzoeken
    exe = FindApp(CStr(strPath))

    ' Toevoegen van het gekozen bestand als een "ICON"
    ActiveSheet.OLEObjects.Add(Filename:=strPath, Link _
    :=False, DisplayAsIcon:=True, IconFileName:=exe _
    , _
    IconIndex:=0, IconLabel:= _
    Bestand).Select

    End If

    End Sub

    Function FindApp(sFile As String) As String
    Dim i As Integer, s2 As String

    'Controleren of het bestand bestaat
    If Dir(sFile) = "" Or sFile = "" Then
    MsgBox "File not found!", vbCritical
    Exit Function
    End If
    'Buffer aanmaken
    s2 = String(MAX_FILENAME_LEN, 32)
    'Importeren naam en icoon van de applicatie waar het bestand mee kan worden geopend
    i = FindExecutable(sFile, vbNullString, s2)
    If i > 32 Then
    FindApp = Left$(s2, InStr(s2, Chr$(0)) - 1)
    Else
    MsgBox "Geen Applicatie Gevonden!"
    End If
    End Function

    EINDE CODE

    Mocht je nog meer willen leren over Excel dan kan je 1 van mijn gratis proeflessen volgen door je aan te melden op mijn website http://clickandknow.nl/aanmelden

    Met vriendelijke groet,

    Richard Koolman
    Click and Know

Beantwoord deze vraag