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

Pauze in een macro

Status
Niet open voor verdere reacties.

robdgr

Verenigingslid
Lid geworden
8 sep 2001
Berichten
4.430
Office versie
Microsoft 365
Ik heb een macro opgenomen, die een kopie maakt van een factuur en die kopie
plakt in een nieuw bestand. Daar maakt hij opnieuw een kopie van alle
gegevens en plakt deze als waarden.

In de macro wil ik ook meenemen dat het nieuwe bestand wordt opgeslagen met de combinatie van debiteurennummer en factuurnummer. Dat lukt helaas niet, omdat de macro vastlegt wat ik de eerste keer doe en er dus maar één naam mogelijk is.

Is er een mogelijkheid de macro op dat punt te stoppen, de opslagactie handmatig te laten uitvoeren en daarna weer verder te gaan?

Alvast dank voor het meedenken.

Rob
 
Hoi rdg1314,

Een pauze zal niet lukken. Wat je wel kunt doen is in de macro een zogenaamde inputbox stoppen waar je de naam van het bestand kunt invullen. Ik hoop dat je een beetje ervaring hebt met VBA.
De regels kunnen zijn:
Dim MyNaam
MyNaam = InputBox("Welke naam dient het bestand te hebben?", "Naamgeving")
ActiveWorkbook.SaveAs Filename:=MyNaam & ".xls"

Dit zorgt er voor dat het kopietje in dezelfde map komt te staan als het origineel, maar dan met de naam zoals jij die opgeeft. Je hoeft geen ".xls" in te vullen want dat staat al in de macro.
Als het kopietje gesloten moet worden zodat je met het vorige bestand verder gaat, dan kun je onder bovenstaande drie regels neerzetten:
ActiveWorkbook.Close

Het is eventueel ook mogelijk om de naam automatisch te genereren mits de naam van de debiteur en het factuurnummer altijd op dezelfde plaats staan.

Als je er niet uitkomt, zip dan je excelbestand en zet het even op dit forum.

Groeten,

Richard
 
Richard,

Dank voor je reactie, je helpt me een heel eind op de goede weg. Inderdaad staan het debiteurnummer en het factuurnummer steeds op dezelfde plek en ik had in mijn macro meegenomen dat de bestandsnaam moest beginnen met het debiteurnummer, dan een streepje en dan het factuurnummer, maar die uitvoering kwam niet goed.

Ik ben geen VBA-deskundige maar krijg niet het klamme zweet als ik regels moet aanpassen. Echter, mijn kennis is te klein voor de juiste vermeldingen. Dus als je me kunt helpen met een aanvulling hoe ik het volledige pad vermeld, dan denk ik dat het moet gaan lukken.

Met vriendelijke groet,

Rob



Geplaatst door richard1970
Hoi rdg1314,

Een pauze zal niet lukken. Wat je wel kunt doen is in de macro een zogenaamde inputbox stoppen waar je de naam van het bestand kunt invullen. Ik hoop dat je een beetje ervaring hebt met VBA.
De regels kunnen zijn:
Dim MyNaam
MyNaam = InputBox("Welke naam dient het bestand te hebben?", "Naamgeving")
ActiveWorkbook.SaveAs Filename:=MyNaam & ".xls"

Dit zorgt er voor dat het kopietje in dezelfde map komt te staan als het origineel, maar dan met de naam zoals jij die opgeeft. Je hoeft geen ".xls" in te vullen want dat staat al in de macro.
Als het kopietje gesloten moet worden zodat je met het vorige bestand verder gaat, dan kun je onder bovenstaande drie regels neerzetten:
ActiveWorkbook.Close

Het is eventueel ook mogelijk om de naam automatisch te genereren mits de naam van de debiteur en het factuurnummer altijd op dezelfde plaats staan.

Als je er niet uitkomt, zip dan je excelbestand en zet het even op dit forum.

Groeten,

Richard
 
Beste Rob,

Dat kan door eerst de mapping aan te passen:
Dim MyNaam
MyNaam = InputBox("Welke naam dient het bestand te hebben?", "Naamgeving")
ChDir "C:\Documents and Settings\Eigenaar\Mijn documenten\Excellerend.nl"
ActiveWorkbook.SaveAs Filename:=MyNaam & ".xls"

Mocht je de naam automatisch wilen laten genereren, dan kan dat door in de macro te zetten:
MyNaam = Range("A1").Value & "-" & Range("B1").Value. In dit geval staan debiteur- en factuurnummer in de cellen A1 en B1. Deze regel vervangt dan de regel met de InputBox.

Op een andere manier kreeg ik het niet voor elkaar. Een ander misschien?
Want op deze manier moet je voor je originele bestand msischien weer de mapping terug aanpassen, of heb je in de code staan ActiveWorkbook.Save?

Enne, je hoeft niet het hele bericht te quoten hoor ;)

Succes,

Richard
 
Laatst bewerkt:
Richard,

Het is gelukt. Dank. Heb een andere vraag geplaatst over een factuurnummer. Wil je daar ook even naar kijken?

Dank,

Rob
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan