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

opslaan en automatisch verder + macro te lang

Status
Niet open voor verdere reacties.

Niekydemus

Gebruiker
Lid geworden
17 jul 2006
Berichten
21
Goedeavond,

Ik zou graag een macro willen laten lopen die opslaat maar vervolgens automatisch verder gaat. Nu neem ik een macro op en sla een eerste groep op onder 1 vervolgens hetzelfde voor groep 2 etc etc. Maar wanneer ik de macro afspeel moet je voor groep 1 bevestigen dat hij opgeslagen moet worden en zo verder. Dat brengt nog steeds met zich mee dat je er arbeid aan te pas komt, hoe los ik dit probleem op?

Tweede vraag, hij geeft aan dat de macro te lang is. Wanneer is een macro te lang? Teveel 'zware' handelingen, dus met teveel formules en koppelingen. Of dat je bijvoorbeeld bij het opnemen even naar beneden scrollt zodat cel 1 tot en met bij wijze van spreken 66.000 benoemd wordt.

Bij voorbaat dank!

Gr. Niek
 
Beste Niek

Wat bedoel je met een groep opslaan en dan verdergaan? Wil je een bestand opslaan en die sluiten om met andere bestanden verder te rekenen of zo? Omschrijf het iets nauwkeuriger.
Wat betreft de omvang, volgens mij zit er aan een sub een maximum qua geheugengebruik. Kun je je sub niet opdelen in subsubs en er één sub boven zetten?
Werk dan met bijv:
Sub start()
Application.Run "'Macro Niek.xls'!Importeer_Tekstbestand"
Application.Run "'Macro Niek.xls'!Bewerk_gegevens"
End sub

Dat maakt het overzichtelijker en makkelijker om controles in te bouwen of meldingen weer te geven.

Groeten,

Richard
 
Dag Richard,

Sowieso bedankt voor het antwoord op de tweede vraag!

Wat ik precies met de 1e vraag bedoel. Ik ben bezig met een macro die twee bestanden op gaat halen en samen gaat voegen met enkele formules en bewerkingen. Uit die bewerkingen komt een hele lijst met gegevens. Die lijst met gegevens wil ik niet als één bestand opslaan (meerdere mensen hebben verschillende delen nodig). Met een filter wil ik daarom bij het opnemen van de macro 'groep 1' uitfilteren en opslaan. Vervolgens filter ik 'groep 2' uit en laat die opslaan enzovoort tot en met 'groep 99'.

Nu wil ik bij het opnemen van de macro wel de naam laten benoemen, maar wanneer ik de macro af laat spelen, wil ik dat er automatisch de naam 'groep 1' enz. gegeven wordt, zonder dat ik tussentijds voor groep 1 en groep 2 en groe.. enz. moet bevestigen dat het opgeslagen moet worden. Hoop dat het zo wat duidelijker verwoord is.

Groeten Niek
 
Kun je een voorbeeldje plaatsen met wat verzonnen gegevens voor bijv. 3 groepen?
Dan is het wat duidelijker.

Lijkt mij dat het met enkele repeterende subs opgelost moet kunnen worden.
 
In de geest van het forum, geef eens je oplossingsmethode. Anderen kunnen er nog wat van leren misschien.

Bedankt.
 
Akkoord,

Ik zal kort de opgebouwde macro uitleggen. Ik heb een resultaat:

Kolom 1 Kolom 2
1 a
2 b
3 c
4 d
5 e
6 f

Rij met 1-a is representatief voor bedrijf 1. Omdat een aantal van de medewerkers alleen die gegevens nodig hebben, wil ik die apart opslaan zodat ze dat zonder naar de andere gegevens te kijken naar hun eigen map kunnen kopieren. Dus bij het opnemen van de macro, laat ik 1-a opslaan onder naam 1a, 2-a laat ik vervolgens opslaan onder 2a enz.

Nu was het probleem dat ik bij het afspelen van de macro steeds moest bevestigen dat de computer 1a op moest slaan vervolgens 2a enz. Dat kostte me alsnog veel tijd.

Dus mijn vraag was, waarom vraagt de computer om een bevestiging.? Dat was omdat er bij het opnemen van de macro al bestanden met dezelfde inhoud en naam opgeslagen waren, uiteraard in dezelfde map, daardoor moest ik het laten vervangen van die oude bestanden bevestigen.

Stom, maar we zijn op de goede weg. In ieder geval bedankt voor de uitleg, en ik zal in het vervolg eigen 'oplossingsmethoden' ook kort uitleggen.

M.v.g. Niek
 
Dus heb je

Code:
Application.DisplayAlerts = False

gebruikt?

Bedankt voor de moeite.
 
Onderstaande gegevens zijn onderdeel van mijn macro. Wigi, wat ik uit jou 'code' begrijp is dat je het oude bestand simpelweg overschrijft. Dat is in mijn ogen gemakkelijker dan mijn manier. Wat ik namelijk heb gedaan is de bestanden, die bij het opnemen van de macro, opgeslagen zijn. Even verwijderd zodat de nieuwe bestanden zonder vraag naar bevestiging opgeslagen worden. Nu heb ik pas een aantal boeken uit de bibliotheek gehaald over VBA, en ben van voornemens om hard te gaan studeren. Maar ben nog niet zover, dus waar zou jou code ergens tussen horen. (Application.DisplayAlerts = False)


ActiveWorkbook.SaveAs Filename:= _
"C:\werkmap ad\niek\Zelfstudie\tijdelijk\Oefenen macro\Basisbestanden macro\Bestanden opgeslagen binnen macro\filterresultaat 1.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Selection.AutoFilter Field:=2, Criteria1:="b"
ActiveWorkbook.SaveAs Filename:= _
..........
.....



M.v.g. Niek
 
Probeer dis eens:

Code:
Application.DisplayAlerts = False 'zie hier
ActiveWorkbook.SaveAs Filename:= _
"C:\werkmap ad\niek\Zelfstudie\tijdelijk\Oefenen macro\Basisbestanden macro\Bestanden opgeslagen binnen macro\filterresultaat 1.xls"
Application.DisplayAlerts = True 'zie hier
Selection.AutoFilter Field:=2, Criteria1:="b"
ActiveWorkbook.SaveAs Filename:= _
..........
.....

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan