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

In Excel automatisch rijen kopiëren naar ander tabblad

Status
Niet open voor verdere reacties.

JordyWegman

Gebruiker
Lid geworden
5 jun 2015
Berichten
8
Beste,

Ik moet veel verschillen trekken tussen diverse databases. Op dit moment heb ik zelf een macro geschreven/gemaakt die dit werk voor mij doet, maar ik wil als toevoeging dat hij deze overgehouden data apart in een blad zet. Het lukt mij redelijk, maar het loopt vast zodra de formule nogmaals uitvoer. Dit komt omdat ik typ: Sheets.Add After:=ActiveSheet en de marco Blad2 zegt. Dit kan één keer, maar voer ik de formule nogmaals uit dat wordt het Blad3 en de macro reageert alleen als het blad Blad2 heet. Ik heb geprobeerd om het Bladn te noemen, maar dit gaat niet (wiskundig gezien is n dan 'oneindig').

Wat je zult zien in de test file is dat ik A296 zal filteren zodat hij gevuld moet zijn en A297 moet leeg zijn. Ik heb maar één keer de opzet nodig om het aan te passen naar mijn verschillende cellen.

Zou iemand mij hier mee kunnen helpen?

PS: Ik had een mooi voorbeeld gevonden op deze site (zelfde Titel), maar hij is toch iets te ingewikkeld voor mij om aan te passen naar mijn excel. In de bijlage zit ook dit bestand (Test 2 rapportage 25-9-2012)
 

Bijlagen

Ik heb inmiddels zelf een extra vast blad gecreëerd waar ik dan mijn dumps in zet. Ik maak nu alleen voor elke filter apart een macro aan. Dat komt er dan als volgt uit te zien.


Sub VerschillenMS110()
'
' VerschillenMS110 Macro
'

'
Sheets("PO2 DUMP").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$EZ$948").AutoFilter Field:=69, Criteria1:="<>"
ActiveSheet.Range("$A$1:$EZ$948").AutoFilter Field:=72, Criteria1:="="
Range("A1:BT5000").Select
Range("BT5000").Activate
Selection.Copy
Sheets("Verschillen Afmelding").Select
Range("A80").Select
ActiveSheet.Paste
Sheets("PO2 DUMP").Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets("Dashboard").Select
End Sub


Sub VerschillenA1510()
'
' VerschillenA1510 Macro
'

'
Sheets("PO3 DUMP").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$EZ$948").AutoFilter Field:=47, Criteria1:="<>"
ActiveSheet.Range("$A$1:$EZ$948").AutoFilter Field:=53, Criteria1:="="
Range("A1:BA5000").Select
Range("BA5000").Activate
Selection.Copy
Sheets("Verschillen Afmelding").Select
Range("A100").Select
ActiveSheet.Paste
Sheets("PO3 DUMP").Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets("Dashboard").Select
End Sub


Weet iemand of je dit ook kunt samen voegen tot één macro? Als tijdelijke oplossing wil ik nu een extra macro aanmaken die al deze macro's stuk voor stuk aan klikt en die dan in mijn sheet zet.
 
hallo Jordy, welkom hier.
ik ben toch benieuwd: wil je steeds een nieuw blad aan maken?
of mogen die verschillen steeds toegevoegd worden aan het blad "verschillen"
 
Beste Sylvester,

Ik heb het zelf nu allemaal op één blad en dit lijkt mij ook het gemakkelijkst en snelst.
 
Helaas nog niet, want ik zit met nog veel verschillende formules. Ik wil de bovenstaande formule in één formule hebben als dit mogelijk is.
 
Ik heb hem nu toegevoegd en zijn wat extra macro's erbij ingezet, maar deze zou ik graag in één formule willen hebben. Bedankt voor het nemen van de moeite!
 

Bijlagen

Jordy, ik begrijp het nog niet helemaal.
kun je duidelijk maken waarop je wilt filteren ?
er staat in je macro bvb:
Criteria1:="<>" of:
Criteria1:="="

het is gebruikelijk om er een waarde achter te zetten bvb:
Criteria1:="<>5"
 
Sylvester, natuurlijk want ik zie dat ik ook niet alles heb uitgelegd. In mijn werkproces moeten activiteiten achter elkaar worden afgemeld. Twee voorbeelden hier van zijn A296 en A297.

A296 = Opdracht uitgegeven door opdrachtgever
A297 = Opdracht geaccepteerd door aannemer

Ik wil in mijn macro hier op filteren en kopiëren naar een ander tabblad. De Macro Criteria1:="<>" geeft aan dat hij gevuld moet zijn en Criteria1:="=" geeft aan dat dit veld leeg moet zijn. Terug naar de benaming: Als de waarde in bij A296 is gevuld (opdracht is uitgegeven) wil ik weten of er opdrachten zijn die wij niet hebben geaccepteerd, dus A297 moet leeg zijn. Ik heb deze trouwens met een Marco Opname gemaakt.

Ik hoop dat dit het iets duidelijker voor je maakt. Zelf ben ik nu ook bezig met het zoeken van de oplossing maar stuit ook op een extra probleem. Als ik één macro heb gedraaid en daarna nog één draai om een uitdraai te kopiëren krijg ik een foutmelding: Fout 1004 tijdens uitvoering: Methode AutoFilter van klasse Range is mislukt. Druk ik nog een keer op de zelfde macro dan krijg ik niet meer de foutmelding.
Foutmelding Fout 1004.PNG
Het handigst is natuurlijk om deze melding proactief te vermijden, maar ik weet dat er een manier is dat VBA zelf op Beëindigen kan klikken en nogmaals de macro draait. Misschien dat iemand anders dit weet?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan