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

Drukknop om op te slaan, af te drukken en kopieeren

Status
Niet open voor verdere reacties.

hoogteijling

Terugkerende gebruiker
Lid geworden
12 aug 2005
Berichten
4.261
Hallo allemaal,

Hoe we het nu doen:
Eerst vullen we de Urenplanning.xlsm in en slaan hem op.
Vervolgens openen we Job order.xlsx en vullen cel C23 in.
We genereren een pdf met Opslaan als>>PDF of XPS.
Ik had gehoopt dat dit met iets minder handelingen te bewerkstelligen was.

Hoe ik het zou willen:
In de file Urenplanning.xlsm worden gegevens ingevuld.
Wanneer er dan op de knop Genereer Job form gedrukt wordt zou ik willen dat het volgende gebeurd:

1. Het bestand moet worden opgeslagen.
2. Het bestand Job order.xlsx moet geopend worden en cel C23 moet ingevuld worden waarbij hij de waarde overneemt uit kolom A de laatst ingevulde regel uit Urenplanning.xlsm.
3. Het bestand Job order.xlsx moet opgeslagen worden als een pdf en afgesloten worden zonder op te slaan.
(volgorde mag ook anders zijn)

Misschien is het beter om het Job order.xlsx bestand als een 2e tabblad in de Urenplanning.xlsm te plaatsen.

Groeten Marcel
Bekijk bijlage Urenplanning.xlsm
Bekijk bijlage Job order.xlsx
 
Laatst bewerkt:
Mits ze in dezelfde map staan, anders zal je de 'Path' moeten aanpassen.
Uit het vuistje...
Code:
Sub Spaarie()
    ActiveWorkbook.Save
    Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
    With ActiveWorkbook
        .Sheets(1).Cells(23, 3) = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
        .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order.pdf"
        .Close False
    End With
End Sub
 
Dank je spaarie,
Ik zou graag willen dat de pdf de volgende notatie heeft: Job order xxxx.pdf (xxx is de waarde uit cel A..)
Ook moet er een kopie van de pdf opgeslagen worden in een submap Download genaamd met exact dezelfde filenaam.

Groeten Marcel
 
Is er ook nog een mogelijkheid om af te vangen wanneer het pdf bestand al bestaat, een waarschuwing bedoel ik.

Groeten Marcel
 
Zo misschien?
Code:
Sub Spaarie()
    jo_nr = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    If Dir(ThisWorkbook.Path & "\Job order " & jo_nr & ".pdf") <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        ActiveWorkbook.Save
        Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
        With ActiveWorkbook
            .Sheets(1).Cells(23, 3) = jo_nr.Value
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & jo_nr.Value & ".pdf"
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Download\Job order " & jo_nr.Value & ".pdf"
            .Close False
        End With
    End If
End Sub

EDIT: Melding als bestand bestaat...
 
Laatst bewerkt:
Hmmm, de notatie is gedeeltelijk goed, alleen het einde van de bestandsnaam niet, hij geeft nu de pdf een nummer eerst 7 en de volgende 8, enz.

Groeten Marcel
 
Het is ook allemaal ongetest, omdat het tijdrovend is om dit na te bootsen op mijn comp.
Misschien een .Value achter 'jo_nr' zoals hierboven aangepast.
 
Ik waardeer je hulp heel erg spaarie, knap trouwens dat je dat zo uit je blote hoofd kan :thumb:
Voor jouw zal het wel gesneden koek zijn allemaal.

Hij opent nu het 2e formulier en komt dan met onderstaande foutmelding:
naamlooswte.png


In het 2e formulier zet ie trouwens nog steeds een 8 neer in C23 in plaats van het nummer uit kolom A uit het 1e formulier.

Ik heb de code trouwens staan onder Blad1 (Blad1), dat is toch goed ?
Code:
Private Sub CommandButton1_Click()
    jo_nr = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    If Dir(ThisWorkbook.Path & "\Job order " & jo_nr & ".pdf") <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        ActiveWorkbook.Save
        Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
        With ActiveWorkbook
            .Sheets(1).Cells(23, 3) = jo_nr.Value
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & jo_nr.Value & ".pdf"
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Download\Job order " & jo_nr.Value & ".pdf"
            .Close False
        End With
    End If
End Sub

Groeten Marcel
 
Laatst bewerkt:
Dat ik het uit me hoofd doe betekent niet dat het gesneden koek is.
De kennis die ik heb, heb ik opgedaan op dit soort forums en veel aandacht in gestoken.

Je zou nu zelf ff moeten troubleshooten. Klik op 'Foutopsporing' en kijken wat ie geel markeert en dit aanpassen.
Nogmaals ik kan het moeilijk nabootsen zo ook deze foutmelding.
 
OK spaarie,

Code:
.Sheets(1).Cells(23, 3) = jo_nr.Value
is de regel die geel wordt, ik snap er helaas niets van.
Ik kan ook een nieuw topic openen als dat handiger is ?

Groeten Marcel
 
En als je het oude er weer van maakt?
Code:
.Sheets(1).Cells(23, 3) = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

Nieuwe topic hoeft niet. Gaat toch om hetzelfde probleem...
 
Spaarie
Nu komt de foutmelding op de regel erna.
Code:
.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & jo_nr.Value & ".pdf"

Groeten Marcel
 
Dan ligt het dus aan 'jo_nr = etc, etc.' pas deze aan...
Probeer
Code:
jo_nr = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row.Value

Of verander alle jo_nr's
Code:
Private Sub CommandButton1_Click()
    jo_nr = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    If Dir(ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row & ".pdf") <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        ActiveWorkbook.Save
        Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
        With ActiveWorkbook
            .Sheets(1).Cells(23, 3) = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row & ".pdf"
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Download\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row & ".pdf"
            .Close False
        End With
    End If
End Sub

Je moet ff stoeien, maar je komt er wel...
 
Hij vult nog steeds het rijnummer in i.p.v. de celwaarde in de bestandsnaam.
Verder geen foutmeldingen.
Ik heb je laatste code gebruikt.
Wanneer ik alleen de 1e regel code aanpas komt er weer een foutmelding.

Edit:
Nog even zelf gerommeld:
Code:
Private Sub CommandButton1_Click()
    If Dir(ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).[COLOR="#FF0000"]Value[/COLOR] & ".pdf") <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        ActiveWorkbook.Save
        Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
        With ActiveWorkbook
            .Sheets(1).Cells(23, 3) = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).[COLOR="#FF0000"]Value[/COLOR]
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).[COLOR="#FF0000"]Value[/COLOR] & ".pdf"
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Download\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).[COLOR="#FF0000"]Value[/COLOR] & ".pdf"
            .Close False
        End With
    End If
End Sub
Werkt nu :)

Groeten Marcel
 
Laatst bewerkt:
Nog een vraagje:
Ik kom er net achter dat de 2e pdf opgeslagen moet worden op een andere locatie dan dat ik eerder dacht.
1 map omhoog en dan in de map Download.
Hoe geef ik dit aan in de code ?

Groeten Marcel
 
Laatst bewerkt:
Zie je nou wel... zelf ff stoeien kom je er wel ;)

Je kan een harde verwijzing gebruiken zoals:
Code:
.ExportAsFixedFormat xlTypePDF, "C:\Documents\Users\Download\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Value & ".pdf"
 
Sommige dingetjes lukken idd wel ja :)
Ik heb geen harde verwijzing gebruikt maar iets anders. (zie nieuwe code)
Het probleem wat ik nu nog heb is het volgende:
Ik moet eerst Urenplanning.xlsm saven en dan pas op de knop drukken, anders staat er in de meeste cellen van het 2e bestand alleen maar #NB's.
Is hier nog wat aan te doen ?
(Of is het misschien zo-wie-zo handiger om beide bestanden tot 1 bestand te maken ?)

Code:
Private Sub CommandButton1_Click()
    If Dir(ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Value & ".pdf") <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        ActiveWorkbook.Save
        Workbooks.Open ThisWorkbook.Path & "\Job order.xlsx"
        With ActiveWorkbook
            .Sheets(1).Cells(23, 3) = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Value
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Value & ".pdf"
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\..\Download\Job order " & ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Value & ".pdf"
            .Close False
        End With
    End If
End Sub
 
Laatst bewerkt:
OK, ik heb nu het Joborderformulier in een tabblad gezet welke ik JO-form heb genoemd.
Hoe pas ik nu de laatste geposte code van mij aan zodat ie het Formulier gegenereerd vanuit het tabblad JO-form ?

Groeten Marcel
 
Post je nieuwe bestand eens zodat we duidelijk kunnen zien waar je heen wil.
Je kan deze al eens uittesten.
Code:
Private Sub CommandButton1_Click()
    c00 = "\Job order " & Sheets(1).Range("A" & Rows.Count).End(xlUp).Value & ".pdf"
    If Dir(ThisWorkbook.Path & c00) <> "" Then
        MsgBox "PDF bestand bestaat al. Geef een ander nummer", vbInformation, "In gebruik"
    Else
        With ActiveSheet
            .Cells(23, 3) = Sheets(1).Range("A" & Rows.Count).End(xlUp).Value
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & c00
            .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\..\Download" & c00
        End With
    End If
End Sub
 
Laatst bewerkt:
Na op de knop gedrukt te hebben moeten de gegevens uit de laatste regel naar het tabblad JO-form overgezet worden.
Vervolgens moet er van het tabblad JO-form een PDF gemaakt worden welke terecht moet komen in dezelfde map als waar het bronbestand staat en ook een PDF 1 map omhoog en dan submap Download.

Groeten Marcel
Bekijk bijlage Urenplanning.xlsm
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan