Excel - Texto truncado al combinar Excel y Word 2007

   
Vista:

Texto truncado al combinar Excel y Word 2007

Publicado por Paco Hernandez (2 intervenciones) el 04/10/2013 18:43:18
Hola,
este es mi primero mensaje, así que aprovecho para saludaros a todos.

Ahí va mi problema. Espero poder explicarme bien....

Tengo una plantilla de Word que he combinado con una base de datos de Excel. La plantilla es un contrato de alquiler de viviendas y en la base de datos de excel tengo los datos de los inquilinos. A la hora de combinar los datos tengo un problema con una celda que contiene un texto largo, ya que solo me muestra los 255 primeros caracteres en Word (en Excel muestra todo el texto). He buscado información por la red y he visto que recomiendan actualizar el service pack pero sigo con el mismo problema.

No se como solucionarlo. A ver si alguien me puede echar una mano.

Muchas gracias!!

Saludos!!
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
Imágen de perfil de Antoni Masana

Texto truncado al combinar Excel y Word 2007

Publicado por Antoni Masana amasana@hotmail.com (268 intervenciones) el 07/10/2013 07:04:28
Como no sé exactamente que estás haciendo supongo que estás pasando los datos por la opción de correspondencia y se me ocurren dos causas una el propio proceso de correspondencia que no sea capaz de leer más de 255 caracteres y/o que el destino este limitado a 255 caracteres.

En el segundo caso es fácil de arreglar cambiando las propiedades, en el primero la cosa es un poco más complicada.

No tengo experiencia con el proceso Correspondencia pero si puedes envíame los ficheros y les doy un vistazo, no te aseguro que pueda resolver nada pero por intentarlo no se pierde nada.

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

Texto truncado al combinar Excel y Word 2007

Publicado por Paco Hernandez (2 intervenciones) el 07/10/2013 09:24:45
Hola Antoni,
la verdad es que cuando estaba preparandote el archivo para enviartelo he crado una nueva hoja de excel con un ejemplo y...sorpresa!!! Resulta que me funciona. No se muy bien porque. Quizas fué al actualizar el service pack, tal como leí por internet. La cuestión es que en el archivo viejo donde guardo todos los datos de los inquilinos me corta el texto al combinarlo, pero al crear uno nuevo me lo combina bien.

De toda formas, muchas gracias por el interes.

Ya que estamos, me surge otra duda. Una vez combinados los datos, tengo un contrato de alquiler completo, y me gustaria guardar una copia en PDF. He creado una macro en Word que graba el archivo en PDF con la fecha del dia en curso. ¿Seria posible adjuntar tambien al nombre de archivo el nombre del inquilino, que viene de un campo combinado con la base de datos Excel?

No se si me explico bien....

Gracias y 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 Antoni Masana

Texto truncado al combinar Excel y Word 2007

Publicado por Antoni Masana (268 intervenciones) el 07/10/2013 13:39:06
Tengo un proceso que despues de generar la correspondencia crea un DOC con los datos de cada cliente y esta es una macro que genera varios crea un PDF para cada cliente:

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
' </> --------------------------------------------------------------------- </>
' </> ---&--- </>                                              </> ---&---- </>
' </> ---&--- </>   Convierte Documento a PDF                  </> ---&---- </>
' </> ---&--- </>                                              </> ---&---- </>
' </> --------------------------------------------------------------------- </>
'                                                                             '
' Programado por..... Antonio Masana                                          '
' Fecha finalizado... Enero - 2010                                            '
'                                                                             '
' Revisado... 15/06/2011                                                      '
'                                                                             '
' </> --------------------------------------------------------------------- </>
 
Sub DocToPdf_V2()
    '
    ' ------------------------------------------------------'
    ' ----------   Convierte un documento a PDF   ----------'
    ' ------------------------------------------------------'
    ' Divide un documento en subdocumentos y los convierte  '
    ' a PDF                                                 '
    ' La cabecera ha de tener tres lineas para la conversion'
    '                                                       '
    ' IDXCLIENTE: <miembro>                                 '
    ' IDXPERIODO: <fecha>                                   '
    ' IDXCONCEPTO: <texto>                                  '
    '                                                       '
    ' Estos tres datos definen el nombre del fichero PDF    '
    ' ------------------------------------------------------'
 
    Dim n_Cuenta As Integer, _
        c_Direc_1 As String, _
        c_Direc_2 As String
 
    Dim c_Clie As String, _
        c_Fech As String, _
        c_Conc As String
 
    ' </> ---&--- </>   Textos
 
    Salida = "W:\Liquidaciones Mensuales\clientes": Crear_Dir = vbYes
 
    Texto_0 = "Convertir DOC a PDF"
    Texto_1 = "¿ Desea realizar la conversión a PDF ?"
    Texto_2 = "Destino de los ficheros PDF"
    Texto_3 = "Este documento no contiene información para convertir a PDF"
    Texto_4 = "Conversión de ficheros Word a Pdf completada."
 
    ' </> ---&--- </>   Pide confirmacion
 
    If MsgBox(Texto_1, vbOKCancel + vbQuestion, Texto_0) <> vbOK Then
       MsgBox "Macro cancelado", vbCritical, c_Texto_0
       Exit Sub
    End If
 
    ' </> ---&--- </>   Pide la ruta de Destino de los PDF
 
    Dir_Salida = InputBox(Texto_2, Texto_0, Salida)
 
    If Len(Dir_Salida) = 0 Then
       MsgBox "Macro cancelado", vbCritical, c_Texto_0
       Exit Sub
    End If
 
    If Dir_Salida <> Salida Then
       If Dir(Dir_Salida, vbDirectory) = "" Then
          MsgBox "No exite este diectorio " & Dir_Salida, vbCritical, c_Texto_0
          Exit Sub
       Else
          Crear_Dir = MsgBox("Crear un directorio para cada cliente en " & _
                           vbCrLf & _
                           vbCrLf & Dir_Salida, vbQuestion + vbYesNo, Texto_0)
       End If
    End If
 
    ' </> ---&--- </>   Ajustes especiales
 
    Application.EnableCancelKey = xlDisabled       ' --- Esc o Cntl+Break
    Application.ScreenUpdating = False             ' --- Refresco de pantalla
 
    ' </> ---&--- </>   Seleccionar texto
 
    Selection.WholeStory
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    contador = 0
    n_Cuenta = 0
 
    ' </> ---&--- </>   Cuenta el numero de documentos a crear
 
    With Selection.Find
        .ClearFormatting
        .Forward = True
        .Wrap = wdFindContinue
        .Text = "IDXCLIENTE"
        .Execute
        Do While .Found = True
           n_Cuenta = n_Cuenta + 1
           .Execute
        Loop
    End With
 
    ' </> ---&--- </>  No esta el texto IDXCLIENTE
 
    If n_Cuenta = 0 Then
       MsgBox Texto_3, vbCritical, Texto_0
       Exit Sub
    End If
 
    ' </> ---&--- </>  Crea los PDF
 
    For x = 1 To n_Cuenta
 
        ' </> ---&--- </>   Identificacion CLIENTE
 
        With Selection.Find
            .Text = "IDXCLIENTE"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
 
        Selection.Find.Execute
        Selection.MoveRight Unit:=wdCharacter, Count:=2
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        c_Cliente = Selection.Text
 
        ' </> ---&--- </>   Identificacion PERIODO
 
        With Selection.Find
            .Text = "IDXPERIODO"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
 
        Selection.Find.Execute
        Selection.MoveRight Unit:=wdCharacter, Count:=2
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        c_Periodo = Selection.Text
 
        ' </> ---&--- </>   Identificacion CONCEPTO
 
        With Selection.Find
            .Text = "IDXCONCEPTO"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
 
        Selection.Find.Execute
        Selection.MoveRight Unit:=wdCharacter, Count:=2
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        c_Concept = Selection.Text
 
        ' </> ---&--- </>   Copia paginas cliente
 
        Set mirange = Selection.Range
        mirange.Start = Selection.Range.End
 
        If x = n_Cuenta Then
           Selection.MoveRight Unit:=wdCharacter, Count:=1
           Selection.EndKey Unit:=wdStory, Extend:=wdExtend
        Else
           With Selection.Find
               .Text = "IDXCLIENTE"
               .Replacement.Text = ""
               .Forward = True
               .Wrap = wdFindContinue
               .Format = False
               .MatchCase = False
               .MatchWholeWord = False
               .MatchWildcards = False
               .MatchSoundsLike = False
               .MatchAllWordForms = False
           End With
           Selection.Find.Execute
           c_Cliente2 = Selection.Text
           mirange.End = Selection.Start
 
           Selection.Start = mirange.Start
           Selection.End = mirange.End
        End If
 
        Selection.Copy
 
        ' </> ---&--- </>   Crea un nuevo Documento
 
        Documents.Add Template:="Doc2Pdf", _
                      NewTemplate:=False, _
                      DocumentType:=0
        Selection.Paste
 
        Selection.WholeStory
        With Selection.ParagraphFormat
            .SpaceBefore = 0
            .SpaceBeforeAuto = False
            .SpaceAfter = 0
            .SpaceAfterAuto = False
            .LineSpacingRule = wdLineSpaceSingle
            .LineUnitBefore = 0
            .LineUnitAfter = 0
        End With
        Selection.HomeKey Unit:=wdStory
 
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "^b"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
 
        ' </> ---&--- </>   Crea la ruta de Salida
 
        c_Clie = Trim(Mid(c_Cliente, 1, Len(c_Cliente) - 1))
        c_Fech = Trim(Mid(c_Periodo, 1, Len(c_Periodo) - 1))
        c_Conc = Trim(Mid(c_Concept, 1, Len(c_Concept) - 1))
 
        c_Direc_2 = Dir_Salida
 
        If Crear_Dir = vbYes Then
           c_Direc_1 = Dir_Salida & "\" & c_Clie
           c_Direc_2 = Dir_Salida & "\" & c_Clie & "\" & c_Fech
 
           If Dir(c_Direc_1, vbDirectory) = "" Then MkDir c_Direc_1
           If Dir(c_Direc_2, vbDirectory) = "" Then MkDir c_Direc_2
        End If
 
        ' </> ---&--- </>   Para el nombre del PDF
 
        c_Titulo = c_Direc_2 & "\" & c_Clie & c_Fech & c_Conc
 
        ' </> ---&--- </>   Graba como PDF
 
        ActiveDocument.ExportAsFixedFormat OutputFileName:=c_Titulo, _
                                           ExportFormat:=wdExportFormatPDF, _
                                           OpenAfterExport:=False, _
                                           OptimizeFor:=wdExportOptimizeForPrint, _
                                           Range:=wdExportAllDocument, _
                                           From:=1, _
                                           To:=1, _
                                           Item:=wdExportDocumentContent, _
                                           IncludeDocProps:=True, _
                                           KeepIRM:=True, _
                                           CreateBookmarks:=wdExportCreateNoBookmarks, _
                                           DocStructureTags:=True, _
                                           BitmapMissingFonts:=True, _
                                           UseISO19005_1:=False
 
        ' </> ---&--- </>   Cierra el Documento Nuevo convertido a PDF
 
        Application.ActiveWindow.Close 0
    Next
 
    Selection.HomeKey Unit:=wdStory
 
    a = MsgBox(Texto_4, vbInformation, Texto_0)
End Sub
 
' </> -------------------------------------------------------------------- </>
' </> ---&--- </>                                              </> ---&--- </>
' </> ---&--- </>   F I N   D E   L A S   M A C R O S          </> ---&--- </>
' </> ---&--- </>                                              </> ---&--- </>
' </> -------------------------------------------------------------------- </>


En la cabecera del documento hay estas tres lines:

IDXCLIENTE: «Cod»
IDXPERIODO: 20aamm
IDXCONCEPTO: INTEREU

Las cuales busca la macro para identificar el nombre del PDF y las elimina por que no son parte del documento.

Si tienes alguna forma de identificar el Dato que deseas con la opcion Buscar] del Word o esta siempre en el mismo sitio intenta grabar una macro con una de las dos opciones para buscar el nombre y crear el PDF, de lo crontrario siempre puedes hacer una trampa como la mia.

Como puedes ver la macro es larga, no te sirve pero puede darte una idea de lo que te explico.

Como tengo que marcharme mañana te cuento más

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

Texto truncado al combinar Excel y Word 2007

Publicado por Willy Medina (1 intervención) el 16/10/2014 07:22:52
El ODBC de Excel corta automáticamente el tamaño del campo si en los 5 primeros registros se muestran caracteres de menos de 255 caracteres.

Hay 2 soluciones, incluir un valor con el numero máximo de caracteres en la primera fila del Excel o en su defecto modificar esta opción desde el REGEDIT

Detalles de como hacerlo en http://support2.microsoft.com/kb/189897
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

Texto truncado al combinar Excel y Word 2007

Publicado por XALO (1 intervención) el 30/03/2015 01:39:53
Investigando he dado con la solución, como resulta y sucede que analiza la longitud de los campos en las primeras filas del excel no se si es de la fila 1 a la fila 5, si esta longitud supera los 255 carácteres, entonces no lo corta y cuando lo combina lo hace correctamente. Es decir, me explico; yo en la fila 2 he puesto textos largos de más de 255 caracteres, de forma que a esos campos los interpreta no como texto de menos de 255 sino que los considera como un memo, es decir texto de mas de 255 caracteres y por tanto ya no lo corta porque lo interpreta como un texto amplio. Al combinar la corespondencia lo refleja correctamente sin que se quede cortado. Luego en la fila 2 en aquellos campos que van a contener textos largos poner un texto que supere los 255 carácteres.
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