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

Koppelen van werkboeken

Status
Niet open voor verdere reacties.
Ik gebruik foutopsporing en krijg op volgende lijnen een error

Cobbe en andere ontwikkelaars,

PHP:
Private Sub Workbook_Open()
 
Dim sBestand As String
Dim pv As PivotTable
 
' Opent het gedeelde bestand.
Workbooks.Open "C:\Users\Pascal\Desktop\Test voor update\Versie AGMA.xlsm"
 
' Maakt een kopie van de benodigde data en kopieert dat als waarden in het bestand van de baas.
With Workbooks("Versie AGMA.xlsm")
    .Sheets("Apothekers").Range("A1:BG" & .Range("A36").End(xlUp).Row).Copy
 Workbooks("Versie Kolonel.xlsm").Sheets("Apothekers").Range("A1").PasteSpecial Paste:=xlPasteValues

    .Sheets("Kinesisten").Range("A1:BG" & .Range("A36").End(xlUp).Row).Copy
 Workbooks("Versie Kolonel.xlsm").Sheets("Kinesisten").Range("A1").PasteSpecial Paste:=xlPasteValues

    .Sheets("MedGen").Range("A1:BG" & .Range("A36").End(xlUp).Row).Copy
 Workbooks("Versie Kolonel.xlsm").Sheets("MedGen").Range("A1").PasteSpecial Paste:=xlPasteValues

    .Sheets("Tandartsen").Range("A1:BG" & .Range("A36").End(xlUp).Row).Copy
 Workbooks("Versie Kolonel.xlsm").Sheets("Tandartsen").Range("A1").PasteSpecial Paste:=xlPasteValues

    .Sheets("Specialisten").Range("A1:BG" & .Range("A36").End(xlUp).Row).Copy
 Workbooks("Versie Kolonel.xlsm").Sheets("Specialisten").Range("A1").PasteSpecial Paste:=xlPasteValues
 
' Sluit het gedeelde bestand.
    .Close
End With
' Werkt de draaitabellen bij.
With Sheets("DT Apo")
    For Each pv In .PivotTables
        pv.RefreshTable
    Next
End With
 
End Sub

De eerste lijn komt in geel :
PHP:
Private Sub Workbook_Open()

en de volgende ook :
PHP:
Workbooks.Open "C:\Users\Pascal\Desktop\Test voor update\Versie AGMA.xlsm"

Dus daar zou al iets fout zijn. Voor de eerste lijn weet ik het niet en voor de tweede lijn is het adres van de file juist dus weet ik ook niet wat daar fout zit.

Suggesties?

Groetjes

Pascal
 
Waar heb je die code staan en in welk werkboek?
 
Cobbe,

De code staat in het werkboek Versie Kolonel.xlms en de code staat in Thisworkbook.

De bedoeling is dat -Versie AGMA- wordt geopend en dat hij alle sheets kopieert naar -Versie Kolonel- Alle gegevens worden als waarde gekopieerd en de draaitabellen moeten een update krijgen.

Alle bestanden zijn gesloten. Ik open het bestand -Versie Kolonel- en de code gaat in werking want Excel opent het juiste Excel bestand nl -Versie AGMA-.

Ik begrijp dus niet waarom er een fout wordt gemeld bij foutcontrole voor de titel en het adres van het bestand dat moet worden geopend.

Waar zit de fout?

Greetz

Pascal
 
Ik zou adviseren om Excel eens helemaal af te sluiten en herstarten.
Heb je die punt al eens weggehaald voor die .Range ?
 
Cobbe,

Dit is de nieuwe code, ik heb de . weggelaten bij .Range en blijkbaar ook ergens een spatie op iedere lijn tussen Workbooks en ("De naam van het workbook")



PHP:
Private Sub Workbook_Open()
 
Dim sBestand As String
Dim pv As PivotTable
 
' Opent het gedeelde bestand.
Workbooks.Open "C:\Users\Pascal\Desktop\Test voor update\Versie AGMA.xlsm"
 
' Maakt een kopie van de benodigde data en kopieert dat als waarden in het bestand van de baas.
With Workbooks("Versie AGMA.xlsm")
    .Sheets("Apothekers").Range("A6:BG" & Range("A10000").End(xlUp).Row).Copy
    Workbooks("Versie Kolonel.xlsm").Sheets("Apothekers").Range("A6").PasteSpecial Paste:=xlPasteValues

    .Sheets("Kinesisten").Range("A6:BG" & Range("A10000").End(xlUp).Row).Copy
    Workbooks("Versie Kolonel.xlsm").Sheets("Kinesisten").Range("A6").PasteSpecial Paste:=xlPasteValues

    .Sheets("MedGen").Range("A6:BG" & Range("A10000").End(xlUp).Row).Copy
    Workbooks("Versie Kolonel.xlsm").Sheets("MedGen").Range("A6").PasteSpecial Paste:=xlPasteValues

    .Sheets("Tandartsen").Range("A6:BG" & Range("A10000").End(xlUp).Row).Copy
    Workbooks("Versie Kolonel.xlsm").Sheets("Tandartsen").Range("A6").PasteSpecial Paste:=xlPasteValues

    .Sheets("Specialisten").Range("A6:BG" & Range("A10000").End(xlUp).Row).Copy
    Workbooks("Versie Kolonel.xlsm").Sheets("Specialisten").Range("A6").PasteSpecial Paste:=xlPasteValues
 
' Sluit het gedeelde bestand.
    .Close
End With
' Werkt de draaitabellen bij.
With Sheets("DT Apo")
    For Each pv In .PivotTables
        pv.RefreshTable
    Next
End With
 
End Sub

Ik heb A1 vervangen door A6 want daar beginnen de gegevens. Ik kreeg eerst een foutmelding voor samengevoegde cellen. Vanaf A6 kan dat niet meer.

Het werkt maar hij kopieert enkel maar de eerste 25 lijnen.

Greetz

Pascal
 
Dat heeft er weer mee te maken dat die laatste regelbepaling niet correct verloopt.
Zoek daar maar een andere methode voor er zijn er genoeg.:)
Geef anders eens een vaste waarde in.
 
Cobbe,

Kan je mij niet op weg helpen. Ik heb deze code gekregen van Elsendoorn. Een ruwe versie en heb dan de parameters aangepast. Ik ben echter een echte VBA-leek. Ik versta wel wat bepaalde codes doen, maar om er zelf een te schrijven.

Bedankt

Pascal
 
Vervang deze:
Code:
Range("A10000").End(xlUp).Row

telkens door:

Code:
Range("A" & rows.count).End(xlUp).Row

Dan zou de laatste rij correct bepaald moeten zijn.
 
Cobbe,

Ik heb alle codes aangepast en toch kopieert hij enkel de eerste 25 lijnen, maar : :(

De eerste sheet (Apothekers) heeft maar 25 lijnen en hij zet dit blijkbaar zo verder voor de volgende sheets.

Heeft dit te maken met het feit dat alle Sheets tussen 1 With - End with staan?

Ik denk dat excel zo alle sheets tegelijkertijd telt en aangezien de eerste sheet er maar 25 heeft...

Ik heb geprobeerd met de volgorde te veranderen want de Sheet Specialisten heeft momenteel 246 lijnen maar hij blijft het beperken tot 25 lijnen

Dus nog steeds een probleempje.

Alvast bedankt voor de moeite he...

Greetz

Pascal
 
Zet er dan telken de sheet bij:
Code:
.Sheets("Apothekers").Range("A6:BG" & .Sheets("Apothekers").Range("A" & rows.count).End(xlUp).Row).Copy
misschien hebt ge geluk.
 
Cobbe,

FANTASTISCH!!!

Het werkt, het werkt, het werkt.

Je hebt mij ongelooflijk goed geholpen. :)

Ik ben al blij dat het kopiëren lukt.


Ik heb voor elke sheet een draaitabel en onderaan de code zie je dat hij een update uitvoert. (Zie : ' Werkt de draaitabellen bij.)

Moet ik nu voor elke sheet de code herhalen? tussen With en With End?

De code die er reeds staat spreekt over Sheets("DT Apo") dit moet Sheets("Apothekers") zijn zeker? en dan een update met de daaraan verbonden draaitabel?

En zo verder voor alle andere sheets die een draaitabel hebben?

Als dit nog in orde zou komen dan zal ik morgen een tevreden baas hebben.


Ik heb een mailtje verstuurd om betalend lid te worden en bij de eerst volgende HelpMijdag kunnen we op al jullie hulp eens een goed glas drinken.

Greetz

Pascal
 
Ben niet zeker of die draaitabellen zo bijgewerkt worden maar het is het proberen waard, denk ik zo:
Code:
For Each Sh In ThisWorkbook.Sheets
 With Sh
    For Each PV In .PivotTables
        PV.RefreshTable
    Next
 End With
Next
 
Cobbe,

Werkt perfect.

Bedankt voor de hulp en tot de volgende

Groetjes

Pascal
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan