Saltar al contenido

CUADRO DE DIALOGO, Como detectar que el botón cancelar fue pulsado?


Recommended Posts

publicado

Hello, My Friends:

I have a workbook with several sheets, some of which are going to be printed at once, eighther to a .pdf file or to a paper. Doing so, there are several dialogs that are shown, for example: 

Dialog PrinterSetup to choose the printer.
Dialog Save PDF file as, in the case of a .pdf, to choose where to save the document.
Dialog Confirm Save to confirm the operation, of course.
Dialog Adobe PDF that shows the addition of sheets to the final document.

I am not sure, but only the first one is really an Application.Dialogs, the others are not, at least they do not appear in the VBA list as one.

All of the dialogs have a "Cancel" button, to cancel the printing. My code can detect if the Dialog PrinterSetup Cancel button has been clicked, but that it is. I DO NOT KNOW HOW TO DETECT if SOME OF THE OTHER IS PUSHED. I need help to figure out this.

Thanks.


Here is my code:
 

HTML Code: 
Private Sub TODOSBtn_Click()

Dim resp As Integer
Dim ws As Worksheet

On Error GoTo 10

PrintBORRAR
PrintBORRAVALUES

resp = MsgBox("Desea imprimir todos los costos de producción? ", vbYesNo + vbExclamation, "ALERTA")

If resp = 7 Then
TODOSBtn.Value = False
Exit Sub
End If

Dim answ As Boolean

answ = Application.Dialogs(xlDialogPrinterSetup).Show

If answ = True Then

Sheets(Array("AJONJOLI LABRANZA COMPLETA", "ALGODON LABRANZA COMPLETA", "ARROZ INV. LLANOS OCCIDENTALES", _
"ARROZ VER. LLANOS CENTRALES", "CAÑA PLANTILLA MECANICA", "CAÑA PLANTILLA MANUAL", "CAÑA SOCA MECANICA", _
"CAÑA SOCA MANUAL", "CARAOTA LABRANZA COMPLETA OCC", "CARAOTA SIN LABRANZA CENTRORIEN", _
"CEBOLLA LLANOS CENTRA LABR COMP", "CEBOLLA ANDES LABR DE SANGRE", "FRIJOL SIN LABRANZA", _
"FRIJOL LABRANZA COMPLETA", "GIRASOL LABRANZA COMPLETA", "GIRASOL SIN LABRANZA", _
"LECHUGA ANDES LABR SANGR COMPLE", "MAIZ LABRANZA COMPLET OCCIDENTE", "MAIZ LABRANZA MINIMA LLANOS CEN", _
"MAIZ SIN LABRANZA LLANOS CENTRA", "NARANJA FUNDACION", "NARANJA MANTENIMIENTO 2", "NARANJA MANTENIMIENTO 3", _
"NARANJA MANTENIMIENTO > 3", "PAPA ANDES LABR DE SANGRE", "PAPA CENTRO OCC LABR COMPLETA", _
"PIMENTON ANDES LABR SANGR COMPL", "REMOLACH ANDES LABR SANG COMPLE", "REPOLLO ANDES LABR SANGR COMPL", _
"SORGO INV LABRANZA COMPLETA", "SORGO INV LABRANZA MINIMA", "SORGO INV SIN LABRANZA", _
"SORGO NORTE VERANO OCCIDENTE", "SOYA SIN LABRANZA", "TOMATE INDUSTRIAL LLANO CENTRAL", _
"TOMATE CONS DIREC LLANO CENTRAL", "TOMATE CONS DIREC ANDES LABR CO", "ZANAHO ANDES LABR SANGRE COMPLE")).PrintOut ' , , 1

Else
MsgBox "La impresión fue cancelada.", vbOKOnly + vbExclamation, "OPERACIÖN CANCELADA"
TODOSBtn.Value = False
Exit Sub
End If


Exit Sub

10:
MsgBox "Se ha presentado un problema con la impresión.", vbOKOnly + vbExclamation, "ALERTA"
TODOSBtn.Value = False
Exit Sub

End Sub
publicado

1) me parece inapropiado traducir un texto de español a ingles (y con imprecisiones) para postear en ingles en un foro en español (más aun cuando el código denota estar dirigido a una interfaz con el usuario en español)

2) hablando de imprimir en PDF, cómo sabes a que impresora (virtual) se dirige la salida ? (adobe es solo una de las opciones disponibles y no es la más utilizada)

3) si se cuenta con la versión completa (licencia pagada) de "x" aplicación para PDF's, se supone que en la instalación SI se registra el modelo de objetos para interacción con VBA

comentas (si hubiera) mas "detalles en el tintero" ?

saludos,

hector.

publicado

Buen día Sr. Hector: 

1. Tiene usted razón, el planteamiento en ingles fue desatinado, por decir lo menos. Un lamentable error haberlo copiarlo de otro foro en ingles al que acudí, no me percaté que este es en español. Ofrezco mi sincera disculpa.

2. Hablando de español, "más" es un adverbio de cantidad, "aun" lo es de tiempo, estos deben preceder a aquellos.

3. Lo del .PDF fue un ejemplo. Tal como lo establece el planteamiento original.

4. Cierto, no sé la impresora. Por eso uso "...PrinterSetUp", la seleccionará el usuario.

5. Afortunadamente, mis aplicaciones han sido legalmente adquiridas y licenciadas, pero no logro entender que tiene que ver eso con la precisa necesidad de detectar que un proceso fue "cancelado", en este caso, con el único fin de mostrar, en mi aplicación, un mensaje cuyo texto sea "El proceso de impresión fue cancelado". 

Gracias,

Nelson

Hace 12 horas, Héctor Miguel dijo:

1) me parece inapropiado traducir un texto de español a ingles (y con imprecisiones) para postear en ingles en un foro en español (más aun cuando el código denota estar dirigido a una interfaz con el usuario en español)

2) hablando de imprimir en PDF, cómo sabes a que impresora (virtual) se dirige la salida ? (adobe es solo una de las opciones disponibles y no es la más utilizada)

3) si se cuenta con la versión completa (licencia pagada) de "x" aplicación para PDF's, se supone que en la instalación SI se registra el modelo de objetos para interacción con VBA

comentas (si hubiera) mas "detalles en el tintero" ?

saludos,

hector.

 

publicado
Hace 2 horas, necalabria dijo:

mis aplicaciones han sido legalmente adquiridas y licenciadas, pero no logro entender que tiene que ver eso con la precisa necesidad de detectar que un proceso fue "cancelado", en este caso, con el único fin de mostrar, en mi aplicación, un mensaje cuyo texto sea "El proceso de impresión fue cancelado".

por "aplicación con licencia pagada" me refiero a la aplicación que el usuario elija para hacer una impresión a PDF's ya que (hasta donde se) cuando excel "cede" el control (ya sea al usuario o a otra aplicación) solo puede "mantener bajo control" a aplicaciones externas cuando estas ajenas son instanciadas por excel-vba (y con ciertas limitantes)

otro punto a considerar es a cuantas versiones de excel necesitas dar soporte ?

(quizá una alternativa pudiera ser no dar tantas libertades al usuario ?)

saludos,

hector.

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    2    1

  • Crear macros Excel

  • Mensajes

    • Estimados buenos días, Quisiera saber si me pueden brindar su soporte con lo siguiente. Tengo lo siguiente una data de FECHAS CON CANTIDADES y quisiera saber si hay alguna formula para poder contabilizar desde la última fecha cuando días son consecutivos, ejemplo si en una fila queda vacío porque no se repite y la fecha matriz es la ultima fecha quiere decir que no se repite y es 0.   DIAS CONSECUTIVOS.xlsx
    • Buenos días con todo, espero se encuentren bien de salud!. Favor quisiera ver si me pueden ayudar con lo siguiente. Tengo una data en excel con los siguiente criterios FECHAS DIFERENTES , CODIGO Y NOMBRE DEL PRODUCTO. Lo que quiero realizar es que si en la fecha 17-02  tienes cantidad x de códigos y si estos no se repite el día siguiente 18-02 que automáticamente se borre, esto con la finalidad de tener un control de a partir del 18 al 19  se repite 1 vez y no me considere 2 desde fecha 17-02  teniendo en cuenta que el producto en el 18-02 no aparece. Lo sombreado son los que se repiten .   TABLA ELIMINAR.xlsx
    • Vale mil gracias, en vdd se agradece todo el apoyo y comentarios
    • Hola nuevamente. Por eso la importancia de lo que mencionas tú como "ruta relativa". Tal cual comentas, y aún sin llegar a algunos detalles importantes para ayudarte, en realidad tal cual te comenté le día miércoles, pues sí podías hacer como comentabas, era cosa de obtener los Id de Windows (como tú los llamas) y la ruta de OneDrive en casa usuario y eso sí se puede obtener con VBA y luego pasarlo a PQ, pero medio que te cerraste en que "PQ no puede trabajar con rutas relativas", cosa cierta pero siempre hay formas. Si SAP puede o no guardar en OneDrive o SharePoint, pues si está mapeado en la PC ¡claro que se puede! Pero bueno, creo que si te es útil tu propia propuesta ¡avanza con eso!
    • Perdona @Abraham Valencia pero he estado liado estos días. En realidad todo el problema se reduce a estos dos problemas: Problema 1: El script que "fabrica" SAP y que luego "pego" en la macro, no es capaz de  guardar archivos en SharePoint. He estado buscando, y en realidad muchas personas tienen ese problema (no poder guardar un Excel en SAP a través de VBA). Eso muy probablemente sean problemas de permisos, que no puedo cambiar (no soy administrador de nada). Como no puedo solucionarlo así, paso al plan B, que es guardar en Excel que me genera SAP en el ordenador de cada usuario que ejecute la plantilla (y que sí está guardada en SharePoint), para después con PowerQuery llamar a ese Excel (el export). Para ello, pretendo guardar el export, en la ruta relativa "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" donde los \..\..\..\ saltan las rutas personales de cada usuario (tipo C:\users\IDusuario\). Eso lo hace bien, y el archivo se guarda en la ruta de cada usuario que lo usa, pero surge el problema 2 Problema 2: PowerQuery no trabaja con rutas relativas del tipo  "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" necesita que sea del tipo fija "C:\users\IDusuario\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" pero claro, IDusuario es diferente para cada usuario.   Pero escribiendo todo esto, creo que he dado con una posible solución, no grabar el export en una ruta de usuario, sino en una en la raiz de C:, que siempre será igual para todos los usuarios, del tipo C:\Sap\export.xlsx que seria igual en todos los ordenadores. Asi sí podría decirle a PowerQuery que vaya siempre a la ruta C:\Sap\ que existirá en todos los ordenadores. Mañana intentaré hacer pruebas, aunque mi solución ideal seria que se pudiera guardar en el SharePoint. Saludos.
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.