Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Pagina 1 van 2 1 2 LaatsteLaatste
Weergeven resultaten 1 tot 20 van 26

Onderwerp: VBA Printer selecteren en pinterinstellingen

  1. #1
    Senior Member
    Geregistreerd
    15 oktober 2015
    Vraag is opgelost

    VBA Printer selecteren en pinterinstellingen

    Ik heb, als VBA leek, een probleem met een macro.

    Situatie:
    De printer staat op een ongewenste printer en ik wil een selectie printen op een geselecteerde printer met bepaalde instellingen.
    De macro moet dus een andere printer selecteren en die andere printer ook bepaalde instellingen geven.
    Nu lijkt onderstaande macro wel de andere (dus juiste printer te selecteren), maar bepaalde instellingen neemt hij niet over.
    Als bijvoorbeeld de vorige pint of een andere printer op Portrait stond, dan zet de macro de printer niet om naar portrait, terwijl dat wel in de instellingen is gezet in de macro (.Orientation = xlLandscape)

    Waarschijnlijk doe ik iets flink fout in de opzet.
    Iemand een idee hoe dit op te lossen?

    dus:
    Printer selecteren
    Gewenste Printer Instellingen
    Selectie Printen


    Code:
    Sub testimport()
    '
    ' testimport Macro
    '
    ' Sneltoets: Ctrl+r
    '
        Range("A2").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Application.PrintCommunication = False
        With ActiveSheet.PageSetup
            .PrintTitleRows = ""
            .PrintTitleColumns = ""
        End With
        Application.PrintCommunication = True
        ActiveSheet.PageSetup.PrintArea = ""
        Application.PrintCommunication = False
        Selection.PrintOut Copies:=1, ActivePrinter:="HP PageWide Pro", Collate:=True
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0.5)
            .RightMargin = Application.InchesToPoints(0.1)
            .TopMargin = Application.InchesToPoints(0.7)
            .BottomMargin = Application.InchesToPoints(0.1)
            .HeaderMargin = Application.InchesToPoints(0.3)
            .FooterMargin = Application.InchesToPoints(0.3)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = False
            .CenterVertically = False
            .Orientation = xlLandscape
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = 1
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = False
            .PrintErrors = xlPrintErrorsDisplayed
            .OddAndEvenPagesHeaderFooter = False
            .DifferentFirstPageHeaderFooter = False
            .ScaleWithDocHeaderFooter = True
            .AlignMarginsHeaderFooter = False
            .EvenPage.LeftHeader.Text = ""
            .EvenPage.CenterHeader.Text = ""
            .EvenPage.RightHeader.Text = ""
            .EvenPage.LeftFooter.Text = ""
            .EvenPage.CenterFooter.Text = ""
            .EvenPage.RightFooter.Text = ""
            .FirstPage.LeftHeader.Text = ""
            .FirstPage.CenterHeader.Text = ""
            .FirstPage.RightHeader.Text = ""
            .FirstPage.LeftFooter.Text = ""
            .FirstPage.CenterFooter.Text = ""
            .FirstPage.RightFooter.Text = ""
        End With
        Application.PrintCommunication = True
    End Sub

  2. #2
    je geeft eerst de opdracht printen en pas daarna de instellingen

  3. #3
    Senior Member
    Geregistreerd
    15 oktober 2015
    Ik heb het ook zonder succes geprobeerd met het printcommando ná de instellingen.
    Dus dat is de oplossing niet.
    Ik heb het idee dat ik met een regel eerst de juiste printer moet instellen, dan de instellingen van de printer en dan pas de printopdracht.

    Is die gedachte juist en met welke code selecteer ik de gewenste printer zonder te printen?
    Ik heb al van alles geprobeerd, maar heb te weinig kennis en er uitgebreide zoektocht op Google levert me niets op, behalve honderden mislukte pogingen.

  4. #4
    Senior Member
    Geregistreerd
    15 oktober 2015
    Als voorbeeld heb ik bovenin de macro gezet:

    Code:
    Dim myprinter As String
    Dim printer_name As String
    printer_name = "Lex-kantoor-(HP PageWide Pro 477dw MFP)"
    Hiermee dacht ik als 1e aan te geven wat de actieve printer moet zijn.
    Maar dat werkt niet, dus dit deel maar weer weg gehaald. Zo heb ik nog talloze andere dingen die ik vind op google geprobeerd.

    Ik dacht juist met de macro uit mijn 1e post met de 'with' functie met daarin alle printerinstellingen onder de printeropdracht op de juiste wijze te kunnen printen, maar werkt ook niet.

    De suggestie van #emields om eerst de instellingen te doen en daarna pas de printopdracht werk niet.
    Naar mijn mening omdat hij nog niet communiceert met de gewenste printer. Hij zou naar mijn mening eerst moeten communiceren met de juiste printer.
    Dán pas kun je de instellingen van die printer neerzetten.
    Maar hoe krijg ik nu eerst de gewenste printer actief? Iets met Application.ActivePrinter? Ik heb daarin ook al van alles geprobeerd, maar het werkt niet.

    Iemand een idee?

  5. #5
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Toon eerst eens de schermafdruk van het resultaat van deze macro:

    Code:
    Sub M_printers()
      For Each it In CreateObject("Wscript.network").EnumPrinterConnections
        If c01 = "" Then
          c01 = it
        Else
           c00 = c00 & vbLf & it & " on " & c01
           c01 = ""
        End If
      Next
      
      MsgBox c00
    End Sub
    PS. Waarom zoveel overbodige code als het er primair om gaat de wijzigingsselektie van een printer te testen ? Beperk je in testcode tot de essentie.
    Laatst aangepast door snb : 17 september 2020 om 11:27
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  6. #6
    Giga Senior Haije's avatar
    Geregistreerd
    24 maart 2009
    Locatie
    Oldenzaal
    Dit heb ik in een bestand in ThisWorkbook staan:
    Code:
    Private Sub Workbook_Open()
        printernaam = Application.Dialogs(xlDialogPrinterSetup).Show
    End Sub
    Daarmee kies ik bij het openen van het bestand een printer die op de betreffende PC beschikbaar is.
    Haije
    ___________________________________________________

  7. #7
    Senior Member
    Geregistreerd
    15 oktober 2015
    #snb: ik krijg met die macro een overzicht van alle printers met hun adressen.
    Ik moet in dit geval printen op de volgende printer (die uit die macro komt):

    Lex-kantoor-(HP PageWidePro 477dw MFP) on WSD-d99bdf8a-1886-4e1f-b7c6-2fae7a9e4596Klik op afbeelding voor grotere versie

Naam:  printers.png
Bekeken: 29
Grootte:  329,1 KB

    Zie bijlage de afbeelding van de uitkomst van die macro (of kon ik eenvoudiger een printscreen plakken?).

    In de macro heb ik dus daadwerkelijk staan:
    Code:
    Selection.PrintOut Copies:=1, ActivePrinter:="Lex-kantoor-(HP PageWidePro 477dw MFP)", Collate:=True
    Voor alle zekerheid: hij pakt wel de juiste printer, maar niet de juiste printerinstellingen.

    #Haije: dank voor je bijdrage, maar ik wil automatisch printen vanuit de macro mét de gewenste instellingen. Als ik een printer moet kiezen dan is dit een ongewenste handeling + ik moet ook nog eens de istellingen evengoed doen, want die worden niet in de macro overgenomen als je vorige print op een andere print ging met andere instellingen. Je moet dus eerst kunnen communiceren met de gewenste printen in de macro.

  8. #8
    Senior Member
    Geregistreerd
    15 oktober 2015
    Iemand nog een suggestie?
    Ik had gehoopt op een oplossing of wat huiswerk om dit van het weekend voor elkaar te krijgen.
    Ik heb inmiddels zelf honderden pogingen gedaan, alle tips op het internet afgespeurd, maar aangezien ik niet heel veel weet van VBA wordt het lastig en maak ik kennelijk zelf steeds fouten.

    #snb: wat was de reden van het overzichtje van de actieve printers die ik als macro moest draaien en een printscreen moest aanleveren?

    Alvast dank voor hopelijk een oplossing.

    Inmiddels zit ik met meer macro's waarbij ik graag een printer wil selecteren, instellingen voor die printer wil zetten, printen en weer terugzetten naar de default printer met default instellingen.

    Alvast fijn weekend voor iedereen.

  9. #9
    Senior Member
    Geregistreerd
    15 oktober 2015
    Misschien heb ik mijn probleemstelling te ingewikkeld/onduidelijk gemaakt, dus ik stel mijn vraag iets anders, vereenvoudigd:

    Wat is de macro (VBA) code om de gewenste printer te activeren (aan te passen) zodat de macro vervolgens printerinstellingen kan toepassen en daarna kan printer (op die gewenste printer)?

    Met Application.ActivePrinter = "[The name of your printer] on [port]:" krijg ik constant een foutcode.
    Misschien moet er iets aan vooraf aan code....

    Hoop dat ik hierbij wat hulp krijg?

    Dus:

    gewenste printer activeren (hij staat namelijk soms op een andere usb printer door een vorige print)
    instellingen van die printer neerzetten
    printen
    Terugzetten naar de default printer met defaultinstellingen

  10. #10
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Kijk eens hier, bijna hetzelfde probleem een paar dagen geleden, zie https://www.helpmij.nl/forum/showthr...88#post6250788 en https://www.helpmij.nl/forum/showthread.php/955959-Via-VBA-printer-activeren?p=6255098#post6255098 (alleen zonder het aanpassen van de instellingen).
    Laatst aangepast door alphamax : 19 september 2020 om 19:47

  11. #11
    Senior Member
    Geregistreerd
    15 oktober 2015
    Ik heb die uiteraard gezien en gelezen en vanalles geprobeerd, naast alle andere talloze soortgelijke cases op internet, maar het lukt gewoon niet.
    Telkens een foutmelding als ik de regel Application.ActivePrinter = "[The name of your printer] on [port]:" invoeg.

    Vervelend dat ik het niet vanuit huis kan testen, moet steeds naar kantoor.

    Het lijkt zo simpel:

    Activeer een (andere) printer
    Activeer instellingen op die printer
    Print
    Activeer de default printer met default instellingen.

    Uiteraard worden in de macro nog veel meer handelingen uitgevoerd, maar dat is het probleem niet.
    Het feit dat ik zoveel topics over dit onderwerp zie zou zeggen dat het kennelijk lastiger is dan je zou denken.
    Vragen als, is het ‘op’ of ‘on’ en moet je wel of niet het poortnummer weergeven, moeten er wel of geen spaties, komma’s enz geplaatst worden.....
    Moet ik vooraf definities plaatsen als dim huppeldepup en string dinges....?
    Ik werk normaal met recorden van macro’s maar zonder vba programmeerkennis is het allemaal best lastig en kost het uren en uren tijd.

    Begrijp ik het goed dat de code niet even zo te geven valt?
    Is het een kwestie van nog een keer of duizend trials en errors?
    Is er wellicht een ander forum waar dit soort kennis direct voorhanden is?
    Mijn ervaring hier op helpmij is dat er enorm veel hulp geboden wordt, maar meestal leidt het bij mij niet tot een oplossing.
    Dat is best jammer, maar zal wellicht aan mij liggen.
    Ik hoop dat het hierbij nog wel een keertje lukt

  12. #12
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Code:
    Application.ActivePrinter = "[The name of your printer] on [port]:"
    betekend
    Code:
    Application.ActivePrinter = "Lex-kantoor-(HP PageWidePro 477dw MFP) on WSD-d99bdf8a-1886-4e1f-b7c6-2fae7a9e4596:"
    Je moet alleen even proberen met en zonder : op het eind, want dat weet ik niet zeker.

  13. #13
    Senior Member
    Geregistreerd
    15 oktober 2015
    Ik begrijp het even niet.

    Ik meld in mijn vorige post:
    Telkens een foutmelding als ik de regel Application.ActivePrinter = "[The name of your printer] on [port]:" invoeg.

    En nu krijg ik als advies om dit tóch toe te passen?
    Dit werkt dus niet, foutmelding 1004, ook als ik een andere printernaam zou nemen.

    Moet ik niet iets als eerste formuleren, zoiets als
    Dim strActivePrinter enz.......?

  14. #14
    Hoi Lex,

    Ik heb hier ook regelmatig te maken met print instellingen en verschillende printers.
    Wat ik voornamelijk doe is: Ik begin met een PDF-printer te selecteren (Microsoft Print to PDF), deze kun je volledig instellen, maak dan de juiste instellingen in je sheet ( Orientatie, print area. lettergroote enzovoort).
    Zet je macrorecorder aan en ga een afdruk instellen in de printinstellingen en druk dit af in PDF. Als alles dan naar je zin is ingesteld, dan kopieer je de macro naar de juiste sheet en gebruik je deze om een volgende keer te printen.
    Ik ga niet zeggen dat dit in 1x lukt, maar bij mij is het meestal de aanhouder die wint.......

  15. #15
    Senior Member
    Geregistreerd
    15 oktober 2015
    Beste Frits,
    Ik waardeer je hulp maar dat zal de oplossing niet brengen.
    Het zijn namelijk niet de printerinstellingen die het probleem zijn, die staan immers keurig in de macro.

    Het probleem is dat de macro eerst moet communiceren met de gewenste printer, zodat hij de in de macro ingestelde printereigenschappen kan toepassen.

    Uitleg:
    Als de laatst gedane print op dezelfde printer was als de printer die actief moet zijn in de macro, met compleet andere printinstellingen, dan werkt de macro perfect.
    De macro verandert dus netjes de printerinstellingen conform ingevoerd in de macro.

    Maar als de laatste print op een andere printer was, dan neemt hij NIET de printerinstellingen uit de macro over.
    Hij print wel op de juiste printer, maar met de verkeerde printinstellingen.
    Dit komt omdat ik niet goed weet hoe eerst communicatie moet worden gevonden met de juiste printer; ik weet de juiste commando’s hier niet voor.
    Ik kan alleen maar het commando geven om te printen op een gewenste printer.

    Telkens een foutmelding als ik de regel Application.ActivePrinter = "[The name of your printer] on [port]:" invoeg.
    Met of zonder dubbele punt, met of zonder toevoeging van de poort, in de on of op vorm. Niets werkt.

    Een macro recorden is normaal iets dat ik gebruik, maar voor selectie van printen werkt recorden niet. Dat wordt niet ge-record’.

    Hoop op de juiste code voor activeren van de printer.

  16. #16
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Laat dit bestandje eens lopen.
    Hiermee krijg je exact de juiste benamingen, onafhankelijk in welke taal office werkt.
    Plaats de resultaten.
    Je kan dit ook thuis proberen, zodat je inzicht krijgt in de werking.
    Als het thuis werkt dan kan je al grotendeels de problemen op het werk omzeilen.
    Eerst kijken dat er iets gebeurt, daarna aanpassen aan wat we willen dat gebeurt.
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door alphamax : 20 september 2020 om 11:47

  17. #17
    Senior Member
    Geregistreerd
    15 oktober 2015
    Dank voor je reactie. Ik begrijp dat dit bestandje afwijkt van wat #snb stuurde, waarmee ik in post #7 ook een overzicht van de printers stuurde.
    Dit is de uitkomst van jouw bestand:

    0 ActivePrinter Names
    1 Microsoft XPS Document Writer op Ne01:
    2 Microsoft Print to PDF op Ne02:
    3 Fax op Ne05:
    4 DYMO LabelWriter 450 op Ne07:
    5 Pascalle-Kantoor-(HP PageWide Pro 477dw MFP) op Ne00:
    6 Lex-kantoor-(HP PageWide Pro 477dw MFP) op Ne03:
    7 HP PageWide Pro 477dw MFP op Ne04:
    8 OneNote for Windows 10 op Ne08:
    9 DYMO LabelWriter 4XL (Kopie 1) op Ne06:

    Wat me verder opvalt is dat de gewenste printer waar het om gaat zowel usb aangesloten is, als via het netwerk.
    Ik heb de boel eens omgezet naar de usb versie, dus: HP PageWide Pro 477dw MFP op Ne04:
    Dit heb ik eens in de macro toegepast.

    Er lijkt nu verbetering in te komen, dus dat is positief. Hij zet de printer om en hanteert dan gewenste printerinstellingen.
    Maar ik heb de nodige problemen, wat weer veel tijd kost en gekost heeft, namelijk, de printer loopt met een simpele test macro vast en de printopdracht blijft in de wachtrij staan en is zeer hardnekkig te verwijderen, pas na de print spooler reset en de printer opnieuw opstarten. Zelf pc opnieuw opstarten. De macro loopt ook wat stroef, krijg eerst de melding 'reageert niet' en pas even later komt de print eruit.
    Het lijkt er op alsof hij 2 x een printopdracht wordt gegeven, waarbij er 1 niet doorheen komt (en dus nauwelijks te verwijderen is).

    Welke code gebruik ik nu (ik heb even de printerinstellingen erin laten staan, sorry voor de langere code dan wellicht noodzakelijk):

    Code:
    Sub testprint()
    '
    ' testprint Macro
    ' test om te kijken of de juiste printer wordt geselecteerd en de printerinstellingen worden gehanteerd
    '
    ' Sneltoets: Ctrl+r
    '
        Application.ActivePrinter = "HP PageWide Pro 477dw MFP op Ne04:"
        Application.PrintCommunication = True
        With ActiveSheet.PageSetup
            .PrintTitleRows = ""
            .PrintTitleColumns = ""
        End With
        Application.PrintCommunication = True
        ActiveSheet.PageSetup.PrintArea = ""
        Application.PrintCommunication = True
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0.7)
            .RightMargin = Application.InchesToPoints(0.7)
            .TopMargin = Application.InchesToPoints(0.75)
            .BottomMargin = Application.InchesToPoints(0.75)
            .HeaderMargin = Application.InchesToPoints(0.3)
            .FooterMargin = Application.InchesToPoints(0.3)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = False
            .CenterVertically = False
            .Orientation = xlLandscape
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = 100
            .PrintErrors = xlPrintErrorsDisplayed
            .OddAndEvenPagesHeaderFooter = False
            .DifferentFirstPageHeaderFooter = False
            .ScaleWithDocHeaderFooter = True
            .AlignMarginsHeaderFooter = True
            .EvenPage.LeftHeader.Text = ""
            .EvenPage.CenterHeader.Text = ""
            .EvenPage.RightHeader.Text = ""
            .EvenPage.LeftFooter.Text = ""
            .EvenPage.CenterFooter.Text = ""
            .EvenPage.RightFooter.Text = ""
            .FirstPage.LeftHeader.Text = ""
            .FirstPage.CenterHeader.Text = ""
            .FirstPage.RightHeader.Text = ""
            .FirstPage.LeftFooter.Text = ""
            .FirstPage.CenterFooter.Text = ""
            .FirstPage.RightFooter.Text = ""
        End With
        Application.PrintCommunication = True
        Selection.PrintOut Copies:=1, Collate:=True
    End Sub
    Hoe test ik:
    ik print eerst op een andere printer iets uit, met andere printerinstellingen.
    Dan draai ik de macro, om te kijken of hij op de juiste printer print met de gewenst printerinstellingen.
    Vervolgens zou nog weer teruggeschakeld moeten worden naar de default printer met de default instellingen. Dit punt staat niet in de macro omdat ik dacht dat het met onderstaande zou moeten lukken maar daar komt een foutcode:

    Application.ActivePrinter = strCurrentPrinter 'Returns printer output to your default printer

    Waarschijnlijk moet ik dan eerst iets in de kop definiëren?

    Hoe dan ook, hij geeft met de huidige test macro een correcte print...maar.....hij lijkt het 2 keer te willen doen, want er blijft nog een printopdracht hangen in de wachtrij.
    hoe kan ik dit oplossen?

    Kortom:
    is de basis code uit de macro correct?
    Waarom geeft dit een wachtrij print?
    Hoe krijg ik de default printer met default printinstellingen weer terug aan het einde van de macro?

  18. #18
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Welke printinstellingen wil je precies aanpassen?
    Orientatie van portrait naar landscape?
    De margins blijven die hetzelfde?
    Wat wordt er nog meer aangepast?

    Hoe minder er achter
    Code:
    With ActiveSheet.PageSetup
    staat, des te sneller
    Het probleem is dat de macro-recorder hier alle instellingen laat zien, terwijl er effectief maar een paar aangepast worden.

    Ik denk dat de traagheid in
    Code:
    Application.PrintCommunication = True
    zit.
    Laatst aangepast door alphamax : 20 september 2020 om 15:44

  19. #19
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Ik denk dat je deze code nodig hebt.
    1. Slaat de oude printer op
    2. Print met de nieuwe printer (landscape, hoge kwaliteit, A4-formaat en in kleur)
    3. Zet de oude printer weer terug.


    Code:
    Option Explicit
    
    Public Sub testprint()
    
        Dim strCurrentPrinter As String
    
        strCurrentPrinter = Application.ActivePrinter    ' huidige printer bewaren
    
        Application.ActivePrinter = "HP PageWide Pro 477dw MFP op Ne04:"
    
        If Val(Application.Version) >= 14 Then 'vanaf excel2010
            Application.PrintCommunication = False
        End If
        With ActiveSheet.PageSetup
            .Orientation = xlLandscape
            .Draft = False
            .PaperSize = xlPaperA4
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = 100
        End With
        If Val(Application.Version) >= 14 Then 'vanaf excel2010
            Application.PrintCommunication = False
        End If
    
        Selection.PrintOut Copies:=1, Collate:=True
    
        Application.ActivePrinter = strCurrentPrinter    'huidige printer terugzetten
    
    End Sub
    Laatst aangepast door alphamax : 20 september 2020 om 16:00

  20. #20
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Quote Origineel gepost door lexcellern Bekijk Bericht
    is de basis code uit de macro correct?
    Waarom geeft dit een wachtrij print?
    Hoe krijg ik de default printer met default printinstellingen weer terug aan het einde van de macro?
    De basiscode is goed, alleen valt er nog wat te snoeien.
    Waarom de wachtrij ontstaat weet ik niet, pagesetup is zeer trage code, dat kan meespelen
    Zie hierboven voor code die je oude printer weer netjes terugzet.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren