• 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.

VBA code om een commandbutton te activeren

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
535
Beste ontwikkelaars,

Ik heb een Excelsheet dat niet meer is dan een formulier 'WerkKopij" met een "commandbutton" (Voorbeeld onderaan)

Door de button aan te klikken wordt er een ander Excelbestand geopend : "Prestaties CCF" zie het eerste gedeelte van de code hieronder... ('Opent Prestatie CCF)

Code:
Private Sub cmdWerkKopij_Click()

Unload frmWerkKopij

' Opent Prestatie CCF
  
    ChDir "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties"
    Workbooks.Open Filename:= _
        "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties\Prestaties CCF.xlsm"
    
frmOpslaan.Show
'    MsgBox "Het bestand zal nu op de N-Drive 'BFA-M-CHEF' opgeslagen worden." & vbNewLine & "" & vbNewLine & "U kan later het bestand een eigen naam geven."

    ChDir "C:\Users\vandeputte.p\Desktop"
'    ChDir "N:\BFA-M-CHEF"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\vandeputte.p\Desktop\Prestaties CCF-Versie Chef BFA-M.xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
'    ActiveWorkbook.SaveAs Filename:= _
'        "N:\BFA-M-CHEF\Prestaties CCF-Versie Chef BFA-M.xlsm", FileFormat _
'        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        ActiveWorkbook.Save
        Application.DisplayAlerts = False
    
' Maakt de sheet Exclusive

    If ActiveWorkbook.MultiUserEditing Then
        Application.DisplayAlerts = False
        ActiveWorkbook.ExclusiveAccess
        Application.DisplayAlerts = True
    End If

Wanneer Prestaties CCF open gaat verschijn er ook eerst een formulier met verschillende commandbuttons om naar verschillende sheets te kunnen navigeren.

Wanneer ik op 1 van de commandbuttons klick en zo een sheet activeer gaat de code van WerkKopij verder.

So far no problem.

Is het mogelijk, in plaats van op een commandbutton te klikken, deze actie te laten gebeuren met een code?

Dit is de code van de commandbutton die met VBA zou moeten geactiveerd worden :

Code:
Private Sub cmdAlleCCF_Click()

    Sheets("Alle CCF").Select
    Unload Me

End Sub

Ik heb rondgezocht op het web met verschillende mogelijkheden maar niets werkt. (bv Call cmdAlleCCF_Click() geplaats na het gedeelte 'Opent Prestatie CCF, ...)

Wat is de juiste VBA code?

In bijlage een kopij van het eerste Excelbestand dat alles in gang zet.

Bekijk bijlage Creatie versie Pascal - Copy.xlsm

Bedankt

Greetz

Pascal
 
Laat die Private... en de End Sub gewoon weg en zet die 2 regeltjes op de plaats in je code waar je die handeling wenst.

en vervang die select door activate
 
Cobbe,

Ik heb de code geplaatst en aangepast zoals geadviseerd.

Code:
Private Sub cmdWerkKopij_Click()

Unload frmWerkKopij

' Opent Prestatie CCF
  
    ChDir "C:\Users\Pascal\Desktop"
    Workbooks.Open Filename:= _
        "C:\Users\Pascal\Desktop\Prestaties CCF.xlsm"
  
'    ChDir "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties"
'    Workbooks.Open Filename:= _
'        "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties\Prestaties CCF.xlsm"
    
    Sheets("Alle CCF").Activate
    Unload Me
    
frmOpslaan.Show
'    MsgBox "Het bestand zal nu op de N-Drive 'BFA-M-CHEF' opgeslagen worden." & vbNewLine & "" & vbNewLine & "U kan later het bestand een eigen naam geven."

     ChDir "C:\Users\Pascal\Desktop"
'    ChDir "C:\Users\vandeputte.p\Desktop"
'    ChDir "N:\BFA-M-CHEF"
    Application.DisplayAlerts = False
    
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\Pascal\Desktop\Prestaties CCF-Versie Chef BFA-M.xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Maar het formulier frmHoofdmenu sluit niet. Ik moet nog steeds zelf op de knop Alle CCF klikken.

Ik heb de code :
Code:
   Sheets("Alle CCF").Activate
    Unload Me

Geplaatst na de code voor het openen van Prestaties CCF.

Prestaties CCF gaat open, het formulier 'Hoofdmenu' verschijnt maar sluit niet met de oplossing die je hebt gegeven.:confused:


Greetz

Pascal
 
Moet die Unload Me een ander formulier sluiten dan datgene waarin de code staat?
 
Cobbe,

ja...

Het formulier 'Hoofdmenu' dat verschijnt bij het openen van Prestaties CCF sluit bij aanklikken van bv Alle CCF en de sheet Alle CCF verschijnt.

Maar als ik dezelfde code in de cmdWerKopij plaats werkt het niet.

Het formulier Hoofdmenu blijkt open tot ik zelf op een knop klik.

Greetz
 
Gebruik dan eens Unload frmHoofdmenu , dus de naam van dat formulier.
 
Cobbe,

Lukt ook niet...

Het formulier frmHoofdmenu blijft open en wanneer ik dan zelf op Alle CCF klik krijg ik de foutcode 424 object vereist.

Waarschijnlijk omdat ik op Alle CCF klik die zowiezo de form frmHoofdmenu sluit. (Sluiten van het form doet hij trouwens met alle buttons)

Uiteraard vind hij het object niet meer vandaar de foutcode.... Denk ik he... voor zover ik hier al wat geleerd heb...:confused:

Het lukt allemaal perfect wanneer ik of de uiteindelijke gebruiker op gelijk welke knop klikt he, maar het zou ideaal zijn als het automatisch zou gebeuren:rolleyes:

Ik heb al zoveel mogelijkheden gevonden, specifiek voor het probleem van de vraagsteller maar ik heb er voor mij geen oplossing kunnen in vinden.


Hoofdpijn, hoofdpijn...

Greetz
 
Cobbe,

Ik zit maar wat denken... (hersenen pijnigen)

Kan de knop cmdAlleCCF op het frmHoofdmenu niet geactiveerd worden zoals je bv met een 'ok' of 'cancel' kan doen.

Dan wordt de code van de knop gebruikt en dan is het probleem opgelost.

Alleen weet ik zelf niet hoe...:confused:

Greetz
 
Wellicht dat dat ook kan maar ik kan dat zo niet inschatten.
Wat is het result. als via F8 door de code loopt?
 
Dan komt het frmWerkKopij te voorschijn en als ik er dan op klik dan licht de code Private "Sub cmdWerkKopij_Click()" geel op
 
Dan moet je verder klikken, dan sluit het formulier en wordt een nieuw geopend.

Wanneer moet nu wat gebeuren?
Zoals ik denk moet er tussen die 2 formulieren iets anders gebeuren.
 
Er is niks meer om opnieuw te klikken...:confused:

In een notendop...

Tussen het opengaan van het bestand en dan het form frmHoofdmenu en de rest van de code moet dus de knop Alle CCF -cmdAlleCCF_Click()- geactiveerd worden



Het begint met het openen van het bestand "Creatie werkkopij"

Dat opent het form frmWerkKopij

Ik klik op de enige button... frmWerkKopij sluit en het bestand Prestaties CCF wordt geopend.

Bij het openen van Prestaties CCF verschijnt de form frmHoofdmenu. Dan klik ik op bv Alle CCF en de code doet verder zijn werk.

In plaats van te klikken wil ik de knop Alle CCF met VBA code activeren.
 
Laatst bewerkt:
Dan moet die Unload-code in dat bestand staan en niet in het openingsbestand.
 
Als ik die code in het tweede bestand ga zetten dan gaat hij die altijd uitvoeren telkens Prestaties CCF geopend wordt en das ook niet de bedoeling...

Prestaties CCF werkt perfect met alle buttons en forms. De bedoeling is een werkkopij te maken van het originele voor de chef...

Zoals ik al ondervonden met andere buttons gaat de code van het eerste bestand volledig tot het einde verder, zelfs wanneer het tweede bestand open is en de aktie van de code gebeurd in het tweede bestand.

Het is geen drama als het niet opgelost kan geraken... Het zou wel leuk zijn....

Bedankt toch al voor de moeite he
 
Laatst bewerkt:
Cobbe,

Ik ga slapen nu...

We zetten onze zoektocht verder.

Als je een oplossing hebt dan zie ik het wel.

Nogmaals bedankt en tot later


Greetz

Pascal
 
Kun je niet een voorbeeldbestand maken om de situatie na te bootsen?
Lijkt mij productiever.
 
Cobbe,

2 bestanden :

Test CCF = Prestaties CCF

Creatie Versie Pascal Test = Creatie Versie Pascal


Het begint bij Creatie Versie Pascal Test.

Natuurlijk zullen de parameters voor het openen van "Prestaties CCF" niet kloppen he als je het volledig wil uittesten bij jou :confused:

Code:
' Opent Prestatie CCF
  
'    ChDir "C:\Users\Pascal\Desktop"
'    Workbooks.Open Filename:= _
'        "C:\Users\Pascal\Desktop\Prestaties CCF.xlsm"
  
    ChDir "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties"
    Workbooks.Open Filename:= _
        "N:\BFA-M-AG-MA\CCF (externe zorgverstrekkers)\Prestaties\Prestaties CCF.xlsm"

let op : Alleen de knop Overzicht Alle CCF in Test CCF werkt.

Bekijk bijlage Creatie versie Pascal Test.xlsm

Bekijk bijlage Test CCF.xlsx

De bedoeling is nu dat de form Hoofdmenu sluit met een VBA code en dat de sheet Alle CCF opend. :shocked:

Groetjes

Pascal
 
Er zit toch geen Userform met de naam frmHoofdmenu in je CCF-bestand.
 
Inderdaad,

had er een xlsx van gemaakt, mss daarmee.

.xlsm = te groot.

Hoe krijg ik dat kleiner?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan