Saltar al contenido

Ajustar contenido de celdas automatico


Recommended Posts

publicado

[ATTACH]38602.vB[/ATTACH][ATTACH]38603.vB[/ATTACH]

Un buen dia para toda la comunidad, he buscado entre los inumrables temas solucionado pero no he encontrado ninguno el cual me pueda dar solucion al siguiente tema o si en otro caso seria posible. Tengo plantillas en el siguiente archivo, lo siguiente que deseo es que al momento de buscar con la macro las celdas se adecuen de acuerdo al contenido que ellas tengan automatico, sin necesidad de hacerlo manualmente como muestro en las imagenes, sin que se pase el contenido de la hoja 2 a la hoja 1.. espero me halla dejado entender y me puedan dar una mano. si en caso no se pudiera realizar lo pedido, como hacer una macro que exporte el contenido de la plantilla a una hoja de word..Un fuerte abrazo a la distancia.. Gracias!!

post-82387-145877007746_thumb.jpg

post-82387-145877007748_thumb.jpg

ejemplo_plantilla.rar

ejemplo_plantilla.xls

publicado

Si lo he entendido bien, usted necesita ajustar las dimensiones de la celda o de alguna selección en particular, para que muestre el texto contenido en toda su extensión. Si es así, basta con que incluya en la macro el siguiente código:

With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With[/CODE]

El código sale de la grabación automática de una macro en la que selecciono formato de celda y ajustar texto.

publicado

Son 2 macros que tengo en cada plantilla (buscar y limpiar) donde iria el codigo que Ud. me ha proporcionado?? me podria dar una mano en cuanto al codigo o tengo que hacer una nueva macro que me ajuste la hoja por completo.... Saludos desde Perú

publicado

En el archivo que usted adjuntó no figuran macros. Yo pensaba que usted necesitaba ajustar textos en todas las celdas, pero si se trata de un asunto distinto, debería ver las macros primero y hacerme una idea más exacta del problema.

Saludos desde España.

publicado

Gracias xluismix. He bajado el archivo y estoy analizándolo. Lamentablemente al tratarse de celdas combinadas, el formato de texto ajustado no funciona bien y aunque se le fuerce desde VBA no obedece cabalmente.

Se me ocurre un truco que consiste en medir la longitud de caracteres del campo y crear una función que estime la altura de fila necesaria de acuerdo a ese dato. VBA si es capaz de forzar la altura de una fila al valor dado, sin miramientos respecto a celdas combinadas.

Estoy con ello y en breve le diré si me funciona o no. En caso afirmativo sería muy sencillo añadir unas pocas lineas de código a las subrutinas "constancia", "estudio", "administrativo", "externo", "racionalizacion". En caso negativo vaya por delante un elogio a la excelente aplicación que está usted manejando. Mis felicitaciones al desarrollador.

publicado

y si en caso fuese negativo como Ud. hace mencion, seria otra opcion realizar una macros que exportes los datos de una determinada plantilla a una hoja de word (obiamente con todos los datos completos)

publicado

Después de hacer varias pruebas, a mi me funciona bien. Advertencia: se trata de una nueva subrutina añadida a cada una de los cinco módulos que son gobernados por los botones "Buscar".

La nueva subrutina se invoca al final de la escritura en las celdas y su funcionamiento es el siguiente: chequea una serie de filas por sus índices, cuenta los caracteres que tiene la celda a mostrar y calcula la altura necesaria para que se puedan leer claramente segun dos tipos: celdas largas y celdas cortas.

Creo que los ajustes que yo he puesto le irán bien, pero en caso contrario, puede usted reajustar los anchos (65 para fila larga y 40 para corta, y el módulo de altura mínima de fila, que es de 16)

No es una gran solución, pero puede sacarle del paso y en caso de que note algún desajuste, puede usted añadir más celdas en el código de las nuevas macros.

El archivo de Excel completo excede el tamaño permitido por el foro, por lo que le mando sólo los nuevos módulos exportados y unidos en un ZIP para que usted copie y pegue sobre los antiguos.

Saludos de nuevo desde un lluvioso Madrid.

20130514_Reajustar_Altura_Fila.zip

publicado

Un excelente y extraordinario aporte mi buen amigo, he colocado otro boton de ajuste y le asignado la macro correspondiente, pero tengo estos incovenientes en algunos puntos 12., 16., y 17. como muestro en las imagenes, es en la primera plantilla de "contancia"..no quisiera que el contenido de la pagina 2 pase a la pagina 1, sino que quede tal como esta, se puede realizar?

[ATTACH]38766.vB[/ATTACH][ATTACH]38767.vB[/ATTACH]

Saludos desde un caluroso Perú - Piura, Sullana

post-82387-145877007787_thumb.jpg

post-82387-145877007789_thumb.jpg

publicado

He vuelto a probar y en mi caso se ajusta bastante bien. No se me ocurre a qué puede ser debido su desajuste, pero el código de la nueva subrutina es:

Sub reConstancia()
Dim filasLargas() As Variant, filasCortas() As Variant, i As Integer
Dim largo As Integer, alto As Double

filasLargas = Array(31, 34, 62, 65)
filasCortas = Array(13, 15, 26, 36, 41, 43, 57, 72)
'Ajuste de filas largas

For i = 0 To 3

largo = Len(Rows(filasLargas(i)).Cells(1))

alto = 16 + 16 * Application.WorksheetFunction.Quotient(largo, 65)

Rows(filasLargas(i)).EntireRow.RowHeight = alto

Next i
'Ajuste de filas cortas

For i = 0 To 7

largo = Len(Rows(filasCortas(i)).Cells(2))

alto = 16 + 16 * Application.WorksheetFunction.Quotient(largo, 40)

Rows(filasCortas(i)).EntireRow.RowHeight = alto

Next i

End Sub[/CODE]

El alto de fila básico es 16 (se cita 4 veces) y los largos de caracteres básicos son 65 y 40. Solo puedo decirle que ajuste estos valores a su propia máquina y pruebe con varios ejemplos de diferente longitud hasta que encuentre el que se acopla bien a lo que luego va a tener que imprimir.

Para que el contenido de la página 2 no pase al de la 1 debe forzar el salto de página de impresión en la fila que desee. Puede hacerlo colocando una sentencia simple. Por ejemplo si quiere que sea en la fila 52

[CODE]
Rows("52:52").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell[/CODE]

publicado

Saludos mi estimado funciona perfecto, pero seria posible que el contenido de la hoja 2 no se pase a la hoja 1, es decir como muestro en la siguiente imagen quisiera que el contenido de la hoja 2 no pase a la 1...un ejemplo te muestro en la imagen Nº 2. espero me halla dejado entender..

[ATTACH]38788.vB[/ATTACH] [ATTACH]38789.vB[/ATTACH]

seria mucha molestia pedirte que me mandaras el archivo completo con las macros de ajustes de texto en sus respectivas plantillas, te lo agradeceria mucho.. mi correo: segundo526arrobahotmail.com, o subir el archivo al servidor Mega.. Gracias por tu valioso tiempo y dedicacion

post-82387-145877007796_thumb.jpg

post-82387-145877007798_thumb.jpg

publicado

Lo único que ocurre es que se desplaza el límite de salto de página. Puede forzarlo a la línea que le interese con las dos líneas de código que le puse en la respuesta anterior. Es ya una cuestión de tanteos que tiene que hacer usted. Ensayar, probar, ensayar, probar...

Creo que va contra las normas del foro intercambiar correos electrónicos. Yo no lo sabía cuando empecé y me llamaron la atención.

No tengo acceso a ese servidor Mega.

No tiene más que cambiar sus cinco módulos por los cinco que yo le mandé. Es un simple copia y pega.

En este sentido no puedo ayudarle más. Admito que la solución es muy particular y si ve que le vale, debe adaptarla a sus necesidades.

publicado

Muchisimas gracias me a servido de mucho, una ultima pregunta como hacer para la impresion de las plantillas mismas, pero que esa impresion sea en ambas caras es decir al seleccionar las paginas 1 y 2 (de arriba hacia abajo) me de como resultado las pagina 1 (en la primera cara) y pagina 2 (segunda cara), existe esa posibilidad?.. espero me deje entender

publicado

Eso ya no depende de Excel, sino de la impresora en cuestión. Tendrá que configurarla para imprimir a dos caras, si es que tiene esa opción. Si no la tiene, tendrá que hacerlo de forma manual: imprimiendo primero una cara, luego tornándola e imprimiendo la otra.

Saludos.

publicado

Porque siempre me aprarecen estas ventanas a que se debe??

[ATTACH]38846.vB[/ATTACH][ATTACH]38847.vB[/ATTACH][ATTACH]38848.vB[/ATTACH]

Firma del error:

AppName: excel.exe AppVer: 12.0.4518.1014 AppStamp:45428263

ModName: vbe6.dll ModVer: 6.5.10.20 ModStamp:45187577

fDebug: 0 Offset: 00111497

Codigo Depurador:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target = Cells(5, 3) Then busca.Show

End Sub

¿alguna idea?? cuando has estado manejando el archivo te sucedio lo mismo??

[ATTACH]38849.vB[/ATTACH]

post-82387-145877007823_thumb.jpg

post-82387-145877007825_thumb.jpg

post-82387-145877007827_thumb.jpg

post-82387-145877007828_thumb.jpg

publicado

He vuelto a abrir el archivo y a trabajar con él y no me da ese error. El código está colocado en una hoja y dice que si la casilla activa (target) es cells(5,3), entonces se muestre un formulario que se llama busca. A mi se me activa bien.

¿Que te está pasando?

No lo sé con certeza, pero la descripción de error coincide con algo que he sufrido alguna vez. Si has copiado y pegado los módulos que yo te corregí debes asegurarte de que en los modulos de código que has corregido no quedan lineas en blanco arriba. Repasalos y limpia posibles líneas en blanco en cabecera de los módulos. No sé porqué, pero suele dar error y te obliga a salir de Excel. Es una experiencia que yo sufrí y también le he oído contar a otros compañeros.

publicado

he revisado minusiosamente todo los modulos y codigos de todo el archivo y he borrado los espacios en blancos y aun asi me arroja el mismo error? ya lo tengo hace tiempo, y no me deja trabajar tranquilo.

publicado

Si no hubiese alguna otra solucion a este pequeño y fastidioso conveniente, doy por culminado y cerrado el Tema.. Saludos y Bendiciones para toda la comunidad y personalmente a su familia..Gracias por su atencion y tiempo

Archivado

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

×
×
  • 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.