Nieuwe module importeren

Status
Niet open voor verdere reacties.
Ik heb nog liggen stoeien met Application.Wait maar dat bracht niets op.
Code:
Do While FILENAME <> ""
    Workbooks.Open (DIRECTORY & "\" & FILENAME)
    'MsgBox (DIRECTORY & "\" & FILENAME)
    Workbooks(FILENAME).Activate
    'PASWOORD ERAF HALEN
    Const conPW As String = "PASWOORD" '=PASWOORD  080174WnE#&#161268BmA
    Call SendKeys("%(d)P" & "VBAProject" & ActiveWorkbook.Name & "{ENTER}" & conPW & "{ENTER}", True)
    Application.Wait (Now + TimeValue("0:00:03"))
    Workbooks(FILENAME).VBProject.VBComponents.Import BESTANDEN & "\Beveiliging.bas"
    Workbooks(FILENAME).Save
    Application.Wait (Now + TimeValue("0:00:03"))
    Workbooks(FILENAME).Close
    FILENAME = Dir()
Loop
 
Waarom Sendkeys? Met wat Api-calls kan dat robuuster
 
Ik heb nog liggen stoeien met Application.Wait maar dat bracht niets op.
Klopt.
Application.Wait zet alles stil, dus ook de SendKeys opdracht.
 
Probeer de module toe te voegen zonder het (overbodige) wachtwoord te verwijderen.

Overbodige 'beveiliging' maakt meer kapot dan je lief is.
 
Laatst bewerkt:
Waarom Sendkeys? Met wat Api-calls kan dat robuuster

Of gewoon zo?
Code:
Workbooks.Open DIRECTORY & "\" & Filename, Password:="Het Wachtwoord"
 
Ik doelde op het 'unlocken' van het VBAproject wachtwoord, maar gezien post #24 is zelfs dat blijkbaar niet nodig
 
Het probleem is wel dat het wachtwoord er al op zit en het bestand verdeeld is over een 100-tal personen.
Er moet nu een module toegevoegd worden, dus het paswoord op het VBA Project zal er toch eerst ergens ingevuld moeten worden.

@EvR, ik heb geen ervaring met Api-calls, heb je hier misschien een voorbeeld van?
 
Het probleem is wel dat het wachtwoord er al op zit en het bestand verdeeld is over een 100-tal personen.

Hiervoor heeft MS AddIns uitgevonden.
 
Ja dat begrijp ik Snb, maar ik moet ook aan de bestaande modulen een wijziging aanbrengen, of eventueel verwijderen en vernieuwen.
Ik denk niet dat dit lukt met een Add-In. Ik zal me er eens in verdiepen.
 
In bijgaand bestandje, ik heb de code in Module1 toegevoegd en de code achter jouw knop werkbaar gemaakt.
Paswoord dan nog aanpassen

De suggesties op basis van jouw code heb ik niet doorgevoerd
 

Bijlagen

Hoi Eric
Ik krijg een fout tijdens uitvoering:
Toegang tot het Visual Basic-project op programmeerniveau is niet betrouwbaar
Bij foutopsporing gaat hij naar onderstaande code:
Code:
Sub UnlockTheProject(ByVal wb As Workbook, ByVal Pass As String)
    Select Case UnlockProject(wb.VBProject, Pass)
        Case 0: Debug.Print "The project was unlocked"
        Case 2: Debug.Print "The active project was already unlocked"
        Case Else: MsgBox "Error or timeout"
    End Select
End Sub

Naar de 2e regel
Code:
Select Case UnlockProject(wb.VBProject, Pass)
 
File/Options/Trust Center - Trust Center settings - Macro Settings vinkje zetten bij Trust Access to the VBA project object model
Dat vinkje had je sowieso moeten aan hebben ;-)
 
Sorry Eric, vinkje stond aan maar is er ongewild terug afgesprongen.
Ik ga ermee aan de slag en laat het nog weten of alles werkt.
Alvast bedankt :thumb:
 
Ja dat begrijp ik Snb, maar ik moet ook aan de bestaande modulen een wijziging aanbrengen, of eventueel verwijderen en vernieuwen.
Daarvoor is de Addin juist in het leven geroepen.
 
Hey Eric, ik deed al een eerste vreugde dansje. :D
Echter er wordt nog steeds een paswoord gevraagd terwijl het toch in de code zit.
Het venstertje om het VBA Project paswoord in te geven blijft verschijnen.
Is dit nog op te lossen zodat dit toch automatisch ingevuld wordt?
 
Sla het Excelbestand op als Addin: ".xlam"
Onthoud de fullname (Pad + naam)

Laat iedere gebruiker de volgende macro draaien:

Code:
Sub M_snb()
  addins.add "Fullname'
End Sub

Dan ben je klaar.
 
Het venstertje om het VBA Project paswoord in te geven blijft verschijnen.
Is dit nog op te lossen zodat dit toch automatisch ingevuld wordt?

Is het paswoord wel juist? Capslock???

Daarnaast is de suggestie van snb inzake een invoegtoepassing wel de juiste


++ Gebruik je een nl-talige versie (VBA-editor)?
 
Laatst bewerkt:
Het paswoord wordt er met VBA in gekopieerd, maar toch vraagt men via het dialoogvenster het paswoord.
Ik heb geen ervaring met add-in. Dan zal ik er mij toch eens in moeten verdiepen.
 
Window handle wordt in de code "gepakt" dmv de caption, ik heb nu Nederlands toegevoegd, wellicht ging het daar (nog) op fout

Wat staat er bij jou? zie plaatje 'VBAProject Paswoord' op de plek van 'VBAProject Password'
 

Bijlagen

  • BRONCODE.xlsm
    BRONCODE.xlsm
    40,6 KB · Weergaven: 8
  • Password.JPG
    Password.JPG
    14,4 KB · Weergaven: 13
Laatst bewerkt:
Als je Excel bestand de extensie '.xlsb' heeft: is dit voldoende:

Code:
Sub M_snb()
   c00 = Replace(ThisWorkbook.Name, ".xlsb", ".xlam")

   ThisWorkbook.SaveAs c00, 55
   AddIns.Add(c00).Installed = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan