Wie bekomme ich es hin ?? in einer Textbox ( ist in einer Userform ) würde ich gerne einen Pfad mit strg+v einfügen nun benötige ich einen Comandbutton der mir genau diesen Pfad nehmen wir mal an C:TestTest1test2test3 alle dateien in diesem Ordner ausdrucken auf Standarddrucker
Vieleicht kannst du mir ja helfen. Ich bin nun schon den ganzen Tag auf der Suche und habe leider nichts gefunden :_(
das gehört zwar in ein VB-Forum, aber dennoch hier meine Lösung:
1. API-Verweis
In einem Modul-Kopf bitte folgende API-Funktion einfügen:
1 2 3 4 5 6
Public Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation _ As String, ByVal lpFile As String, ByVal lpParameters _ As String, ByVal lpDirectory As String, ByVal nShowCmd _ As Long) As Long
Public Function StartDoc(ByVal DocOrAppName As String, _ Optional ByVal ArgumentsOfApp As String = "", _ Optional ByVal Pathname As String = "", _ Optional ByVal RunCommand As String = "Open", _ Optional ByVal fhwnd As Long = 0) As Boolean
Dim tmppath$ Dim Result& Dim Ansicht As Integer
Const SW_Hide = 0 Const SW_SHOWNORMAL = 1
10 On Error GoTo StartDoc_Error
20 If Pathname = "" Then 30 If InStr(DocOrAppName, "") Then 40 tmppath = Mid(DocOrAppName, 1, _ InStrRev(DocOrAppName, "") - 1) 50 Select Case Mid(tmppath, Len(tmppath) - 1, 1) Case ":" 60 tmppath = tmppath & "" 70 End Select 80 Pathname = tmppath 90 End If 100 End If
110 If RunCommand = "Open" Then 120 Ansicht = SW_SHOWNORMAL 130 Else 140 Ansicht = SW_Hide 150 ArgumentsOfApp = vbNullString 160 Pathname = "C:" 170 End If 180 Result = ShellExecute(fhwnd, RunCommand, DocOrAppName, ArgumentsOfApp, _ Pathname, Ansicht) 190 If Result > 32 Then 200 StartDoc = True 210 Else
220 End If
230 Exit Function
240 On Error GoTo 0 250 Exit Function
StartDoc_Error:
260 MsgBox "Fehlernr.: " & Err.Number & " (" & Err.Description & ") in Prozedur StartDoc von Modul mdlGlobal", , "Fehler in Zeile: " & Erl End Function
1 2 3 4 5 6 7 8 9 10 11 12 13
Public Sub Print_all(sPfad as string) dim sFile as String dim Result
sFile = Dir(sPfad & "*.*")
do while sFile"" Result = StartDoc(sPfad & sFile , , , "Print") sFile = Dir() Loop
End Sub
3. Als letztes jetzt einfach die Funktion wie folgt aufrufen: (Achtung Luftcode, bitte überprüfen und ggf. anpassen)
In Deinem Klick-Event vom Button jetzt einfach:
call Print_all(myTextbox.text & "")
Achtung:
Mit dieser Funktion können keine Grafikdateien gedruckt werden und es müssen alle Dateien mit einer Anwendung assoziiert sein.
Die ShellExecute-API kennt noch weitere Parameter.
Open = öffnen der Datei (in StartDoc enthalten)
So kann man mit der API auch auf einen speziellen, also nicht den Standarddrucker, wie folgt ausdrucken:
Das habe ich aber in der StartDoc nicht enthalten. Sollte aber nun kein Problem sein, das noch zusätzlich mit aufzunehmen. 8)
Gruß Ahmed
FreePDF_Multidoc (PS2PDF mit vielen Optionen f. FreePDF) File2PDF (komplette Verzeichnisse auf einen Streich umwandeln) findest Du alles hier: http://amTools.de
bitte zumindest einen Vornamen, damit wir persönlich reden können. 8)
Zitat von Anonymoussorry das ich noch mal fragen muss aber verstehe nichts :-( kannst du mir evl eine Beispieldatei hochladen ?? Das wäre super
Zu Deiner Frage.
Ich vermute einmal es handelt sich um eine Word o. Excel-Userform, wo du diese Prozeduren ausführen möchtest.
Daher brauchst Du nur Dein VBA-Modul öffnen, alle Prozeduren in einem öffentlichen Modul kopieren und speichern. Jetzt in Deinem Userform einfach ein Command-Button einfügen und im Klickereignis wie folgt:
1
call Print_all(myTextbox.text & "")
Dabei musst Du lediglich den myTextbox.txt durch den Namen der echten Textbox austauschen. In der Textbox hast Du doch ein Pfad angegeben.
Hier habe ich einmal ein Modul und ein Userform für Word erstellt. Das muss eventuell noch ein bisschen angepasst werden.
So sollten z. B. echte MS-Office-Dateien direkt über die Objektbibliotheken ausgedruckt werden. Ist nämlich z. B. eine Instanz von Word offen und wird über die Routinen weiter Doc-Dateien gedruckt, so kann es zu Problemen kommen.
Wie man aber Office-Dateien über die Objekt-Bibliotheken ausdrucken kann, findest Du tausende Hinweise.
Einfach das Userform und das Modul in Word/Excel importieren.
Gruß Ahmed
FreePDF_Multidoc (PS2PDF mit vielen Optionen f. FreePDF) File2PDF (komplette Verzeichnisse auf einen Streich umwandeln) findest Du alles hier: http://amTools.de