• 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 - this workbook

Status
Niet open voor verdere reacties.

Cruimel

Gebruiker
Lid geworden
21 feb 2009
Berichten
56
Hallo forumleden,

Een volgende vraag. Versie 2003 excel - VBA.
Weten jullie hoe ik reeds bestaande VBA codes in het blad "this workbook" ongemoeid kan laten en er toch een code eraan kan toevoegen, dat zodra een bepaald bestand wordt geopend de gegevens worden bijgewerkt in het doel document.

Volgende code wil ik graag werkend krijgen:
In tabblad This Workbook
Private Sub Workbook_Open()
Range("A33:F60").FormulaArray = "=' C:\Users\admin\Documents\excelbestanden\excelvba\openstaande postenlijst maken\[sapbrondata.xls]Blad1'!R2C3:R33C9"
End Sub

Alleen staan er al veel gegevens. Hij houdt mijn code nu niet vast als ik dit er tussenplaats.
Wie weet raad?

dankjewel,
Cruimel
 
Je moet er wel aan toevoegen op welk blad de formule geplaatst moet worden bv.
Code:
[Blad1!A33:F60].FormulaArray = ..........
 
Hoi Rudi,

Dank voor je reactie,

Bedoel je dat de totaal formule zou kunnen zijn:
Private Sub Workbook_Open()
Range("A33:F60").FormulaArray = 'C:\Users\admin\Documents\excelbestanden\excelvba\openstaande postenlijst maken\[openstaandepostenlijst.xls]Blad2'!=' C:\Users\admin\Documents\excelbestanden\excelvba\openstaande postenlijst maken\[sapbrondata.xls]Blad1'!R2C3:R33C9"
End Sub

Voordat ik de boel in de war heb en een extra check. ;)


Cruimel
 
Neen, de naam v/h blad waar de formule moet komen gaat vooraan
Code:
Sheets("Naam van je doelblad waar de formule moet komen").Range("A33:F60").FormulaArray = "=' C:\Users\admin\Documents\excelbestanden\excelvba\openstaande postenlijst maken\[sapbrondata.xls]Blad1'!R2C3:R33C9"
 
Hoi Rudi,

Na een avond puzzelen, moet ik helaas zeggen dat het niet werkt. Het rare is dat als ik de code toepas in een excel versie waar "this workbook" verder leeg is de code prima werkt.
Maar op mijn werk heb ik een excel versie waar "this workbook" ook gevuld is met andere codes, echter wel gescheiden. Het zou dan toch moeten werken.
Private Sub Workbook_Open()
Sheet.[openstaandepostenlijst].Range("A33:F60").FormulaArray = "=' Q:\Debiteur\openstaande posten brieven\[sapbrondata.xls]Blad1'!R2C3:R29C8"

End Sub

Sheet("openstaandepostenlijst").Range, ook geprobeerd. Geen resultaat.

Is het misschien dan toch beter de code af te vangen met een excelformule in het doelblad? Wat zou dan de betrouwbaarste zijn?

Dankjewel,
Cruimel
 
Hallo Rudi,

Ik heb het opgelost. De VBA verwerkt in een tweetal opdrachten.
Hierdoor heb ik het blad "this workbook" kunnen omzeilen. Moet nu wel twee verschillende opdrachten opstarten, maar dat is geen probleem.

In iedergeval bedankt voor je tips..:thumb:

Cruimel
 
Hallo Rudi,

Ik heb het opgelost. De VBA verwerkt in een tweetal opdrachten.
Hierdoor heb ik het blad "this workbook" kunnen omzeilen. Moet nu wel twee verschillende opdrachten opstarten, maar dat is geen probleem.

In iedergeval bedankt voor je tips..:thumb:

Cruimel

Je kan een call gebruiken , net voor het einde van de eerste macro ( boven de End Sub ) zet je Call "en dan de naam van de macro " ! zonder sub () enkel de naam !
iets zoals in bijgevoegde voorbeeld
Code:
Sub wis_keuzecel_fac()    ' Op de tabbladen factuur

    [Q11,R11].ClearContents
  [COLOR="Navy"]Call maak_leeg[/COLOR]
End Sub

Sub maak_leeg()
    Application.ScreenUpdating = False
    Sheets("Fact (2)").Select
   [Q11:R11].ClearContents
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan