Springen tussen macro's

Status
Niet open voor verdere reacties.

jan2007

Gebruiker
Lid geworden
11 jan 2007
Berichten
65
Geacht forum,

Ik hoop dat ik nog een vraag mag stellen, want het zijn er inmiddels al wel veel geweest.:o

De onderstaande macro (Calculatie_Halen) in werkmap 1 triggert de 2e macro (Workbook_Open) van werkmap2 Echter er volgt een foutmelding ("Subscript valt buiten bereik")

Code:
Sub Calculatie_Halen()

Dim Calculatienummer As String

    ChDir "D:\Calculaties:"
    Calculatienummer = InputBox("Geef Calculatienummer")
    On Error Resume Next
    Workbooks.Open Filename:=Calculatienummer, UpdateLinks:=3
      
'Als het een niet bestaand nummer is wordt de standaard dialoogbox geopend:
    Calculatienummer = Application.GetOpenFilename
    Workbooks.Open Filename:=Calculatienummer, UpdateLinks:=3
    
    On Error GoTo 0

End Sub

Code:
Private Sub Workbook_Open()


        Dim CelInhoud As Integer
        Dim n As Integer
        
        ChDir "D:\Programma:"
        Workbooks.Open Filename:="Prijslijst.xls"
        CelInhoud = Workbooks("Prijslijst.xls").Sheets("PRIJSLIJST").Range("L4").Value
        n = CelInhoud + 1
        Workbooks("Prijslijst.xls").Sheets("PRIJSLIJST").Range("L4").Value = n
        Workbooks("Prijslijst.xls").Close SaveChanges:=True
        
End Sub

De vraag is waarom het fout gaat.
De foutmelding komt op deze regel:
CelInhoud = Workbooks("Prijslijst.xls").Sheets("PRIJSLIJST").Range("L4").Value

mvrgr

Jan 2007
 
Laatst bewerkt:
Bestaat het tabblad PRIJSLIJST?

Is de celinhoud van L4 wel te vatten met een Integer?
 
Bestaat het tabblad PRIJSLIJST?

Is de celinhoud van L4 wel te vatten met een Integer?

Dag Wigi,

Het tablad PRIJSLIJST bestaat en celinhoud C4 is een getal, dus daar kan het niet aan liggen.
Het bijzondere is, dat als je alleen de 2e marco laat lopen er GEEN foutmelding komt.:confused: Met andere woorden, het probleem wordt kennelijk veroorzaakt doordat gesprongen worden van de ene naar de andere macro.

mvrgr

Jan2007
 
Dag Wigi,

Het tablad PRIJSLIJST bestaat en celinhoud C4 is een getal, dus daar kan het niet aan liggen.
Het bijzondere is, dat als je alleen de 2e marco laat lopen er GEEN foutmelding komt.:confused: Met andere woorden, het probleem wordt kennelijk veroorzaakt doordat gesprongen worden van de ene naar de andere macro.

mvrgr

Jan2007

Toch leuk te ervaren dat ik, na 2 maanden na mijn eerste kennnismaking met VBA, in staat ben een vraag te stellen waar zelfs de Giga's hun tanden blijkbaar op stuk bijten:D
toch?

mvrgr

Jan2007
 
Toch leuk te ervaren dat ik, na 2 maanden na mijn eerste kennnismaking met VBA, in staat ben een vraag te stellen waar zelfs de Giga's hun tanden blijkbaar op stuk bijten:D
toch?

Oh nee hoor. Als je die bestandjes bijhangt zal het meer dan waarschijnlijk snel uitgeklaard zijn.
 
Dag Wigi,

Ga ik zsm doen, moet (helaas) eerst iets anders doen.

mvrgr

Jan2007

Dag Wigi,

Hier zijn dan de bestandjes. Het zijn er 3 stuks:

  1. Test2_Jan2007.xls
  2. 07.150.xls
  3. Prijstest.xls

Het is de bedoeling dat je eerst het 1e bestand opent (Test2_jan2007). Met de macro (Calculatie_Halen) in dit bestand open je het 2e bestand (07.150). Door de opening van het 2e bestand wordt het 3e bestand (Prijstest) automatisch geopend. Althans dat is de bedoeling maar hier gaat het mis. (Als je alleen de macro van 07.150 laat lopen welke het bestand Prijstest opent, dan gaat het wel goed).

Ik hoop dat het duidelijk is.

Mvrgr

jan2007
 

Bijlagen

Ik krijg geen foutmelding. L4 wordt een 1 na uitvoering macro.
 
Hij blijft het goed doen.

Ik heb ook dit veranderd, maar dat enkel de macro ten goede komen ;-)

Code:
Private Sub Workbook_Open()
    Workbooks.Open Filename:="Prijstest.xls"
    With Workbooks("Prijstest.xls").Sheets("PRIJSLIJST").Range("L4")
        .Value = .Value + 1
    End With
    Workbooks("Prijstest.xls").Close True
End Sub

Wigi
 
Hij blijft het goed doen.

Ik heb ook dit veranderd, maar dat enkel de macro ten goede komen ;-)

Code:
Private Sub Workbook_Open()
    Workbooks.Open Filename:="Prijstest.xls"
    With Workbooks("Prijstest.xls").Sheets("PRIJSLIJST").Range("L4")
        .Value = .Value + 1
    End With
    Workbooks("Prijstest.xls").Close True
End Sub

Wigi

Dag Wigi,

Bij mij doet hij het alleen goed als ik het bestand "Prijstest" eerst openen en daarna de macro's start zoals eerder omschreven. Als ik het bestand "Prijstest" gesloten laat gaat het mis.

mvrgr

jan2007
 
Aangezien ik het probleem niet heb, is het bijna onmogelijk voor mij om te zien hoe je het kan verhelpen.
 
Aangezien ik het probleem niet heb, is het bijna onmogelijk voor mij om te zien hoe je het kan verhelpen.

Inderdaad. Het enige wat ik kan verzinnen is dat ik werk met "Excel for Mac", op een Apple computer dus. Het is mij bekend dat hier kleine verschillen zijn met de versie voor Windows. Misschien weet jij een site welke speciaal gericht is op "Excel for Mac"?

In ieder geval vast bedankt voor je moeite:thumb:

Mvrgr

jan2007
 
Neen, googlen dan maar...

Googelen levert ook niets op.

Nog een laatste poging: het blijkt dat als ik in de laatste macro die wordt aangesproken alles weglaat behalve
Code:
 Workbooks.Open Filename:="Prijstest.xls"
de macro deze regel gewoon negeert :confused:

Wie kan mij verder helpen??

mvrgr

jan2007
 
Googelen levert ook niets op.

Nog een laatste poging: het blijkt dat als ik in de laatste macro die wordt aangesproken alles weglaat behalve
Code:
 Workbooks.Open Filename:="Prijstest.xls"
de macro deze regel gewoon negeert :confused:

Wie kan mij verder helpen??

mvrgr

jan2007

Het wil allemaal niet zo lukken. Misschien moet ik een geheel nieuwe benadering kiezen met geheel andere oplossing.

Het is allemaal te doen om:
  1. Als er een bepaald bestand wordt geopend wordt er een extra menu toegevoegd aan de menubalk.
  2. Er kunnen meerdere bepaalde bestanden worden geopend.
  3. Als het laatste bepaalde bestand wordt gesloten moet het extra menu worden verwijderd.

Ik ben dus op zoek naar een soort teller, welke het aantal geopende bepaalde bestanden telt, en dat zodra dit aantal nul wordt het extra menu kan worden verwijderd.
Wie helpt mij op weg?

mvrgr

jan2007
 
Laatst bewerkt:
Die code opstellen is waarschijnlijk veel moeilijker dan uitvissen waarom het niet werkt in de eerste plaats. Verkies dus maar het laatste.
 
Die code opstellen is waarschijnlijk veel moeilijker dan uitvissen waarom het niet werkt in de eerste plaats. Verkies dus maar het laatste.

Hallo Wigi,

Het probleem heeft te maken met een mogelijke bug in het programma "Office for Mac 2004". :confused: Dit is dus moeilijk op te lossen.
Ik heb nu een tijdelijke oplossing gevonden door een teller te maken in blad1 van de Persoonlijke macrowerkmap. Als er een (bepaalde)werkmap wordt geopend wordt er een macro aangeroepen in de persoonlijke macrowerkmap die daar een teller met 1 verhoogd en als er een (beppaalde) map wordt gesloten wordt er daar een macro aangeroepen die de teller daar met 1 verlaagd. Dit werk naar behoren.:)
Echter ik zou liever zien dat ik een teller kon bijhouden in een txt file of zo, omdat het installeren op een andere (Apple) computer vereist dat je dan eerst de macro's aanmaakt in de persoonlijke werkmap van de andere computer (of gebruiker).

Groeten,

Jan2007
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan