Hola a todos!!
a ver si me podeis ayudar,teniendo en cuenta que apenas tengo idea de VB.
He hecho un Formulario en excel con varios campos basicos que utilizo de entrada para gestionar un manual de compras de importacion.
Resulta que al traspasar los datos con la macro a una Hoja 2! ,que es un informe general donde junto a estos datos hay otros campos asociados y calculados,
las formulas se me fastidian al incorporar la macro las filas SIEMPRE A LA PRIMERA FILA,para evitar esto me los tendria que incorporar a la ultima fila cada vez
que añado datos al formulario.No se si me he explicado,pongo un ejemplo:
1ª orden 2ª orden 3ª orden
nombre............PEDRO ANTONIO LUIS
ciudad............MURCIA VALENCIA ALICANTE
edad................. 20 25 30
en la hoja 2 u hoja resumen me salen de la sigueinte forma:
nombre ciudad edad
luis alicante 30
antonio valencia 25
pedro murcia 20
Y DEBERIAN DE SALIRME AL REVES,EMPEZANDO POR PEDRO Y TERMINANDO POR LUIS GRACIAS DE ANTEMANO ppg1958@hotmail.com
Está claro que tienes que rehacer tu macro para que añada los datos nuevos la final.
Esto de añadir datos nuevos en la primera fila es un truco que se solía utilizar para conservar el formato, porque al insertar una fila bajo el encabezado se mantenía el formato de la fila que había antes. En la versión 2007 si pones tus datos en una tabla se aplica el formato aunque los añadas al final, así que no es necesario hacerlo así.
¿puedes adjuntar la macro o copiarla aquí para que le eche un vistazo? sin verla no te puedo decir más.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
gracias Pacomejia;se que puedo hacerla mediante un formulario de esos normales,pero como todavia no he aprendido a
diseñar esos formularios para cambiarle fuentes,colores,etcc...prefiero hacerla en este modelo.Te adjunto un ejemplo aproximado
de lo que quiero.La pestaña Introduccion es el" formulario",la pestaña "consolidacion" es donde se recogen los datos,
espero tus noticias,Un saludo y gracias nuevamente
veo que tu macro va y viene muchas veces de una hoja a la otra
también veo que no insertas una fila entera, sino que insertas celda a celda, con lo que las fórmulas se quedan descolgadas
te aconsejo lo siguiente:
en primer lugar convierte los datos de la hoja consolidación en una tabla, así las funciones se extienden solas y te despreocupas de este tema.
no es necesario que copies y pegues cada valor, puedes asignar los valores a las celdas, por ejemplo: Sheets("CONSOLIDACION DE DATOS").Range("C6").Value=Sheets("INTRODUCCION DATOS FACTURA").Range("C8").Value Si quieres poner los datos al final de la lista en vez de al principio, no insertes una fila, sitúate al final de las celdas con datos y empieza a pegar valores allí. Para esto es muy útil Offset. También puedes utilizar Cells(fila,columna), o Range, que es lo que he utilizado en este caso. La idea es seleccionar la celda libre del final, y empezar a poner ahí los valores del formulario. los rangos referidos a esa celda libre son A1, para la columna A, B1 para la columna B, etc. este es mi método alternativo:
Sub INTRODUCCIONAlternativa() ' http://www.necesitomas.com/excel ' buscamos la última celda de la hoja consolidación Sheets("CONSOLIDACION DE DATOS").Select Range("A5").Select If IsEmpty(ActiveCell.Offset(1, 0)) Then 'si no hay datos activo la celda de debajo del encabezado ActiveCell.Offset(1, 0).Select Else 'si hay datos, activo la celda de debajo de todos los datos ActiveCell.End(xlDown).Offset(1, 0).Select End If With ActiveCell .Range("A1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C5").Value .Range("D1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C6").Value .Range("F1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C7").Value .Range("C1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C8").Value .Range("E1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C9").Value .Range("H1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C10").Value .Range("J1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("C11").Value .Range("L1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F6").Value .Range("N1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F7").Value .Range("P1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F8").Value .Range("R1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F9").Value .Range("T1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F10").Value .Range("V1").Value = Sheets("INTRODUCCION DATOS FACTURA").Range("F11").Value End With ' borras las celdas del formulario como antes Sheets("INTRODUCCION DATOS FACTURA").Select Range("E13").FormulaR1C1 = "" Range("C5").FormulaR1C1 = "" Range("C6").FormulaR1C1 = "" Range("C7").FormulaR1C1 = "" Range("C8").FormulaR1C1 = "" Range("C9").FormulaR1C1 = "" Range("C10").FormulaR1C1 = "" Range("C11").FormulaR1C1 = "" Range("F6").FormulaR1C1 = "" Range("F7").FormulaR1C1 = "" Range("F8").FormulaR1C1 = "" Range("F9").FormulaR1C1 = "" Range("F10").FormulaR1C1 = "" Range("F11").FormulaR1C1 = "" Range("E14").Select End Sub
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.