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

Printknop en bestandnaam maken met cellen

Status
Niet open voor verdere reacties.

Timmeke

Gebruiker
Lid geworden
7 mei 2008
Berichten
21
Ik heb een werkmap gemaakt en het eerste blad noemt Factuur.
Nu wil ik dit blad gemakkelijk kunnen afdrukken het gaat over het bereik van A1 tot I63
Dit zou hij dan moeten afdrukken, kan dit door een extra knop te plaatsen in het document?

Vervolgens wil ik ook een extra functie hebben waarbij hij zelf opslaat en een bestandsnaam genereert met de inhoud van cel G12 en F3. Hij zou dit dan ook in een map in mijn documenten moeten opslaan.

Kan iemand mij hierbij helpen???
Ik reeds gelezen dat het met VB moest lukken maar daar ben ik niet in thuis.

Alvast bedankt.
 
printen van een bereik, zonder vba, kun je doen door het bereik te selecteren en dan naar menu bestand > afdruk bereik > "bepalen"
te gaan.Met
menu bestand > pagina-instelling kun je bij aanpassen aan: 1 bij 1 pagina aangeven en verder kun je daar ook marges en voet/kopteksten aangeven.

om op te slaan zoals je aangeeft heb je vba nodig:

Code:
ActiveWorkbook.SaveAs Filename:=bestandsnaam

De bestandsnaam haal je uit de cellen die jij wil bv
bestandsnaam=range("g12"),value

Het pad moet daar nog aan worden toegevoegd, anders wordt het in mijn documenten opgeslagen,

mvg leo
 
Als ik bovenstaande formule zou gebruiken slaat hij dan alleen het eerste werkblad op of de ganse werkmap. Want de andere werkbladeren zou hij eigenlijk niet moeten opslaan.

Moet ik deze formule dan gewoon plakken in de worksheet??
Bij die range kan ik daar twee cellen in vermelden met een ; tussen?
Hoe moet ik de opslaglocatie erbij definiëren?

Is het niet handiger om ook in VB die printopdracht te formuleren?
Ik heb naar die formule gekeken waar leofact naar verwees gekeken maar het is me niet volledig duidelijk omdat het daar gekopieerd wordt naar een ander werkblad volgens mij.
Hij maakt er dan ook een afdrukvoorbeeld van precies.

Kan ik van dit document dan best een sjabloon maken??

Excuseer voor de vele vragen maar dit is iets nieuws, als is het me wel gelukt om een automatische factuurnummering tot stand te brengen. Dus ik hoop dit ook tot een goed einde te brengen.
 
Dus ik hoop dit ook tot een goed einde te brengen.
Gewoon net zo doorgaan tot je er bent:)

Dat kopieren en afdrukvoorbeeld wordt gedaan in de link van WIGI
Ik heb getracht een print oplossing te geven zonder vba

de SaveAs is geen formule maar vba code.

Hier een heel beknopte uitleg hoe je dat gebruikt.

Om daar serieus mee aan de slag te gaan is het handig om je in te lezen
Er is veel op internet te vinden (wel veel engels) en ook zijn er boeken zat.

Door de macro recorder te gebruiken krijg je ook een indruk van VBA.

Ik heb nog niet duidelijk wat je precies wil met de werkbladen apart opslaan

mvg leo
 
Printen lukt me wel met een macro

Ik heb zelf nog een manier gezocht om het printen te laten lukken via een macro.

Maar met de bestandsnaam zit ik toch serieus in de knoei.
Ik wil dus een bestandsnaam die opgebouwd wordt uit de twee cellen G12 en F3.
Ik zou deze macro dan ook willen koppelen aan een knop.

Waarom ik eventueel enkel het werkblad factuur zou willen opslaan in het nieuwe bestand?
Dit zou ik graag doen omdat de achterliggende werkbladen enkel gebruikt worden om het
factuur snel op te bouwen (verticaal zoeken klantgegevens en producten)

De resultaten hiervan die dus op werkblad factuur staan zou ik graag opslaan als digitaal archief.

Hopelijk kan iemand met nog wat helpen?
 
Vertrek hiervan:

Code:
Sub bladkopierenenopslaan()

    'kopieer blad naar nieuw leeg bestand
    ActiveSheet.Copy

    'sla dit nieuwe bestand op onder C, dan map a, dan waarde uit cel A1, streepje, waarde uit cel B1
    ActiveWorkbook.SaveAs "C:\a\" & Range("A1").Value & " - " & Range("B1").Value

End Sub

Wigi
 
Knoppen Printen en opslaan gelukt

Dat is wat ik wou maar nu heb ik nog een klein vraagje.
Dat heb je wanneer het werkt dan vind je weer nieuwe problemen.

Nadat ik het werkblad gekopieerd heb en opgeslagen met behulp van de macro laat hij dit nieuwe document open staan. Kan dit zo ingesteld worden dat hij dit automatisch sluit??

Dit zal m'n laatste vraagje zijn, hoop ik.

Alvast bedankt voor de moeite die jullie reeds gedaan hebben.
 
Code:
ThisWorkbook.Close Savechanges:=True

of

Code:
ThisWorkbook.Close Savechanges:=False

Hangt ervan af of je wijzigingen wil opslaan of niet.

Wigi
 
Waar moet ik deze code dan plakken??
Want hij moet niet het werkboek sluiten waar ik in werk maar wel het nieuwe dat hij geopend heeft met de volgende code:

Sub Opslaan_Factuur()

'kopieer blad naar nieuw leeg bestand
ActiveSheet.Copy

'sla dit nieuwe bestand op onder C, dan map a, dan waarde uit cel A1, streepje, waarde uit cel B1
ActiveWorkbook.SaveAs "C:\Documents and Settings\Server\Mijn documenten\facturen\" & Range("G12").Value & " " & Range("F3").Value
End Sub


Het werkboek waar de facturen in gemaakt worden moet gewoon open blijven zodat ik nog facturen kan maken, maar de nieuwe werkmap met de automatische bestandsnaam moet eigenlijk niet openen die mag meteen dicht.
 
Vervang dan in mijn laatste code ThisWorkbook door ActiveWorkbook.

Wigi
 
Automatische factuurnummering probleem

Ik heb het helemaal voor elkaar maar de automatische factuurnummering werkt niet boven de 32000 enzoveel.

Er onder geen foutmeldingen maar onze facturen beginnen met een 8 omwille van 2008.
Zo krijgen we een getal in de 80000 dus dan geeft hij de foutmelding "overloop" en markeert
hij in de code factuurnr = [A1]

Hopelijk weet iemand de oplossing
 
Heb je daarvoor een Integer variabele gebruikt? Indien ja, neem dan een Long variabele.
 
Code

Ik heb het met deze code gedaan

Code:
Private Sub Workbook_Open()
Dim factuurnr%
Workbooks.Open Filename:= _
"C:\Documents and Settings\Server\Mijn documenten\facturen\factuurnr.xls"
[A1] = [A1] + 1
factuurnr = [A1]
ActiveWorkbook.Save
ActiveWindow.Close
[G17] = factuurnr
End Sub
 
Laatst bewerkt door een moderator:
Inderdaad, het % teken staat voor een Integer variabele.

Declareer die variabele als Long.

(en niet weglaten zoals hierboven gesuggereerd).

Wigi
 
Is niet een gewoon tekentje precies

Dat instellen als long variabel is niet precies een gewoon tekentje plaatsen.

Wanneer ik dit wat opzocht kom ik telkens bij lange codes?

Iemand de oplossing of een tip?
 
Dat instellen als long variabel is niet precies een gewoon tekentje plaatsen.

Wanneer ik dit wat opzocht kom ik telkens bij lange codes?

Iemand de oplossing of een tip?

factuurnr declareren als Long doe je als volgt:
Code:
Dim factuurnr As Long

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan