Guardar .xls como .txt En Escritorio

14/07/2005 - 05:54 por Antonio | Informe spam
Aquí está una pregunta simple (sospechoso que la respuesta no lo es..)

Este code guarda una parte del documento en al Dir A: como Text
Nesecito que tambien guarde una copia en el escritonrio

Thank's in Advance










Sub ImprimirCheque()

Dim FileSaveName As String
Dim TextExportExcel As Object
Set TextExportExcel = ThisWorkbook
Dim c As Object
Dim MyRange As Object

If Worksheets("Cheque").Range("R9") = "" Then
Range("R9").Select
MsgBox "Escriba la cantidad del cheque.", vbInformation, "MuEbLeS De
MeXiCo"
Exit Sub
End If
If Worksheets("Cheque").Range("P15") = "" Then
Range("P15").Select
MsgBox "Seleccione un concepto de pago.", vbInformation, "MuEbLeS De
MeXiCo"
Exit Sub
End If
Application.ScreenUpdating = False
Answer = MsgBox _
(" Esta el nombre o compañia y el numero de cheque correctos ? " &
Chr(13) & Chr(13) & _
"Si no lo es haga click en no y corrija la informacion ", vbYesNo,
"Maderas Y Muebles de Mexico")
If Answer = vbNo Then Exit Sub ' the macro ends if the user selects the
CANCEL-button
Application.GoTo Reference:="ImprimirCheque"
Selection.PrintOut Copies:=1, Collate:=True
Range("A1").Select
Sheets("PolizaToDisk").Select
ActiveSheet.Unprotect Password:="nelvita"
GetFile:

Set MyRange = ActiveCell.CurrentRegion.Rows
mypath = "a:\" 'set path to folder here, or use
'mypath=Application.DefaultFilePath
Range("B1").Select
'MsgBox "Text File Name := " & ActiveSheet.Name
FileSaveName = Application.GetSaveAsFilename _
(InitialFileName:=CStr(mypath & ActiveCell.Value), _
filefilter:="Text Files (*.txt), *.txt")
If Dir(FileSaveName) <> "" Then
Select Case MsgBox("File already exists! Overwrite?", vbYesNoCancel +
vbExclamation)
Case vbNo
GoTo GetFile
Case vbCancel
Sheets("Cheque").Select
Exit Sub
End Select
End If
'MsgBox " FileSaveName :" & FileSaveName
ActiveSheet.Protect Password:="nelvita"

WriteFile MyRange, FileSaveName
Sheets("Cheque").Select
ORDER# = Range("ChequeNo").Value
Range("ChequeNo") = ORDER# + 1
Sheets("Cheque").Select
Range("R6").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=NOW()"
Range("R9").Select
Selection.ClearContents
Range("P15").Select
Selection.ClearContents
Range("R9").Select
Application.ScreenUpdating = True
Application.StatusBar = "Espere!... Guardandoprogama y numero de cheque"
MsgBox "Se ha guardado una copia en el archivo Mis Documentos," _
& Chr(13) & Chr(13) & _
"Folder PlizaToCheck Como Procedimiento de BackUp.", _
vbInformation, "MuEbLeS De MeXiCo"
ActiveWorkbook.Save
Application.StatusBar = False
Exit Sub
Application.ScreenUpdating = True
End Sub
Sub WriteFile(MyRange, FileSaveName)
Dim FF As Integer, MyLine As String
FF = 0
FileNum = FreeFile ' next file number
' open the file & add currently selected data to the file (or create it)
Open FileSaveName For Append As #FileNum
'use output instead of append if you want to overwrite
'the entire file each time
For Each c In MyRange 'c=rows in range
'assuming five columns of data to be written to file
Print #FileNum, Cells(c.Row, c.Column).Text, _
Cells(c.Row, c.Column + 1).Text, Cells(c.Row, c.Column + 2) _
.Text, Cells(c.Row, c.Column + 3).Text, _
Cells(c.Row, c.Column + 4).Text
Next
Close #FileNum ' close the file
'MsgBox MyLine, vbInformation, "Last log information:"
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/07/2005 - 07:19 | Informe spam
hola, Antonio !

... una pregunta simple (sospechoso que la respuesta no lo es..)
... code guarda una parte del documento en al Dir A: como Text
... que tambien guarde una copia en el escritonrio [...]



prueba agregando las siguientes lineas ->al final<- de la macro 'ImprimirCheque'
[obviamente...] ANTES del 'End Sub' :))
[... otras lineas del codigo expuesto ...]
Dim Escritorio As String
With CreateObject("WScript.Shell")
Escritorio = .SpecialFolders("Desktop") & "\"
End With
FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")
[... lineas 'finales' del codigo expuesto ...]

probablemente 'algo' quede fuera del analisis [como la extension .TXT] -?-
si cualquier duda... 'algo falla'... [o informacion adicional]... comentas?
saludos,
hector.

p.d. ['de pasadita']... el codigo que usas tiene -algunas- lineas 'redundantes' [NO-necesarias] :-(
Respuesta Responder a este mensaje
#2 Antonio
17/07/2005 - 07:55 | Informe spam
Hola estimado forista, Hector:

El code que me diste corre un
Run-time error '76';
Pat not Found
en
FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")

Aqui es donde empiezo a imprimir el Cheque

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Cheque" Then
If InputBox("Escriba su Clave") <> "enero2012" Then
MsgBox "Consiga una clave!!"
Range("A8").Select
Cancel = True
End If
End If
End Sub





"Héctor Miguel" escribió en el mensaje
news:
hola, Antonio !

> ... una pregunta simple (sospechoso que la respuesta no lo es..)
> ... code guarda una parte del documento en al Dir A: como Text
> ... que tambien guarde una copia en el escritonrio [...]

prueba agregando las siguientes lineas ->al final<- de la macro


'ImprimirCheque'
[obviamente...] ANTES del 'End Sub' :))
[... otras lineas del codigo expuesto ...]
Dim Escritorio As String
With CreateObject("WScript.Shell")
Escritorio = .SpecialFolders("Desktop") & "\"
End With
FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")
[... lineas 'finales' del codigo expuesto ...]

probablemente 'algo' quede fuera del analisis [como la extension .TXT] -?-
si cualquier duda... 'algo falla'... [o informacion adicional]...


comentas?
saludos,
hector.

p.d. ['de pasadita']... el codigo que usas tiene -algunas- lineas


'redundantes' [NO-necesarias] :-(


Respuesta Responder a este mensaje
#3 Héctor Miguel
17/07/2005 - 10:57 | Informe spam
hola, Antonio !

El code que me diste corre un Run-time error '76'; Pat not Found en
FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")

Aqui es donde empiezo a imprimir el Cheque
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Cheque" Then
If InputBox("Escriba su Clave") <> "enero2012" Then
MsgBox "Consiga una clave!!"
Range("A8").Select
Cancel = True
End If
End If
End Sub



probablemente 'debas' cambiar la linea que causa el error...
de -> FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")
a -> FileCopy Mid(FileSaveName, 4), Escritorio & Mid(FileSaveName, 4)

comentario 'aparte'...
-> la forma en que 'condicionas' una autorizacion para imprimir la hoja 'Cheque'...
VA A FALLAR... si 'esa' hoja se encuentra [NO como 'activa'] en una seleccion de dos o mas hojas :-((

si 'persisten las molestias'... comentas?
saludos,
hector.

[de todas formas] te comento 'como tuve que'... construir las cadenas de la instruccion ->FileCopy "Origen", "Destino"<-
1) el error 76 significa que [efectivamente] el codigo 'no pudo encontrar' [o encontro errores en] la ruta ->especificada<-
2) de la linea donde 'marca el error'...
a) no tengo 'dudas' de la variable 'Escritorio' :) [igual y me equivoco] :-(( pero...
si generas/copias/... una macro +/- como la siguiente...
en un modulo de codigo 'normal' == Sub Localizar_Escritorio()
With CreateObject("WScript.Shell")
MsgBox .SpecialFolders("Desktop") & "\"
End With
End Sub
-> que 'te dice' el cuadro de mensaje ? [supongo que sera algo +/- como lo siguiente]...
C:\Documents and Settings\<Usuario>\Escritorio\
b) para la parte del 'origen' ->FileSaveName<- estoy 'aprovechando' la misma variable que tu codigo 'genera'...
1.- la asignas/llenas/... con las linea ques dicen...
FileSaveName = Application.GetSaveAsFilename _
(InitialFileName:=CStr(mypath & ActiveCell.Value), _
filefilter:="Text Files (*.txt), *.txt")
2.- [luego entonces]... el nombre 'lo toma' de: ->CStr(mypath & ActiveCell.Value)<-
donde 'mypath' lo asigna [4 lineas arriba] como: ->mypath = "a:\"<-
y el nombre 'se coplementa' con: ->ActiveCell.Value<-
3.- 'analizando' [lineas arriba] cual es la 'ActiveCell'...
-> dos lineas abajo del 'mypath'... tienes un... ->Range("B1").Select<-
4.- solo falta 'averiguar' cual es la hoja ->a la que pertenece<- la celda seleccionada ->'B1'<-
-> 4 o 5 lineas arriba del 'mypath'... tienes un... ->Sheets("PolizaToDisk").Select<-
c) para 'construir' el nombre de 'destino'...
1.- 'rescao' la ubicacion de 'escritorio' en la pc 'corriente' ->Escritorio = .SpecialFolders("Desktop") & "\"<-
2.- de los pasos 2, 3 y 4 [asumo que] el nombre 'se toma' de ->Sheets("PolizaToDisk).Range("B1")<-
3) una [posible] causa de error es [o pudiera ser] si el usuario ->modifica/cambia/...- el nombre del 'FileSaveName'
[p.e.] si define uno 'diferente' en el dialogo del ->Application.GetSaveAsFilename<- -???-
Respuesta Responder a este mensaje
#4 Héctor Miguel
17/07/2005 - 11:03 | Informe spam
hola, Antonio !

=> CORRECCION <= [o lo que es 'lo mismo']... 'fe de erratas' :))

probablemente 'debas' cambiar la linea que causa el error...
de -> FileCopy FileSaveName, Escritorio & Sheets("PolizaToDisk").Range("B1")
a -> FileCopy FileSaveName, Escritorio & Mid(FileSaveName, 4)

saludos,
hector.
Respuesta Responder a este mensaje
#5 Antonio
17/07/2005 - 21:55 | Informe spam
Hola Hector:

Todavia me da un error
Pat not Found en el mismo lugar

Antonyo




"Héctor Miguel" escribió en el mensaje
news:#
hola, Antonio !

=> CORRECCION <= [o lo que es 'lo mismo']... 'fe de erratas' :))

probablemente 'debas' cambiar la linea que causa el error...
de -> FileCopy FileSaveName, Escritorio &


Sheets("PolizaToDisk").Range("B1")
a -> FileCopy FileSaveName, Escritorio & Mid(FileSaveName, 4)

saludos,
hector.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida