Clever-Excel-Forum

Normale Version: PDF Dateien per Excel VBA drucken und als Mail Anhang versenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallöchen,

hier mal der Code zum Adobe schließen. Die API's bitte mit oben einfügen.

Code:
'API, hier verwendet fuer Adobe Reader schliessen
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Sub Close_AdobeReader()
'Variablendeklarationen
Dim strName As String, hwnd As Long
Const WM_CLOSE = &H10
'Name Adobe Window
strName = "AcrobatSDIWindow"
'Window finden
hwnd = FindWindow(strName, vbNullString)
'wenn gefunden, dann beenden
If hwnd Then SendMessage hwnd, WM_CLOSE, 0, ByVal 0&
End Sub

Die Schleife kannst Du so verlängern:

Do While Cells(iCnt, 1).Value <> "" Or Cells(iCnt, 3).Value <> ""
Hallo Andre,

habe nun den Code entsprechend angepasst und es funktioniert perfekt!! Vielen herzlichen DANK für deine Hilfe! Thumbsupsmileyanim Thumbsupsmileyanim Thumbsupsmileyanim

Das mit dem Acrobat Reader schließen habe ich wieder ausgeschaltet, da sonst der Druck abgebrochen wird! Aber ist nicht schlimm, das Fensterchen kann ich manuell zu machen! :)


Vielen lieben Dank nochmals & einen schönen Tag!

LG
Alexandra
Hallo Andre,

noch eine Frage, wenn ich eine Lieferscheinnummer und eine Rechnungsnummer in A6 bzw C6 habe und dann in A7 und C7 leer dann würde der Code stoppen obwohl ind A8 und C8 zB noch eine weitere Nummer stehen könnte! Wie kann ich vermeiden dass so was passiert? zB. bei Eingabe in A8 obwohl A7 leer ist, dass automatisch die Eingabe in A7 geschoben wird?


Danke
sofern du die schleife mit der Abbruchbedingung  "Abbruch wenn Zelle leer ist" noch benutzt, dann sollte dies evtl. geändert werden.  

Alternativ kann man ja für die Schleife die letzte benutzte Zeilennummer ermitteln und  diese als Abbruchkriterium nutzen. 
Wenn du in der Schleife dann auf eine leere Zelle stößt, einfach auslassen.

Noch eine andere Idee. Über den Autofilter leere Zeilen ausblenden und nur den sichtbaren Bereich abarbeiten.
Hallöchen,

Du kannst auch bei Do While zusätzlich das verwenden:

Do While ( ... Or ... ) And iCnt < ActiveSheet.UsedRange.Row

(die bisherigen Bedingungen einklammern)
Hallo Andre,


funktioniert sehr gut! Vielen lieben Dank für dein super Hilfe!

LG
Alexandra
Seiten: 1 2