• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Maak Windows snelkoppelingen met VBA

Vreemd. Documenten herstellen: Oorspronkelijk 02:00 maandag 1 januari 1601
Daar 3 stuks van. Moet nog gekker worden.
 
Sla dat document eens op als .xlsx in plaats van .xlsm
Zo gebuik ik die hier ook.
 
Gedaan en problemen blijven. Blijkbaar beschadigd die het document en moet dan herstellen.
Ik geef het op. Bedankt voor de hulp maar dit is niet te doen. Kost uren en uren en de magnetron is ontploft door een foute instelling van mijn kant.

Over en sluiten. Einde verhaal.
 
Het beschadigen van dat document komt door het geforceerd afsluiten van Excel met Taskkill.
Wel vreemd dat het hier allemaal zonder enig probleem werkt met oEXC.Application.Quit.
 
Ja, wegens het waarom het bij TS maar niet goed wil werken en het bij mij geen enkel probleem oplevert.
 
Ik weet ondertussen niet meer wat de bedoeling is.
Het mapje met snelkoppelingen was aanwezig in Station E (Met mijn code dan wel) en verder snap ik de bedoeling niet.
 
Misschien dat TS nog even kan laten weten of hij jouw code ook heeft getest.
 
Het beschadigen van dat document komt door het geforceerd afsluiten van Excel met Taskkill.

Nee, dat 'herstellen' gebeurde eerder ook al. Het raakt beschadigt na het open en wat er dan gebeurd weet ik niet, maar het bestand blijft open staan en kun je niet meer openen dan kom je in een cirkel terecht van alleen lezen en een leeg document.
Waarom hier een punt achter?
oEXC.Application.Quit. < punt

Volgens Johan een raar verhaal. Is het niet. De koppelingen worden aangemaakt (heel positief) echter de admintool staat er niet bij 6 6 gewijzigd in het script, maar er klopt blijkbaar nog iets niet. En afsluiten Excel-file lukt niet. Met taskkill in batch file snel op te lossen.

Kijk dan in Verkenner onder details > kopplingsdoel naar de waarde!!!

Johan kwam met koppelingen in het document zelf. Prima. Moet dat andere nakijken.

Ik weet ondertussen niet meer wat de bedoeling is.
Het mapje met snelkoppelingen was aanwezig in Station E (Met mijn code dan wel) en verder snap ik de bedoeling niet.
Ik had daar wel antwoord op gegeven. De koppelingen worden aangemaakt als URL's. Administrative Tools werkt niet (koppelingsdoel ontbreekt). De rest werkt wel.
Weet niet of je in VBA URL kunt omzetten naar lnk Handmatige de extensie wijzigen van url naar lnk maakt de aangemaakte koppelingen dood.URL's van Johan.jpg
 
Laatst bewerkt:
Probeer deze eens.
Opent het mapje met koppelingen en sluit Excel af na een waarschuwing die je volgens mij zelf moet verwijderen.
 

Bijlagen

Die punt hoort uiteraard niet in de code, dat is gewoon het einde van een regel.
 
Dit maatk vlekkelings een URL-snelkoppeling in het buroblad.

Code:
Sub M_maak_snelkoppeling()
    With CreateObject("WScript.Shell")
        With .CreateShortcut(.SpecialFolders(4) & "\website.lnk")
            .TargetPath = "https://www.snb-vba.eu"
            .Save
        End With
    End With
End Sub
 
Resultaat van Edmoor.

Resultaat met error Edmoor.jpg
 
Laat de code zien zodat duidelijk is wat er op regel 23 staat.
 
@snb
Dit maakt vlekkelings een URL-snelkoppeling in het buroblad.

Ja, werkelijk goed bedoeld, maar ik heb vaak niets aan jouw oplossingen. Veel te ingewikkeld en werken in 99% van de gevallen niet. Wat moet ik met een snelkoppeling op/in het bureaublad!
Je kunt toch zien aan de reacties van Johan en Edmoor wat de bedoeling is!

Hierbij nogmaals de code:
Zoals ik aangaf is 8 8 gewijzigd naar 6 6 Het argument wordt niet meegenomen.

PHP:
Set Shell = CreateObject("WScript.Shell")
Set oEXC = CreateObject("Excel.Application")
oEXC.Workbooks.Open "E:\test\Maak Windows Snelkoppelingen.xlsx"

With oEXC.Activesheet
    While Inf <> "|"
    Rgl=Rgl + 1
    Inf = .Cells(Rgl, 1) & "|" & .Cells(Rgl, 5)
    If Inf <> "|" Then
        Arg = ""
        If .Cells(Rgl, 6) <> "" Then Arg = .Cells(Rgl, 6)
        lnk .Cells(Rgl, 1), .Cells(Rgl, 5)
    End If
    Wend
End With
'oEXC.ActiveWorkbook.Saved=True
oEXC.Application.Quit
'Shell.Exec "taskkill /f /im EXCEL.EXE"

Sub Lnk (Oms, Exe)
    Set link = Shell.CreateShortcut("E:\test\" & Oms & ".lnk")
    link.Description = Oms
    link.TargetPath = Exe
    if Arg <> "" then link.Arguments = Arg
    link.WindowStyle = 1
    link.Save

End Sub
 
Laatst bewerkt:
Beste Johan,
Jouw oplossing is natuurlijk prima maar het blijven url's en bij jouw Excel-document is sluiting nooit een probleem geweest.

ik kan niet heksen. Jouw eerdere resultaten heb ik uitgebreid doorgegeven post 29 volgens mij. We zijn al vanaf gisteren bezig. Je denkt die magnetron is een grap? Kijk vanmorgen was ik druk met al die toestanden en mijn kop thee werd koud. Even dertig seconden in de magnetron. Echter ik had mij vergist en het op dertig minuten gezet! Alles zwart, glas kapot, brandlucht in de hele kamer en een halfuur schoonmaken.
 
Laatst bewerkt:
Da's nou zonde.
Na de hele macrowave nu dus de microwave ;)
MW.png
 
Ja, puur leedvermaak. ;)

Fout nog gevonden op regel 23 teken 5?
 
Sorry, kon het niet laten.
Fijn dat het daarbij gebleven is :)
 
Terug
Bovenaan Onderaan