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

VBA voor opslag

Status
Niet open voor verdere reacties.

Royke007

Gebruiker
Lid geworden
24 jun 2010
Berichten
132
Goede morgen allemaal

Het is weer een tijdje geleden dat ik met een vraag gekomen ben maar ik heb er weer 1.

Ik ben een document aan het schrijven met Macro's erin. Nu heb ik een groot deel al klaar maar krijg er 1 niet aan de praat.

Ik wil namelijk een knop maken (opslag) waarin de macro zegt deze data over zetten naar een specifiek document en dat dat document opgeslagen wordt als PDF

Ik weet dat er een macro geschreven kan worden dat het specifieke document automatisch geopend wordt, de data erin gezet wordt en het document automatisch weer opgeslagen wordt als een PDF bestand met een specifieke naar.

Het probleem is nu dus dat ik niet weet hoe ik dat ook alweer moet doen.

Ook is het probleem dat ik deze documenten wil delen met mijn collega's in one-drive, maar om een of andere rede kan ik de documenten met macro's niet delen in one-drive.

Wie o wie heeft voor mij een mogelijke oplossing. Helaas heb ik er geen voorbeeld meer van hoe ik in het verleden de macro geschreven heb

Gr,

Roy
 
Dit is wat ik tot nu toe heb. Namen personen en bedrijf zijn fictief

Code:
Sub eerstetoggle()
    Rows("10:50").hidden = Not Rows("10:50").hidden = True
    Sheets("Registraties").Range("H5").Value = "Eerste"
    Rows("51:90").hidden = True
    Rows("91:131").hidden = True
End Sub
Sub tweedetoggle()
    Rows("51:90").hidden = Not Rows("51:90").hidden = True
    Sheets("Registraties").Range("H5").Value = "Tweede"
    Rows("10:50").hidden = True
    Rows("291:131").hidden = True
End Sub
Sub Derdetoggle()
    Rows("91:131").hidden = Not Rows("91:131").hidden = True
    Sheets("Registraties").Range("H5").Value = "Derde"
    Rows("10:50").hidden = True
    Rows("51:90").hidden = True
End Sub
Sub Opslag()
Dim Path1 As String
Dim Datum As Date
Dim DataH2 As Date, DataH5 As String
Dim LegeRegel As Integer, x As Integer

Path1 = "c:\users\Jjannsen.mijnbedrijf\onedrive\Test\Test\"
Dezefile = "Reg.xlsm"

'Gegevens opslaan in registratie bestand

 'Directory voor wegschrijven registraties bepalen adhv klant
Path2 = "c:\users\Jjannsen.mijnbedrijf\Onedrive\Test\Registraities\"
If Soort = "Magna" Then Path2 = "c:\users\Jjannsen.mijnbedrijf\Onedrive\Test\Registraities\Magna\"
If Soort = "Montaplast" Then Path2 = "c:\users\Jjannsen.mijnbedrijf\Onedrive\Test\Registraities\Montaplast\"
If Soort = "Inalfa" Then Path2 = "c:\users\Jjannsen.mijnbedrijf\Onedrive\Test\Registraities\Inalfa\"

' Rapport opslaan als xlsx (zonder macro's)
   [B] ActiveWorkbook.SaveAs Filename:=Path2 & "Registration_mijnbedrijf_" & "Date" & "_" & "Soort" & "_" & "DataH5" & ".xlsx", FileFormat:=xlOpenXMLWorkbook, _
        ReadOnlyRecommended:=False, CreateBackup:=False[/B]

End Sub

Hier onderaan het dik gedrukte daar heb ik nu nog een foutmelding. Ik weet alleen niet waar het fout gaat. Ik heb er nu zelf voor gekozen om het schrijven naar een ander document eruit te laten want dat werd me te lastig. Ik heb nu alleen het opslag probleem bij het benamen van het document.

Gr,

Roy
 
Roy,

Code:
[COLOR="#FF0000"]Application.DisplayAlerts = False[/COLOR]
' Rapport opslaan als xlsx (zonder macro's)
    ActiveWorkbook.SaveAs Filename:=Path2 [COLOR="#FF0000"]& "\"[/COLOR] & "Registration_mijnbedrijf_" & "Date" & "_" & "Soort" & "_" & "DataH5" & ".xlsx", FileFormat:=xlOpenXMLWorkbook, _
        ReadOnlyRecommended:=False, CreateBackup:=False

[COLOR="#FF0000"]Application.DisplayAlerts = True[/COLOR]

deze code in rood toevoegen.
werkt dat?
 
Hallo Lam201

Bedankt voor je reactie

Ik heb jou suggestie toegevoegd. Werkt helaas niet. Ligt het er misschien aan dat ik mijn document in de one-drive heb opgeslagen of maakt dat niks uit ?

Waar het mijn hoofdzakelijk om gaat is dat als ik het document wil opslaan met een knop met macro's dat het document automatisch wordt opgeslagen in een specifieke locatie met registratie_(klantnaam)_dienst_datum.xlsx en/of .PDF
Code:
Registratie_Eerste_OD_08-11-2019.xlsx en/of .PDF

Mijn document is namelijk zo geschreven dat ik voor meerdere klanten 1 en hetzelfde document kan gebruiken maar met Marco's en formules die erin zitten dat in het document aangegeven is om welke klant het gaat. Dus dat zou ik graag werkende hebben.

Kan ook best zijn dat ik de rest van mijn macro's niet goed heb dat weet ik dus niet zeker.

Wel weer ik dat de eerste, tweede en derdetoggle() werken. Alleen de SUB opslag die krijg ik niet werkende. De bedoeling is eigenlijk dat de nieuwe filenaam kenmerken heeft uit bepaalde cellen in het document. zoals de datum en naam van de klant.

Gr,

Roy
 
prober het nog eens zonder de door mij toegevoegde & "\"
jij had de \ al in je pad verwekt. ik niet.

wat voor foutnelding krijg je?
anders een voorbeeldbestand uploaden….
 
Werkt helaas ook niet. Ik denk zelf dat ik ergens iets fout doe.
Ik zal zo wel de voorbeeld bestanden posten

Gr
 
Heeft even geduurd maar hier is mijn voorbeeldbestand zoals ik die nu heb. De bedoeling is dus dat mijn document wordt opgeslagen onder een eigen naam met dient,klant en datum in een specifieke map zoals fictief beschreven in de macro.

Ik heb zelf uiteraard al van alles geprobeerd maar niks blijkt te werken helaas.

De bedoeling is dus dat het bestand uiteindelijk gaat heten registratie_mijnbedrijf_data cel H2_data cel H5_data cel H3.xlsx en/of .pdf
Code:
registratie_mijnbedrijf_08-11-2019_ochtend.xlsx/PDF
en moet opgeslagen worden in de one-drive van de zaak.

De cellen verwijzen uiteraard naar de data in het document.

Alsvast bedankt en een prettig weekend

Gr,

Roy
 

Bijlagen

  • Reg.xlsm
    88,5 KB · Weergaven: 30
je wilt bestand met deze naam opslaan:
Registratie_IDForce___00:00:00_.xlsx
een bestandsnaam mag geen : bevatten.

ook verwerk je diverse variabelen in de documentnaam (docdate, IPN, soort, inspector)
je kent echter geen waarde toe aan deze variabelen.
omdat docdate gedeclareerd wordt als datum en waarde nul heeft, krijg je de 00:00:00.
 
Ik denk dat ik het verkeerde doc heb gestuurd want bepaalde data die jij aangeeft heb ik in mijn voorbeeld niet staan haha

Ik kijk zo even want dat met docdate, ipn, soort enz zou er niet in mogen staan.

Ik moet alleen even wachten tot ik weer toegang heb tot een laptop of PC met een werkende office erop want deze pc werkt niet echt mee op het moment.

Maar ik had zelf inderdaad ook al een beetje in de gaten dat daar ergens iets niet helemaal goed zou zitten

Gr,

Roy
 
Als het goed is zou dit het juiste moeten zijn. Heb al een gekeken naar het datum stuk. Dat was nu opgelost. Was een instelling in de cel zelf. Maar nu blijft de hele regel rood haha

En hopelijk als dat eenmaal opgelost is dat het opslaan onder de specifieke naam op specifieke locatie dan ook eindelijk werkt

Ik weet het nu echt niet meer.
 

Bijlagen

  • Reg.xlsm
    87,7 KB · Weergaven: 26
Ik zelf al een stuk dichter bij de oplossing gekomen. Ik krijg geen foutmelding meer maar het wordt nog wel op de verkeerde plek weggeschreven. Als ik nu op opslag klik in mijn document wordt het bestand niet in de submap geplaatst maar in de hoofdmap en er komt geen juiste benaming te staan. Inplaats van de data uit de cellen komt er helemaal niks te staan.
 
Gebruik geen samengevoegde cellen en onnodige variabelen.
Code:
Sub VenA()
  c00 = "C:\users\FFranssen.mijnbedrijf\Onedrive\Test\Registraties\"
  ar = Sheets("Registraties").Range("H1:H5")
  ActiveWorkbook.SaveAs c00 & "Registratie_mijnbedrijf_" & ar(3, 1) & "_" & ar(5, 1) & "_" & Date & ".xlsx", 51
End Sub
 
Laatst bewerkt:
Goeie tip dank je. Had wel gelukkig al zelf wat dingen uitgevogeld maar alle tips en trucks zijn altijd welkom
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan