FORMULARIOS DE EXCEL 2007

4 envíos / 0 nuevos
Último envío
pitercasimate
Imagen de pitercasimate
Offline
última acción: Hace 13 años 1 semana
alta: 21/03/2011 - 17:44
Puntos: 35
FORMULARIOS DE EXCEL 2007

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

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 7 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
debes rehacer tu macro

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.

pitercasimate
Imagen de pitercasimate
Offline
última acción: Hace 13 años 1 semana
alta: 21/03/2011 - 17:44
Puntos: 35
Re: debes rehacer tu macro

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

 

AdjuntoTamaño
File INTRODUCCION DE FACTURAS M.xlsb72.71 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 7 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: debes rehacer tu macro

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.