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

Printen inhoud userform

Status
Niet open voor verdere reacties.

carloschouw

Gebruiker
Lid geworden
15 jun 2015
Berichten
225
Goedemiddag!

Ik gebruik deze code om de inhoud van een ingevulde userform te verzenden via outlook. Ik vul dus eerst een userform in, klik op een commandbutton om de email applicatie te openen om met inhoud te verzenden. Dit werkt prima.

Alleen nu zou ik hetzelfde willen doen maar dan i.p.v. verzenden via email de inhoud printen. Wat ik nu doe = emailfunctie gebruiken en vanuit mijn email programma de printopdracht te gebruiken. Dat werkt op zich ook goed alleen zou ik willen printen zonder tussenkomst van outlook.

Is er zoiets mogelijks?


Code:
Private Sub CommandButton8_Click()

Dim iRow As Long
Dim ws As Worksheet

    Dim lrow As Long
    Dim lCount As Long
  
      Dim OutlookApp As Object
    Dim MailIt As Object

Set ws = Worksheets("Blad1")

    Set OutlookApp = CreateObject("Outlook.Application")

 Set MailIt = OutlookApp.CreateItem(0)
 With MailIt
    .To = ""
    .CC = ""
    .Subject = "x" & " " & "x" & " " & Me.TextBox3.Value
    .Body = "x" & vbCrLf & vbCrLf & _
    "x:" & "  " & Me.TextBox3.Value & vbCrLf & _
    "x:" & "  " & Me.TextBox1.Value & vbCrLf & _
    "x:" & "  " & Me.TextBox2.Value & vbCrLf & _
    "x:" & "  " & Me.ComboBox4.Value & vbCrLf & _
    .Display
End With

End Sub
 
Verzend de gegevens eerst naar een werkblad met dezelfde code als bij Body en Subject
Dus bijv. Blad1.Range( "A1").Value = "Subjectcode"
Blad1.Range( "A2").Value = "Bodycode"
Maak eventueel dat werkblad op naar je zin.
Daarna in dezelfde code de printopdracht. Zoiets als Blad1.Printout
 
Laatst bewerkt:
VenA: Me.PrintForm print enkel een printscreen van de userform. Dat is een optie maar werkt niet met meerbladige tabbladen helaas.

mvdvlist: Ik zou niet weten hoe dat zou werken. De Userform schrijft de data weg in een tabblad. Zo heb je op termijn >100 rijden die gevuld zijn. Hoe kun je dan b.v. rij 10 uitprinten qua data? Werkwijze die ik dan kan bedenken is een VlookUp te gebruiken, inladen in de userform en dan printen maar dan loop ik tegen hetzelfde probleem aan als mijn vraagstelling.
 
Dat is een optie maar werkt niet met meerbladige tabbladen helaas.
En waar in het verhaal is te vinden dat het om meerbladige tabbladen gaat?
 
Als het om veel data gaat, kun je beter een voorbeeldbestandje sturen...uiteraard met fake gegevens...
 
Ik heb een voorbeeld, inhoud aangepast omdat het om de functionaliteit gaat, toegevoegd in de bijlage.

Wanneer je informatie invult, na het invullen op <email verzenden> klikt wordt de inhoud verzonden. Je kunt met VlookUp ook een ingevuld nummer uit kolom A ophalen (getal uit A invullen in de meest linker tekstveld # + <gegevens ophalen> aanklikken. Vervolgens op <email verzenden> klikken om de inhoud te verzenden.

Nu is het de bedoeling dat in principe dezelfde functionaliteit (dus alle inhoud zoals in de email geladen wordt) van de email functie gebruikt wordt maar dan voor een print optie. De Me.PrintForm ken ik maar dat is niet de bedoeling (is enkel een printscreen van de userform)
 

Bijlagen

  • Inhoud userform printen.xlsm
    277,8 KB · Weergaven: 22
De optie van mvdvlist heeft mij aan het denken gezet en heb een oplossing gevonden. Of dit de meest efficiënte manier is weet ik niet maar het werkt voor mij prima.

In de bijlage de code - voorbeeld die ik heb gemaakt, voor degene die een soortgelijke vraag heeft. Code die ik gebruik voor het printen van de inhoud van een userform is:

Code:
Private Sub CommandButton34_Click()

 Sheets("Blad2").Select
 
    Cells(1).Value = TextBox1.Text
    Cells(2).Value = TextBox9.Text
    Cells(3).Value = TextBox10.Text
    Cells(4).Value = TextBox5.Text
    Cells(5).Value = TextBox4.Text
    Cells(6).Value = TextBox13.Text
    Cells(7).Value = ComboBox14.Text
    Cells(8).Value = TextBox33.Text
    Cells(9).Value = ComboBox35.Text
    Cells(10).Value = ComboBox36.Text
    Cells(11).Value = ComboBox37.Text

    Range("A1:K2").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$K$2"
    Application.Dialogs(xlDialogPrint).Show
    Range("A1").Select
    
     Sheets("Blad1").Select
         Range("A1").Select
    
End Sub

<commandbutton 3> is de knop om deze code te activeren. De aangegeven inhoud van de userform wordt eerst weggeschreven naar een tabblad en vanuit daar wordt de printerselectiescherm geopend om te kunnen printen.

Groet, Carlo
 

Bijlagen

  • Inhoud userform printen.xlsm
    284,9 KB · Weergaven: 33
Laatst bewerkt:
Waarom eerst het printerselectie scherm?

Code:
Private Sub CommandButton34_Click()
  With Sheets("Blad2").Cells(1)
    .Offset(1).Resize(, 11) = Array(TextBox1, TextBox9, TextBox10, TextBox5, TextBox4, TextBox13, ComboBox14, TextBox33, ComboBox35, ComboBox36, ComboBox37)
    MsgBox .CurrentRegion.Address '.CurrentRegion.printout
  End With
  Application.Goto Sheets("Blad1").Cells(1)
End Sub
 
Dat werkt ook goed VenA. Heb de code zo aangepast om de directe printoptie te activeren. Kreeg n.l. alleen een MsgBox met celverwijzing.

Code:
Private Sub CommandButton34_Click()
  With Sheets("Blad2").Cells(1)
    .Offset(1).Resize(, 11) = Array(TextBox1, TextBox9, TextBox10, TextBox5, TextBox4, TextBox13, ComboBox14, TextBox33, ComboBox35, ComboBox36, ComboBox37)
    .CurrentRegion.PrintOut
    MsgBox "Print opdracht is verwerkt", vbOKOnly + vbInformation, "Gegevens naar printer"
  End With
  Application.Goto Sheets("Blad1").Cells(1)
End Sub

Dank voor jullie hulp!
 
Was nogal een aanpassing of niet? Nu de rest van jouw code nog.;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan