arjoderoon
Gebruiker
- Lid geworden
- 2 mei 2007
- Berichten
- 474
ik heb een erg uitgebreid bestand met data vanuit een aantal query's. Ik heb hier voor een vba script dat de data van 6 verschillende tabbladen op 1 tabblad plaats zodat ik met draaitabellen kan werken.
nu heb ik 1 schaduwblad met verwijzingen naar het blad met de samengevoegde data.
probleem waar ik tegen aanloop is dat ik nu de verwijzingen tot een x aantal regels heb ingezet, maar dat het ook voorkomt dat op het blad met samengevoegde data veel meer regels staan.
Ik zou eigenlijk graag willen dat ik met een script de verwijzingen in de regels door kopieer tot de laatste regel met data in het bestand waarin de data samen gevoegd is.
Zo uit mijn hoofd denk ik aan iets als het volgende:
-het script kijkt tot welk regel nummer het blad met samengevoegde data gevuld is.
-vervolgens kopieert het de formules over alle regels tot en met het laatste regel nummer door.
op deze manier wil ik ervoor zorgen dat ik nooit data mis.
Ik heb nu handmatig de regels met de daarin de verwijzingen tot en met regel 100.000 gekopieerd. Soms is dit ruim voldoende, maar ik zal al dat dit soms ook lang niet voldoende is, waardoor ik dus data mis en waardoor er dus foute conclusies getrokken worden.
Ik heb al een script dat op de 6 bladen met de data queries kijkt tot waar de data gevuld is, deze selecteert en kopieert naar het blad "samenvoeging". Dat gaat goed.
Ik zou het zelfde script nogmaals kunnen gebruiken om het laatste regel nummer op te halen tot waar op het blad "schaduwblad" de verwijzingen moeten komen. Alleen hoe ga ik er dat dan gebruiken in een script dat die verwijzingen ook daadwerkelijk kopieert?
Een aangezien het gaat om 200.000 regels over 27 kolommen betekent dat nogal wat verwijzingen, die het bestand er niet sneller op maken. Daarom zou ik de verwijzingen willen plakken, de corresponderende waarde die ermee opgehaald wordt, vervolgens slechts als waarde willen plakken en als ik het bestand de volgende keer weer refresh, dat dan de verwijzingen weer worden geplakt, en vervolgens weer als waarde geplakt worden.
(ik ontkom helaas niet aan een schaduwblad omdat ik een aantal voorwaardelijke parameters gecre�erd heb die nodig zijn voor de draaitabellen)
onderstaande is het script dat nu de data van de 6 bladen samenvoegd op 1 werkblad:
Hoe kan ik een dergelijk iets doen?
nu heb ik 1 schaduwblad met verwijzingen naar het blad met de samengevoegde data.
probleem waar ik tegen aanloop is dat ik nu de verwijzingen tot een x aantal regels heb ingezet, maar dat het ook voorkomt dat op het blad met samengevoegde data veel meer regels staan.
Ik zou eigenlijk graag willen dat ik met een script de verwijzingen in de regels door kopieer tot de laatste regel met data in het bestand waarin de data samen gevoegd is.
Zo uit mijn hoofd denk ik aan iets als het volgende:
-het script kijkt tot welk regel nummer het blad met samengevoegde data gevuld is.
-vervolgens kopieert het de formules over alle regels tot en met het laatste regel nummer door.
op deze manier wil ik ervoor zorgen dat ik nooit data mis.
Ik heb nu handmatig de regels met de daarin de verwijzingen tot en met regel 100.000 gekopieerd. Soms is dit ruim voldoende, maar ik zal al dat dit soms ook lang niet voldoende is, waardoor ik dus data mis en waardoor er dus foute conclusies getrokken worden.
Ik heb al een script dat op de 6 bladen met de data queries kijkt tot waar de data gevuld is, deze selecteert en kopieert naar het blad "samenvoeging". Dat gaat goed.
Ik zou het zelfde script nogmaals kunnen gebruiken om het laatste regel nummer op te halen tot waar op het blad "schaduwblad" de verwijzingen moeten komen. Alleen hoe ga ik er dat dan gebruiken in een script dat die verwijzingen ook daadwerkelijk kopieert?
Een aangezien het gaat om 200.000 regels over 27 kolommen betekent dat nogal wat verwijzingen, die het bestand er niet sneller op maken. Daarom zou ik de verwijzingen willen plakken, de corresponderende waarde die ermee opgehaald wordt, vervolgens slechts als waarde willen plakken en als ik het bestand de volgende keer weer refresh, dat dan de verwijzingen weer worden geplakt, en vervolgens weer als waarde geplakt worden.
(ik ontkom helaas niet aan een schaduwblad omdat ik een aantal voorwaardelijke parameters gecre�erd heb die nodig zijn voor de draaitabellen)
onderstaande is het script dat nu de data van de 6 bladen samenvoegd op 1 werkblad:
Code:
Sub dataplaatsen()
Application.ScreenUpdating = False
Sheetnames = Array("food-drug", "food-drug (2)", "aswatson", "aswatson (2)", "food", "food (2)")
For i = LBound(Sheetnames) To UBound(Sheetnames)
With Sheets(Sheetnames(i))
.Range(.Range("U2"), .Cells(.Rows.Count, 1).End(xlUp)).Copy Sheets("Samenvoeging").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
Next i
With Sheets("samenvoeging")
.Range("a1", "u1").ClearContents
Sheets("food-drug").Range("a1", "u1").Copy Sheets("samenvoeging").Range("A1", "u1")
End With
ThisWorkbook.RefreshAll
Application.ScreenUpdating = True
End Sub
Hoe kan ik een dergelijk iets doen?