Keresés

Új hozzászólás Aktív témák

  • eszgé100

    őstag

    válasz Delila_1 #47877 üzenetére

    Köszönöm, de nem pontosan ilyen formában kerestem a duplikációt.
    Van egy vba ciklusom, fentről lefelé halad, ezért nem releváns, hogy a tartomány felső részében található-e a duplikáció, lényeg, hogy a maradékban ne legyen, erre tökéletes volt Pakliman formulája, szerencsére működik ez is automatikusan, ha táblává alakítom. egyébként örök hálám az ötletért, megmentettél egy kör guglizástól :)

    Valós felhasználása egyébként az lesz, hogy B oszlopban lesznek elérési útvonalak, többi oszlopban különböző paraméterek a ciklusnak, és az utolsó oszlopban lesznek tárolva a válaszok a Save&Close-ra. Ha az adott fájlt később még használja a ciklus, akkor nyitva hagyom (válasz no), ha nem akkor mentés és zárás (yes), példában pont fordítva kérdeztem, de az már csak részletkérdés.

    Ezzel kapcsolatban meg is érkeztem ma esti fejtörőmhöz:

    Ciklusomban egy bizonyos ponton elérkezek a nyomtatáshoz

    Select Case CStr(printer)
                Case "col"
                    Application.ActivePrinter = col
                  tp.PrintOut copies:=CStr(copies)
                Case "bw"
                    Application.ActivePrinter = bw
                    tp.PrintOut copies:=CStr(copies)
                Case Else
                    MsgBox "No printer selected"
            End Select

    Majd ezután megvizsgálom, hogy Save&Close "yes"-e?

    If CStr(saveandclose) = "yes" Then
                Excel.Workbooks(fileName).Close SaveChanges:=True
                Else: GoTo nextraw
                End If


    Itt kezdődnek a bajok, a kettő közé kellene valami, ami megakasztja a cilkus további futását, amíg ez az ablak be nem záródik.

    Ugyanis, ha várni kell a nyomtatóra valamiért, akkor az ciklus egyszerűen bezárja a fájlom még mielőtt el lett volna küldve a nyomtatóra.

    Próbáltam ezt, wordben ok, de sajnos excelben nem működik:

    While Application.backgroundPrintingStatus > 0
            Application.Wait (Now + TimeValue("00:00:01"))
    Wend

    Simán Application.Wait-et sem akarok használni, mert akkor 1000 évig tartana, míg végez a ciklus, plusz azt sem tudom mennyi időt kellene pontosan meghatároznom.

Új hozzászólás Aktív témák