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

macro probleem bij afsluiten

Status
Niet open voor verdere reacties.

sharda002

Gebruiker
Lid geworden
21 mei 2010
Berichten
66
Hallo allemaal,


Ik heb een excelblad welke heet: "omzet en betaling overzicht"
In dit werkblad zit een macro waamree ik een ander excelblad open ( geen tabblad) deze heet "faktuur"

(er zijn dan dus 2 excelbladen geopend)

Nu wil ik bij het afsluiten van het excelblad "faktuur" de onderstaande macro uitvoeren

In mijn beleving zou die het excelblad "faktuur"moeten afsluiten (druk ja of nee) en in het excelblad "omzet en betaling overzicht" de regels van de macro moeten uitvoeren.
Dit doet de macro ook maar het excelblad "omzet en betaling overizicht"word afgeloten in plaats van het excelblad "faktuur"

wat doe ik nu fout?



Code:
Function Macro1()


 Windows("omzet en betaling overzicht.xls").Activate
Sheets("offnr").Select
Range("a2").Value = Range("a2").Value - 1
 
End Function
 
Een aantal dingen:

- Vanwaar een functie gebruiken?
- Geen Select gebruiken
- Als je ThisWorkbook.Close gebruikt, wordt het bestand afgesloten waar de code in staat en niet het huidige werkblad. Ik neem aan dat je ActiveWorkbook (iod) gebruikt.

Met vriendelijke groet,


Roncancio
 
Dat begrijp ik niet Roncancio, ik ben geen expert met macro,s maar een beginner.

Heb je suggesties voor een andere code??
 
Ok.
Stel dat je het bestand Factuur wilt afsluiten via bestand "omzet en betaling overzicht".

In de VBA van "omzet en betaling overzicht" gebruik je als code:

Code:
Workbooks("Factuur').Close SaveChanges:=True
Het bestand wordt afgesloten de eventuele wijzigingen opgeslagen.

Stel dat je de code in Factuur wilt zetten:
Code:
ThisWorkbook.Chose SaveChanges:= True
Het bestand waar de code in staat (ongeacht welk bestand actief is) wordt afgesloten en opgeslagen.
Het is maar net waar je voorkeur naar uitgaat.

Ik hoop dat ik wat duidelijker ben geweest.

Met vriendelijke groet,


Roncancio
 
oke bedankt, De code "macro1" die ik gebruik staat in de goede map "faktuur"

maar als ik op afsluit druk in het blad "faktuur" word er eerst op het andere blad "omzet en betaling overzicht" een functie uitgevoerd.zie de macro

de macro moet dus eerst op het andere blad iets doen en daarna het blad "faktuur" afsluiten.

deze functie heb ik gemaakt in "this workbook"

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = Macro1
End Sub

als ik nu het blad "faktuur" afsluit sluit hij de verkkerde map af namelijk"omzet en betaling overzicht"
 
Code:
With Workbooks("omzet en betaling overzicht.xls").Worksheets("offnr").Range("A2")
    .Value = .Value - 1
End With
ThisWorkbook.Close SaveChanges:=True

De waarde van cel A2 van omzet en betaling overzicht wordt met 1 verlaagd en vervolgens wordt factuur opgeslagen en afgesloten.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan