Word - Guardar doc con el nombre del valor que da un campo combinado

   
Vista:

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 08/04/2013 18:55:14
Hola a todos, tengo los ojos escocidos de tanto buscar información y no hallarla, a ver si me podéis echar una manita.

Resulta que desde una base de datos de access 2003, combino y filtro un solo registro hacia un documento de Word. Hasta ahí todo bien, lo que quiero es “Guarda como” el documento de Word, utilizando una macro en Word, la cual me guarde el archivo "x.doc", con el nombre del valor del registro que se ha filtrado desde la consulta de access, es decir el valor que en pantalla estoy viendo del campo combinado, llámese el campo combinado: nombre su registro “Juan01”. quedando el resutado a llamarse "Juan01.doc"
Espero que alguien me pueda arrojar algo de luz. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Word
- Cursos de Word
- Temas de Word
- Chat de Word
información
Cursos y Temas de Word
- Curso de Word 2000
- Manual básico de World
- Curso de Word 7.0
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 09/04/2013 11:00:04
Esto es una macro para Guardar como...:

1
2
3
4
5
6
7
8
9
10
11
12
13
ChangeFileOpenDirectory "C:\Documen\"
    ActiveDocument.SaveAs2 FileName:="popo.docx", _
        FileFormat:=wdFormatXMLDocument, _
        LockComments:=False, _
        Password:="", _
        AddToRecentFiles:=True, _
        WritePassword:="", _
        ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, _
        SaveFormsData:=False, _
        SaveAsAOCELetter:=False, _
        CompatibilityMode:=14


Tambien se puede hacer asi:

1
2
3
4
5
6
7
8
9
10
11
12
ActiveDocument.SaveAs2 FileName:="C:\Documen\popo.docx", _
        FileFormat:=wdFormatXMLDocument, _
        LockComments:=False, _
        Password:="", _
        AddToRecentFiles:=True, _
        WritePassword:="", _
        ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, _
        SaveFormsData:=False, _
        SaveAsAOCELetter:=False, _
        CompatibilityMode:=14


No es que sea muy listo, es que este codigo lo he conseguido poniendo Grabar Macro y ejecutar la acción.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 09/04/2013 18:02:57
Hola Antonio, muchas gracias, lo que realmente queria es que el nombre con que lo guarda ejemplo que tú has puesto "popo.doc" no sea siemple fijo con ese nombre, de ahi que necisate que lo guardará como el nombre del campo combina que he filtrado desde una base de datos.
Te explico: en word ya tengo filtrado un registro de access con varios campos

1campoCombinadoNombre = Jose
2campoCombinadoApellido= López Sanchez
3campoCombinadoDireccion= Gran Via, 34
Lo que pretendo es que el documento que he abierto y que ya esta combinado con acces llamese "12345abc.doc". Desearía que con una macro lo guardara con el nombre del 1campoCombinadoNombre, es decir el valor que me "Jose.doc"

Dios, espero haberme explicado con claridad, a veces me lio yo solo.
La verdad es que no se si se puede hacer o no. Ojala que si, pues el algo que hago diariamente con una repetición de 50 a 60 veces al día.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 10/04/2013 06:40:10
Perdona Miguel, el que no se ha explicado bien soy yo.

Me faltaba añadir a la explicación de ayer que el nombre de fichero se puede sustituir por una variable.

Ten encuenta que algunos caracteres pueden no se validos para nombre de fichero como por ejemplo estos:

1
\ + , ; /


1
2
3
4
5
6
7
8
9
10
11
12
13
14
c_Fichero = "C:\Documentos\" + Mid$(Nombre,1,4)
 
   ActiveDocument.SaveAs2 FileName:=c_Fichero, _
        FileFormat:=wdFormatXMLDocument, _
        LockComments:=False, _
        Password:="", _
        AddToRecentFiles:=True, _
        WritePassword:="", _
        ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, _
        SaveFormsData:=False, _
        SaveAsAOCELetter:=False, _
        CompatibilityMode:=14
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 10/04/2013 10:20:29
He intentado poner en practica tu codigo, pero me da el error:

Se ha producido el error '5152' en tiempo de ejecución:
No es un nombre de archivo válido.

Si le coloco comillas a "fichero" me lo guarda bien en D:\documentos\fichero.doc. Pero claro, lo que queremos es que el "fichero" tome el valor del campo combinado llamado "EscanerW"


Aquí esta el código que he puesto. No se que falla.

fichero = "D:\documentos\" + Mid$(EscanerW, 1, 4)

ActiveDocument.SaveAs FileName:=fichero, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 10/04/2013 13:17:25
Pon que te muestre el contenido de la variable antes de guardar el documento y cuando funcione la quitas

1
2
3
4
5
6
7
8
fichero = "D:\documentos\" + Mid$(EscanerW, 1, 4)
 
MsgBox "<" & fichero & ">"
 
 ActiveDocument.SaveAs FileName:=fichero, FileFormat:=wdFormatXMLDocument,
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="",
ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=
False, SaveFormsData:=False, SaveAsAOCELetter:=False


Con esto veras que contiene la variable.

Por otro lado veo que el texto de la accion esta MAL

1
2
3
4
5
6
7
8
9
10
11
12
ActiveDocument.SaveAs2 FileName:=fichero, _
    FileFormat:=wdFormatXMLDocument, _
    LockComments:=False, _
    Password:="", _
    AddToRecentFiles:=True, _
    WritePassword:="", _
    ReadOnlyRecommended:=False, _
    EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, _
    SaveFormsData:=False, _
    SaveAsAOCELetter:=False, _
    CompatibilityMode:=14


La zona marcara en negrita acaba con un SaveAs2 y falta el ultimo parametro el: CompatibilityMode:=14

Prueba a poner el 2 y el último parametro y si no funciona mira el contenido de la variable.

N O T A : Puedes tambien poner todo el contenido de la variable:

1
fichero = "D:\documentos\" + EscanerW
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 10/04/2013 16:44:17
Antonio hola de nuevo, siento la lata que te estoy dando, pensaba que seria una instrucción más facil de desarrollar. Vamos por partes.

1º El parametro "SaveAs2" no me funciona, tiene que ir sin el 2. así como "CompatibilityMode:=14" si los coloco me da error.

2º La instrucción funciona en estos dos casos.

A)
fichero = "D:\documentos\" + EscanerW

MsgBox "<" & fichero & ">"

ActiveDocument.SaveAs FileName:="fichero", FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False


Como podrás ver, con este código declaro forzoso que me guarde cada vez que ejecute la macro que todos los archivos se llamaran “fichero.doc”

B)
ChangeFileOpenDirectory " D:\documentos \"
ActiveDocument.SaveAs FileName:=InputBox("INTRODUCIR EL NÚM. ESCANER"), FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False

De esta otra forma, me hace la pregunta, y me guarda correctamente el documento con el nombre que hemos introducido, así con la ubicación. Pero claro, no es lo suyo, ya que no quiero introducir el valor a mano, puesto que en un par de horas tengo que hacerme unos 50 ficheros más o menos, lo que a veces me provoca que lo introduzca erroneamente.

3º Al poner el codigo, en el MSgBox no me muestra el valor del EscanerW.
Me salta el mensaje del contenido de la variable de esta forma <D:\fichero\>, le doy a acepta y me salta el típico mensaje "" Se ha producido el error '5152' en tiempo de ejecución: No es un nombre de archivo válido""

fichero = "D:\documentos\" + EscanerW

MsgBox "<" & fichero & ">"

ActiveDocument.SaveAs FileName:=fichero, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False


Conclusión, con este último Código, no me recoge el valor de la variable "fichero".

Joe que rabia. Tendría que funcionar, por probar, hasta he declarado el fichero como una cadena de datos

Dim fichero as String

P.D. Utilizo el office 2003.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 11/04/2013 07:14:44
Hola Miguel

Lo del SaveAs2 debe ser porque estoy utilizando Office 2010 y no el Office 2003 y esta gente de MicroSoft deben tener la politica de "Para que hacerlo sencillo si lo podemos complicar todo" o algo asi.

Por otro lado me resulta muy extraño que estas simples 2 línea de comandos no funcionen bien.

1
2
3
fichero = "D:\documentos\" + EscanerW
 
MsgBox "<" & fichero & ">"


El resultado de esto deberia ser un mensaje asi:

1
<D:\Documentos\xxx>


Donde las xxx es el contenido de la variable EscanerW. No entiendo como el MsgBox puede mostrar <D:\fichero\> ¿Y el texto Documentos? ¿Se lo ha comido?

Lo normal o mejor dicho lo mas habitual es que EscanerW este vacio y salga esto:

1
<D:\Documentos\>


Si se consigue que el MsgBox Muestre un mensaje correcto, es decir:

Disco + Barra + Directorio + Barra + Nombre fichero

Ejemplo: si el contenido de la variable EscanerW es Mi_Nombre_de_Fichero el resultado del MsgBox seria este:

1
<D:\Documentos\Mi_Nombre_de_Fichero>



El resto deberia funcionar. Hay algo que no veo en el codigo que esta mal y esta antes de la instrucción:

ActiveDocument.SaveAs FileName:=...


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel mlucasg@ono.com (14 intervenciones) el 11/04/2013 10:05:29
Buenos días Antonio, pues si, llevas razón, debería de funcionar, de hecho el mensaje funciona, y me muestro esto:
<D:\Documentos\>


Pero se come lo más importante "EscanerW" , el registro no esta vacio puesto que al abrir el documento, veo el campo "EscanerW" con su valor.
Si sustituyo el nombre del "fichero" por un inputBox, al escribirlo se lo traga, por lo tanto la instrucción a mi entender es correcta. El problema creo que tal y como se coloca el valor del campo en la instrucción, Word no es capaz de entender que tome dicho valor. Es más, cuando me salta el mensaje <D:\Documentos\> y acepto, automaticamente se me abre otro mensaje de Microsoft Visual Basic, indicandome el error 5152, Finaliza - Depurar - Ayuda, le doy a Depurar y me va a la macro correspondiente, mostrandome toda la instruccion en amarillo, indicandome que es ahí, donde esta el problema.




ActiveDocument.SaveAs FileName:=fichero, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False

Estoy atorado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 11/04/2013 11:09:21
Hola Miguel,

Creo que empiezo a ver la luz al final del tunel.

No domino el access y se poco de base de datos en Access / Word con lo que no se exactamente como arreglarlo pero si creo saber cual es el problema.

Vamos a ver por lo que no acabo de entender muy bien es si la base de datos la abre el Word o con el programa Microsoft Access abres la base de datos y el documento Word.

Para el caso es lo mismo al llamar a la funcion que debe grabar el documento, esta no sabe que la variable EscanerW es un campo de una determinada tabla de una base de datos y cree que es una variable local sin valor.

Hay al menos dos soluciones:

1.- Que no se como se hace. Decirle que EscanerW es un campo de la base de datos. En otro lenguaje que conozco ( CA-Clipper ) y que no tiene nada que ver con este seria con la siguiente sintaxis:

1
c_Fichero := "D:\Documentos" + Alias->Campo


Pero en Visual Basic no tengo niguna idea de como se define esto. Seguramente sea algo si:

1
c_Fichero := "D:\Documentos" + Objeto_DataBase.Campo




2.- Pasarle el campo como parametro a la funcion. Algo asi

Llamara a la función grabar:

1
Grabar EscanerW


Funcion Grabar

1
2
3
4
5
6
7
Public Sub Grabar(c_Texto)
    Dim c_Fichero as String
 
    c_Fichero = "D:\documentos\" + c_Texto
 
    ActiveDocument.SaveAs FileName:=c_Fichero, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
End Sub


Creo que nos vamos acercando.

Saludos de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 11/04/2013 16:02:51
Hola Antonio, yo por asi decirlo, soy un recien bautizado tanto en access como word, hago mis pinitos a base de leer y releer y como en este caso, de pedir ayuda en los foros cuando me atasco y ya no se por donde meterle mano. En fin a ver si con paciencia y constancia podemos dar una solución a esta cuestión.

Una cosa curiosa que he obsevado, es que cuando entro en la macro, si te fijas, lo he sombreado en azul, al posar el raton sobre el campo EscanerW, el propio Word me resalta con una etiqueta de que EscanerW = Vacio. Esto que me quiere indicar, que no hay un valor en este campo, lo he probado con varios campos combinados y en todos dice estar vacio.



¿Cómo es posible esto? Si cuando abro word combinando los datos, los estoy viendo en pantalla. Y luego dentro de Vb me dice que esta vacio.

Desde mi punto de vista, creo que no sabemos definir o hacer una llamada desde Word a un campo combinado, pero claro, yo soy un recien llegado al mundo de Visual Basic, y no deja de ser una mera opinión.

Lo que algumentas más arriba, lo he probado a groso modo y no me funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Antoni Masana (158 intervenciones) el 16/04/2013 12:59:59
Hola de nuevo Miguel

A falta de algo mejor se me han ocurrido varias ideas que desde luego no son lo mejorcito de la programación pero ayudan.

Soluciones desesperadas:

- Crear una VARIABLE publica ver tanto el acces como el Word.

- Crear una funcion publica con una variable estatica que puedan ver tanto el acces como el Word

- El acces graba en un fichero de texto X.TXT el nombre del documento. La macro del Word lee el fichero de texto, captura el nombre y lo borra.

No es lo mejor de la huerta pero sirve para una ensalada o no.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 18/04/2013 17:16:46
Jajaja , me ha gustado mucho tu expresión "No es lo mejor de la huerta pero sirve para una ensalada o no".

Después de mi último menseja y al ver pasar los días sin contestación, pense, a Antoni se se han agotado las ideas.

A mi se me encenció también la bombilla y estoy inmerso en esta nueva idea, tanto es así, que obcecado en esta idea, deje de entrar al foro, me absolvia todo el tiempo el maldito codigo.
Si te parece te la explico luego con detalle y te paso el codigo. Ahora mismo estoy en el trabajo y no tengo posibilidades.
Nuevamente te saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Roberto RCAMARGOG@GMAIL.COM (1 intervención) el 19/04/2013 18:25:42
Hola Miguel.

Me interesa saber si encontraste la solución pues tengo un problema semejante con una macro en Word.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 20/04/2013 09:12:45
Mi idea es la siguiente. En vista de que no podemos o no sabemos utilizar en Word el valor de un campo que viene de Access, he pensado lo siguiente:

He creado una macro con este codigo:
''''''' 1º.- DESIGNAMOS LAS VARIABLES PARA LO QUE HEMOS COPIADO EN NUESTRO PORTAPAPELES LO PODAMOS UTILIZAR PARA GUARDAR EL ARCHIVO COMO, CON EL NOMBRE QUE TENEMOS EN NUESTRO PORTAPAPELES

Sub Macro9()
Dim fichero As String
Dim strTemp As String
Dim MyData As DataObject
Set MyData = New DataObject
MyData.GetFromClipboard
strTemp = MyData.GetText(1)

'''''''''''2º.- AQUI HE DECLARADO UNA VARIABLE PARA UTILIZAR EL DÍA EN EL QUE NOS ENCONTRAMOS, Y POSTERIORMENTE GUARDAR LA CARPETEA - MIGUEL + LA FECHA ACTUAL, ASI CADA DÍA, ME GUARDARÁ EL TRABAJO EN UNA CARPETA CON LA FECHA EN QUE HICE EL TRABAJO (PARA MI NECESARIO)

Dim a As Date
Dim RutaCarpeta As String
Dim RutaArchivo As String
a = Date

''''''''''''' 3º.- CREAMOS LA CARPETA + LA FECHA ACTUAL DEL SISTEMA ''''''''''''''

RutaCarpeta = dir("d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy"), vbDirectory)
If RutaCarpeta <> "" Then
' MsgBox "LA CARPETA EXISTE"
Else
MkDir ("d:\") & "- Miguel_" & Format(a, "dd-mm-yyyy")
Shell "explorer.exe root = D:\" & "- Miguel_" & Format(a, "dd-mm-yyyy")
End If

'''''''''' 4º.- LE DECIMOS QUE GUARDE EL ARCHVIO EN LA CARPETA CREADA

RutaArchivo = "d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp & ".doc"
If RutaArchivo = "d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp & ".doc" Then
MsgBox RutaArchivo

''''''' 5º.- AQUI ES DONDE ME ATASCO, POR QUE HE INTRODUCIDO LA SIGUIENTE INSTRUCCION , DEBIDO A QUE A VECES SE PUEDE DAR EL CASO (a mi me pasa) A LA HORA DE GUARDA EL ARCHIVO, PUEDE QUE ANTERIORMENTE, YA HAYAMOS GUARDADO OTRO DOCUMENTO CON ESE MISMO NOMBRE DENTRO DE LA CARPETA, Y LO QUE NO DESEAMOS ES QUE MACHAQUE AL ANTERIOR DOCUMENTO. DE AHI LA PREGUNTA QUE DECLARAMOS, SI COINCIDE CON EL MISMO NOMBRE DE ARCHIVO A GUARDAR, ESCRIBELO TU A MANO EN EL MENSAJE QUE SALTA. SI NO COINCIDE PUES GUARDALO CON EL NOMBRE QUE TIENES ACTUALMENTE EN EL PORTAPAPELES.

ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & InputBox("YA EXISTE, INTRODUCIR OTRO NOMBRE")
'ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp
Else
'Application.Quit
ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp
End If

End Sub

''''¿ DE DONDE TOMO EL VALOR DEL CAMPO PARA EL PORTAPAPELES?
''' En nuestro doc, el campo llamese "x" lo que hago es ponerlo en el primer renglón de mi documento doc. Cambiando ell tamaño de letra a 1 y el color de la letra lo paso al mismo color que tiene el fondo de papel, en mi caso a blanco, con lo cual el campo ni se ve ni se aprecia.
La macro autoopen se encarga de ir a mi otro "doc", que previamente ya esta combinado con Acces, copia su contenido y lo pega en este nuevo, basicamente viene a ser como ha algumentado Antoni, pero a mi forzosamente, tenía que hacerlo con un doc, ya que lo que ejecuto con el autoopen es una estructura de tabla predefinida en Word y que en combinación con access me sirve para pegarla en este nuevo documento.

Solamente tenemos que añadir otro pequeño código, y pegárselo al que he dado más arriba, justo donde termina el punto 4º.-, el cual hace irse al principio del documento Word, copia el campo "X" el que esta cambiado su tamaño a 1 y color a blanco, una vez que lo tenemos en el portapapeles, la macro seguirá su instrucción y lo guardará con ese nombre.

Por Dios, espero que se me haya entendido.

Total, la cuestión más importante ahora mismos es, no se como hacerle comparar, que lo voy a guardar con el nombre que tengo en el portapapeles, ejemplo "pepe.doc" si ya existe en la carpeta de destino con ese mismo nombre, que me salte el mensaje InputBox "YA EXISTE, INTRODUCIR OTRO NOMBRE"
Hasta ahora, lo único que he consigo es que siempre me pide el nombre.
Que es lo que falla? alguna idea.
No se si es que le falta un bucle, o que no le estoy diciendo bien la dirección de lo que quiero comparar.


P.D. Para que vba nos reconozca las variables que hemos designado anteriormente, tenemos que tener activada la casilla Microsoft Forms 2.0 Objetc Library.
¿Como?, estando en Word, Herramientas /Macro/Editor de Visual Basic, en esta nueva pantalla, en Herramientas/ Referencias..
O bien estando en Word pulsando Alt+f11 y en el Menú>Herramientas/ Referencias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 21/04/2013 09:44:56
Se me había olvidado, aqui os dejo el enlace del archivo FM 2.0 que esta en Microsof o bien podeis buscar en SanGoogle. hay mucha referencia a ello.

http://support.microsoft.com/kb/224305/es

Simplificandolo todo un poco, aqui os dejo el codigo más depurado.
Unicamente falla a la hora de guardar el archivo, ya que si hay otro igual con el mismo nombre y extensión, lo machaca.
No logro saber o decirle, si el doc ya existe, que me pregunte a través de inputbox, con que nombre quiero guardarlo. Alguna sugerencia.

Tic-Tac-Tic-Ta-Tic-Tac-Ti-Tac...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub Macro1()
Selection.HomeKey Unit:=wdStory
Selection.PasteAndFormat (wdPasteDefault)
Selection.HomeKey Unit:=wdStory
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
  Dim fichero As String
  Dim strTemp As String
  Dim MyData As DataObject
  Set MyData = New DataObject
  MyData.GetFromClipboard
  strTemp = MyData.GetText(1)
Dim a As Date
a = Date
RuataA = dir("d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy"), vbDirectory)
If RuataA <> "" Then
 Else
   MkDir ("d:\") & "- Miguel_" & Format(a, "dd-mm-yyyy")
   End If
   RutaM = "d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp & ".doc"
   If RuataM <> "" Then
   ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & InputBox("Este archivo ya existe. Introducir un nombre distinto para guardar")
Else
   ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp
 End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Miguel (14 intervenciones) el 24/04/2013 13:04:36
Pues eso, ya lo he conseguido, después de mucho leer, y leer y leer, para luego terminar leyendo aun más, al final he optenido la recompensa. Aqui os dejo el codigo, para el que le pueda interesar, a ti también Ramón, que no me he olvidado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim fichero As String
  Dim strTemp As String
  Dim MyData As DataObject
  Set MyData = New DataObject
  MyData.GetFromClipboard
  strTemp = MyData.GetText(1)
Dim a As Date
a = Date
Dim rutaA As String
Dim RutaM As String
 
rutaA = Dir("d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy"), vbDirectory)
If rutaA <> "" Then
 Else
MkDir ("d:\") & "- Miguel_" & Format(a, "dd-mm-yyyy")
End If
     RutaM = "d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp & ".doc"
     Dim fso As New FileSystemObject
     Set fso = CreateObject("Scripting.FileSystemObject")
     If fso.FileExists(RutaM) Then
   ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & InputBox("Este archivo ya existe. Introducir un nombre distinto para guardar")
Else
   ActiveDocument.SaveAs FileName:="d:\" & "- Miguel_" & Format(a, "dd-mm-yyyy") & "\" & strTemp
 End If
End Sub


Saludos a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Hiram (1 intervención) el 29/08/2013 23:44:54
Hola, gracias a tu inquietud pude resolver mi problema que es similar al tuyo, la solución solo tuvo que ver con señalar hacia tu archivo de datos con la siguiente forma cuando defines tu variable:

Ruta para guardar el archivo + ActiveDocument.MailMerge.DataSource.DataFields("nombre de tu campo").Value

Ejemplo:
Mivariable= "C:\Mis documentos\" + ActiveDocument.MailMerge.DataSource.DataFields("DESCUENTO").Value

Espero que te sirva y a otros también

Suerte¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Marco (1 intervención) el 24/01/2014 22:31:37
Tambien estaba atrapado en como obtener el valor resultante de la combinacion de correspondencia y con tu ayuda me funciono por completo.!!!

Gracias..!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Martín martinuribechapinguero@hotmail.com (1 intervención) el 08/05/2014 21:12:22
Gran aporte amigos, me estaba rompiendo la cabeza bastante hasta que ví sus ensayos de prueba y error y resulta que el problema se resolvió muy fácil.

Muchísimas gracias por el aporte, les debo una.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Khristtian (3 intervenciones) el 26/05/2015 20:14:37
Prueba con esto.

Pon ese campo combinado como primer texto del documento.
Me explico: Debe ser el texto de la primera linea, así como la frase "Prueba con esto" de esta respuesta. Lo restante es el contenido de tu documento.

Ahora, ejecuta tu código y ve si los archivos generados toman el nombre del campo combinado.

Esto yo lo uso para formar archivos del tipo 2015 05.doc, 2015 06.doc

Esto nace de la simple lógica de cuando crear un documento word nuevo y pones guardar.... y te da como nombre del archivo la primera linea de tu documento.

Pro: Es rápido y lógico, no requiere ninguna linea de programación extra
Contra: Solo puedes usar como nombre de archivo palabras o conjunto de palabras separadas por espacio.

Ahora... te preguntaras... ¿No quiero que ese texto salga en el documento...? Simple... Formato de color de fuente: Blanco

Jejejeje

Es una opción... dentro de muchas


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Felix

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Felix (3 intervenciones) el 11/06/2015 18:43:54
Suban el archivo para ver como quedo....se ve muy interesante, compartan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar doc con el nombre del valor que da un campo combinado

Publicado por Marcelo mpickelny@yahoo.com (1 intervención) el 26/07/2015 15:50:07
Muy interesante.. creo que me puede servir para lo que estoy necesitando..
Si pueden suban como quedo todo para verlo

Yo necesito armar una pequeña macro en Word, que realice lo siguiente:
1- Poder guardar el documento actual en otra ubicación y agregarle al nombre actual que tiene el doc, la fecha. ( Guardariamos como: NombreActualDocumentoFechaActual en la nueva ubicación)

2- Al Documento actual ponerle la propiedad Oculto
Hasta ahora tengo lo siguiente:

ChangeFileOpenDirectory "E:\MisDocumentos\Informes" ' Lugar donde Guardo el informe generado

ActiveDocument.SaveAs2 FileName:=Format(Date, "dd-mmm-yyyy") & ".docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15

Como hago referencia al nombre actual del documento en la linea

ActiveDocument.SaveAs2 FileName:=Format(Date, "dd-mmm-yyyy") & ".docx",

y por otro lado cambiar el atributo a oculto al documento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar