Copiar celdas en hoja 1 u 2 dependiendo del tipo

Hola, buenos días.
Voy a intentar explicarme a ver si me sacáis del atolladero, (no tengo ni idea de macros):
Tengo una hoja en la que copio en diferentes columnas (todas consecutivas) los nombres, apellidos, dirección de clientes y el tipo de clientes que son (A, B o C). Según el tipo de clientes que sean (A, B o C) quiero que sus datos (nombres, apellidos, dirección, las 11 primeros campos vaya) se copien en distintas hojas.
Ej: Según termino de introducir el cliente A quiero que esa información se conserve en el la hoja "general"y que a la vez se copie en la hoja denominada "A" . El motivo de copiar estos datos en otra hoja es que cada cliente luego tiene campos diferentes dentro de su hoja especifica y que no me interesa sacar en la hoja general, ya que sino quedaría un "chorizo" muy largo.
¿Me he explicado bien? ¿Esto se puede hacer?
Si no mentendeis la pregunta os la vuelvo a formular otro día que tenga más luces...
Gracias por adelantado..

1 Respuesta

Respuesta
1
Es fácil pero tienes que aclarame algo, lo que tu llamas campos son columnas osea desde la A hasta 11 más la QUE se vayan a la hoja ... denominada A, ¿esto qué es el nombre de la hoja? ¿Tienes una hoja por cliente? Entonces serían 11 hojas, ¿y cómo sabemos a que hoja quieres mandar tu copia?
Te advierto que esto se hace con macro te explicaré como hacerlo pero tiene que ser así.
Aclarame estas preguntas y seguimos.
>Un saludo
>Julio
Hola Julio, gracias por responder lo primero y perdona la tardanza en responder lo segundo.
Como me explico fatal, te pongo el ejemplo claro de lo que quiero hacer.
Tengo un excel de actuaciones con clientes una hoja de este libro la he llamado general, otra hoja a la que he llamado pescadería, otra que se llama carnicería y otra que se llama charcutería.
Imagina que el cliente Pepe perez de Soria ha comprado en la pescadería 2kilos de merluza. Bien pues yo esto lo registro en la hoja "general" introduciendo una serie de datos (nombre, apellidos, tipo de ocmpramunicipio, descripción compra y así hasta once celdas por cada usuario). Como el cliente pepe perez ha comprado en la pescadería, lo que hago es copiar todos estos datos y pegarlos en la hoja de pescadería, así los sigo teniendo en la hoja generela pero también me aparecen en la hoja pescadería . Mi pregunta era que si directamente cuando yo introduzco estos datos en la hoja general no se pueden copiar directamente también en las otras hojas dependiendo del tipo de compra (pescadería, carnicería, charcutería) ejecutando una macro o como sea, ya que se hace muy pesado trabajar filtrando los tipos de compra y copiando y pegando los registros de 300 usuarios todos los días.
Espero haberme explicado mejor y muchas gracias por tu atención.
Eso es fácil, con una macro, funcionará así, busca en la columna (me tienes que especificar cual es) Pescadería,... etc cuando lo encuentres copias toda la fila, busca a la hoja con ese nombre y en la primera fila vacía pegas la fila.
Problema, que tú guardes en la primera hoja permanentemente tus entradas entonces siempre copiará todas y volverá a reescribirlas, si borras las entradas de tu primera hoja no importa siempre pondrá las nuevas. También podemos filtrar por cliente pero en cuanto mantengas que el mismo cliente ha realizado compras en la misma sección las copiará y las pegará, no es problema si no tienes clientes que se llamen igual.
Piensaló y me cuentas.
>Un saludo
>Julio
Hola Julio, la columna desde la cual quiero filtarar se llama "tipo" y es en la que se encuentran los cuatro valores por los que puedo clasificar los tipos de compra ("carnicería, pescadería, charcutería y frutería).
Efectivamente, siempre debe de haber un registro general en el que aparezcan todos las actuaciones de los clientes, y esas mismas actuaciones también deben aparecer en cada hoja dependiendo del tipo, por lo que si se duplican los registros en el mismo libro pero en diferentes hojas.
Ah, efectivamente no pueden existir dos clientes con el mismo numero de cliente pero un cliente si puede hacer varias comprar a lo largo del mes en la misma o distintas secciones. Si consigues hacer esto con un macro o como sea .. chapó
Gracias de nuevo por tu ayuda
Facilito, te explico y tu corriges en la macro lo que no esté bien( desconozco las ubicaciones de tus datos), primero vamos a crear un botón en tu barra de herramientas para que ejecutes la macro pulsando en él.
Pulsas arriba en Herramientas>Macro>Macros, en la ventana que aparece pones un nombre a la macro por ejemplo Copia_Pega pulsas en Aceptar. En la ventana que aparece del Editor de VBA pegas esta macro, tal cual no importan los comentarios están con signo delante para que no afecte:
Private Sub Copia_Pega()
'Evitamos el parpadeo de la macro mientras trabaja
Application.ScreenUpdating=False
'Creamos 2 variables para el valor de la celda donde estamos y otra para la sección
Dim val, cel As String
'Antes de empezar ponemos activa la celda A2 en todas las hojas
Sheets("General").Select   'Ojo con el nombre que sea igual
Range("A2").Select
Sheets("Carniceria").Select  ' El nombre de la hoja que sea igual
Range("A2").Select
Sheets("Pescaderia").Select   'El nombre de la hoja igual
Range("A2").Select
Sheets("Fruteria").Select     'El nombre de la hoja igual
Range("A2").Select
Sheets("Charcuteria").Select   'El nombre de la hoja igual que este o lo cambias
Range("A2").Select
Sheets("General").Select     
Range("A2").Select
'Ahora pasamos a una variable tanto la posición como la sección
cel = ActiveCell.Select
'El numero 2 se corresponde con la columna donde tienes las sección
'si no esta en B pones el numero de la columna donde este (Charcuteria, Fruteria etc)
'el 1 es A el 2 es B el 3 es C.......

val = ActiveCell.Offset(0, 2).Value
'Seleccionamos toda la fila hasta la ultima celda con datos
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
'Copiamos la seleccion
Selection.Copy
'Abrimos la hoja de la sección
Sheets(val).Select
'Nos situamos en la celda A2(recuerda que todas las hojas tienen que tener
'Cabeceras Codigo, Población, Nombre....las que sean

Range("A2").Select
'En la celda activa pegamos la fila de la hoja General
ActiveCell.PasteSpecial
'Dejamos la celda siguiente activa para volver a pegar en ella los siguientes datos
ActiveCell.Offset(1, 0).Select
'Volvemos a la hoja General
Sheets("General").Select
'Bajamos una fila
ActiveCell.Offset(1, 0).Select
'Repetirá esto hasta que la celda de la columna A este vacía
Do While ActiveCell.Value <> ""
'Otra vez variables para esa fila
cel = ActiveCell.Select
val = ActiveCell.Offset(0, 2).Value
'Otra vez sleccionamos la fila
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
'Nuevamente copiamos la fila
Selection. Copy
'Vamos a la hoja de la seccion
Sheets(val).Select
'En la celda activa pegamos la fila que traemos de la hoja General
ActiveCell. PasteSpecial
'Volvemos a dejar la celda activa la siguiente en blanco
ActiveCell.Offset(1, 0).Select
'Volvemos a la hoja General
Sheets("General").Select
'Bajamos una fila para seguir tomando datos
ActiveCell.Offset(1, 0).Select
'Esta instrucción hace volver a la macro a la linea que pone Do While...y repite
'hasta que la celda de la columna A este en blanco, no debe haber lineas vacías

Loop
'Fin de la macro
End Sub
Guardas los cambios y cierras el Editor de VBA y vuelves a tu hoja de Excel.
Ahora pincha en Herramientas>Personalizar y en la ventana que aparece pinchas en la pestaña Comandos en la columna izquierda bajas la barra de desplazamiento hasta que veas Macros pincha encima de la palabra Macro, en la columna de la derecha veras un icono con una carita sonriente, pincha en ella y sin soltarla la arrastras hasta la barra de herramientas de Excel, donde quieras ponerla, ahora sin cerrar nada, pulsas con el botón derecho del ratón encima del icono de la carita de tu barra de herramientas y en el menú que aparece donde pone nombre borras lo que hay y escribe el nombre de la macro en este caso Copia_Pega luego busca más abajo la opción de Imagen y texto y pulsas en ella, y por último abajo pulsas en Asignar macro, en la ventana que aparece estará la que has creado Copia_pega Aceptas y cierras todo. Vuelves a tu hoja, si tienes rellena algo de la hoja, pulsas en el botón y la macro hará el resto, recorrerá toda la hoja general llevando tus clientes a sus respectivas hojas. ¡OJO! Tienes que tener exactamente el nombre de las hojas como están en la macro, si no es así lo cambias en la macro o lo cambias en las hojas. Si no no encontrará las hojas y dará error. ( Me refiero a mayúsculas o minúsculas )
Si te ha servido comentas puntúas y cierras la pregunta, si necesitas algo más me lo dices. (Yo imprimiría esta explicación para seguir los pasos exactamente como te digo)
>Un saludo
>Julio
Impresionante Julio, muchas muchas gracias. Aunque reconozco que soy un patán y me sigue sin funcionar del todo bien, si todavía tiene paciencia para aguantarme mandame tu correo y te mandio el excel para que puedas asesorarme más explícitamente.
Muchísimas gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas