Perdon y pregunta a KL s/ imprimir en pdf guardando como

31/01/2006 - 18:08 por Ralf | Informe spam
Primero disculparme por no seguir el hilo, pero es que mi outlook no me deja
(cosas de micro)
Me enviaste la macro para poder imprimir en pdf siguiente:
Sub Test()
Dim i As Long
For i = 1 To 31
Selection.Copy
With Workbooks("RESUMENMES.XLS").Sheets("PROFORMA")
.Range("C1") = Workbooks("DIAS.XLS") _
.Sheets(1).Cells(i + 1, "A")
.Range("Print_Area").PrintOut _
ActivePrinter:= "PDF995 en Ne00:", _
PrintToFile:= True, _
PrToFileName:= Environ("userprofile") & "\Mis Documentos\" &
i & "a.pdf"
End With
Next i
End Sub


Pero el problema es que en excel 97 creo que la funcion de vba PrToFileName,
no existe. Por otra parte me gustaría (si puede ser) que el nombre del
fichero no se construyera con la variable "i" sino con el dato del contenido
de la celda sita en c1 y que se recorre 31 posiciones.

¿Es `posible? Gracias

Preguntas similare

Leer las respuestas

#1 KL
31/01/2006 - 23:39 | Informe spam
Hola Ralf,

Pero el problema es que en excel 97 creo que la funcion de vba PrToFileName,
no existe.



Al margen de que PrToFileName no es una funcion sino un parametro del metodo PrintOut lo que dices es cierto: tanto que no existe
como que es un problema :-) Creo que va a ser dificil [por no decir imposible] evitar meter los nombres de archivos manualmente.

que el nombre del
fichero no se construyera con la variable "i" sino con el dato del contenido
de la celda sita en c1 y que se recorre 31 posiciones.



Sub Test()
Dim i As Long
For i = 1 To 31
Selection.Copy
With Workbooks("RESUMENMES.XLS").Sheets("PROFORMA")
.Range("C1") = Workbooks("DIAS.XLS") _
.Sheets(1).Cells(i + 1, "A")
.Range("Print_Area").PrintOut _
ActivePrinter:= "PDF995 en Ne00:", _
PrintToFile:= True, _
PrToFileName:= Environ("userprofile") & _
"\Mis Documentos\" & .Range("C1") _
& "a.pdf"
End With
Next i
End Sub

Saludos,
KL
Respuesta Responder a este mensaje
#2 Héctor Miguel
01/02/2006 - 06:16 | Informe spam
hola, chicos !

Ralf escribio en el mensaje ...
... el problema es que en excel 97... PrToFileName no existe.
Por otra parte me gustaria... que el nombre del fichero no se construyera con la variable "i"
sino con el dato del contenido de la celda sita en c1 y que se recorre 31 posiciones

KL escribio en el mensaje ...
... lo que dices es cierto: tanto que no existe como que es un problema :-)
Creo que va a ser dificil [por no decir imposible] evitar meter los nombres de archivos manualmente...





1) puedes indicarle al codigo que los intruduzca 'manualmente' [por ti, como... 'responderle ANTES de que pregunte'] :))
-> usando el metodo sendkeys 'instantes antes' de que se muestre el dialogo con 'la peticion' del nombre del archivo ;)
es uno de los casos donde resuta mas util el metodo [considerado veces... 'riesgoso' por su interaccion con la GUI] :(

2) [me parece que] la instruccion 'Selection.Copy' viene quedando 'de mas' [desde su origen] -?-

3) solo me queda la duda de si es posible que la carpeta '\Mis documentos' pudiera 'emproblemar' a versiones win no castellano -?-
al igual que en la parte del 'puerto' de la 'ActivePrinter' -> en NE00:
-> la preposicion [si en castellano... 'en' si en ingles... 'on' si en frances... 'sur' etc.]

un ejemplo 'a prueba' en seguida [y 'de pasadita'... por si no quieres 'dejar' la impresora PDF995 como la 'activa por omision']

saludos,
hector.
=Sub Imprimir_enArchivo_97()
Dim Activa As String, Directorio As String, Archivo As String, Dia As Byte
Activa = Application.ActivePrinter
Application.ActivePrinter = "PDF995 en Ne00:"
With CreateObject("WScript.Shell")
Directorio = .SpecialFolders("Mydocuments") & "\"
End With
For Dia = 1 To 31
With Workbooks("ResumenMes.xls").Sheets("Proforma")
.Range("c1") = Workbooks("Dias.xls").Sheets(1).Cells(Dia + 1, "a")
Archivo = Directorio & .Range("c1") & "a.pdf"
Application.SendKeys Archivo & "~"
.Range("Print_Area").PrintOut PrintToFile:= True
End With
Next
Application.ActivePrinter = Activa
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida