Inicio > Software y aplicaciones > elsamatilde > ingresar dato buscar comparar traer o avisar

ingresar dato buscar comparar traer o avisar

Experto:
Usuario:
Fecha: 05/12/2008
Valoración: (5,00 sobre 5) Categoría: Software y aplicaciones
04/12/2008
xdcfan, usuario preguntando en Software y aplicaciones
Usuario
hola a todos los expertos.
tengo un libro de 3 hojas matricula, base, busqueda en ese orden a modo de registro de alumnos el usuario ingresa los datos y presiona el boton copiar para enviar los datos a la hoja "base" acumulando los registros con esta macro que logre modificar de una respuesta que dio elsamatilde a otro usuario.

Sub Copiando()
fila2 = Sheets("Base").Range("A65536").End(xlUp).Row + 1
col2 = 1 'los datos se guardan a partir de la col A
Sheets("Matricula").Select
ActiveSheet.Range("c6").Copy Destination:=Sheets("Base").Cells(fila2, col2)
'repetir por cada dato a enviar, variando fila y col, e incrementando en 1 la variable col2
ActiveSheet.Range("p6").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 1)
ActiveSheet.Range("c8").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 2)
ActiveSheet.Range("u8").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 3)
ActiveSheet.Range("am8").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 4)
ActiveSheet.Range("av8").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 5)
ActiveSheet.Range("c10").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 6)
ActiveSheet.Range("x10").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 7)
ActiveSheet.Range("aj10").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 8)
ActiveSheet.Range("as10").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 9)
ActiveSheet.Range("c12").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 10)
ActiveSheet.Range("x12").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 11)
ActiveSheet.Range("ap12").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 12)
ActiveSheet.Range("c14").Copy Destination:=Sheets("Base").Cells(fila2, col2 + 13)
End Sub
(por cierto se copio hasta el formato de la celda en la otra hoja, se puede evitar??)
esta es la hoja de registro que se va llenando en cada fila vacia siguiente luego de presionar el boton copiar.

lo que quiero lograr es que al ingresar el valor en la celda "C6" que es el RUT, se ejecute una macro al presionar enter, esta vaya a la hoja "base" busque si existe el registro y me avise (si es posible rellenar los otros campos al existir, sino no importa(para eso esta la hoja busqueda)), de no existir el registro que pase a la celda nombres "P6" (tambien es posible a modo de codigo hacer que lo ingresa en ciertas celdas se convierta en la 1ra mayúscula? (con formulas se hacerlo =nompropio(Celda)) y asi pase de celda en celda al presionar el intro.
esta tambien el boton limpiar
Sub Limpiar()
Range("c6,p6,c8,u8,am8,av8,c10,x10,aj10,as10,c12,x12,ap12,c14").Select
Selection.ClearContents
End Sub
me gustaria que me dejase posicionado en la celda "C6" luego de presionarlo.
eso seria muchas gracias de antemano por lo que pudiesen hacer por mi y disculpen tremendo post.
de resolverme esta duda la hoja busqueda no seria necesaria gracias dnuevo.
salu2
Pancho.
04/12/2008
xdcfan, experto respondiendo en Software y aplicaciones
Experto
Hola Pancho:
Tu consulta además de extensa contiene 'varias' consultas.
Te aclararé algunas, el resto por favor ingresa una nueva con el tema preciso.
1 - Viendo tu imagen se me ocurre que no necesitas una macro para llenar la matricula, sino la función BUSCARV en cada campo.
No se vé la imagen de la base de registros, así que imaginemos que en la col A están los Rut, en col siguientes el resto de campos empezando por el nombre.
Entonces en la celda donde va el nombre escribí esta fórmula:
=BUSCARV(C6;BASE!A2:K100;2;FALSE)
El argumento '2' representa la col B, en cada celda irás modificando según la col que tenga el dato a devolver.

2- Para que no se te copien los formatos en una rutina de copiado, debés invertir el pase:
Con formato:
Activesheet.range("C6").Copy destination:=Sheets("Base").Cells(fila2,col2)
Sin formato:
Sheets("Base").cells(fila2,col2) = Activesheet.range("C6")

3- En la rutina de limpieza, antes del End Sub agregá esta línea:
Activesheet.Range("C6").select

Saludos
Elsa

* No te pierdas la promoción de Dbre
http://es.geocities.com/lacibelesdepunilla/manuales
04/12/2008
xdcfan, usuario preguntando en Software y aplicaciones
Usuario
gracias elsamatilda ya resolviste por mi lo del formato y el posicionamiento del boton limpiar muy agradecido, respecto a lo de la formula lo se hacer pero no es lo que quiero, pues la idea es seguir enviando registros a la hoja base hasta completar un total como maximo de 45 alumnos, pues si pongo una formula que al coincidir el "RUT" de la hoja "Matricula" con el "RUT" de la hoja "Base"  me traera la informacion claro y asi el resto de los datos, pero si no coicide debere completar los datos restantes y sobreescribire estas formulas contenidas en las celdas, por eso pensaba en una especie de macro o rutina que lo hiciera al momento de presionar el intro y buscase en base la coicidencia de no encontrarla pasarme a la siguiente celda y comezar a llenar los datos.

no tengo idea por que no se ve la pic de Base pero pongo un nuevo link para que la veas, de antemano gracias por lo venidero, por responder y por solucionarme lo anterior.
aqui el nuevo link de la hoja "Base" aunque atinaste al orden ;)
salu2.
Pancho.
04/12/2008
xdcfan, experto respondiendo en Software y aplicaciones
Experto
Podría armarte 1 rutina para hoy pero tendrás más necesidades mañana, porque no estás contemplando la posibilidad de 'modificar' o 'eliminar' registros.

Quisiera que primero revises un ejemplo que tengo en mi sitio de Descargas. Se llama Interactuando con Userforms, donde el primer ejemplo es lo más indicado para tu caso.

Si luego igual decides continuar con tu modelo, te enviaré una rutina para ello

Saludos
Elsa
05/12/2008
xdcfan, usuario preguntando en Software y aplicaciones
Usuario
jeje, bueno voy a ser un tanto comprensible, un poco humilde y un tanto ambicioso jeje pero como sea su voluntad yo estare por aqui esperando y mirando otras respuestas, a ver si abro otra total ya me has solucionado la mayoria, mientras reviso los ejemplos me dejaste, muchas gracias de verdad esperare tu pronta respuesta para evaluarte, volver a agradecerte y finalizar este tema.

Muchas Gracias y salu2
Pancho.
05/12/2008
xdcfan, experto respondiendo en Software y aplicaciones
Experto
Por regla general se responde 1 tema x usuario, te he respondido 3 y además tendrás un ejemplo para usar......
No sé qué más esperarás, pero por mi parte el tema está cerrado, por lo que te solicito cierres esta consulta, así otros también pueden consultar (solo podemos tener un límite de consultas abiertas)

Luego cuando armes tu modelo, podés volver a consultar si necesitas algún ajuste.

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla/manuales
05/12/2008
xdcfan, usuario preguntando en Software y aplicaciones
Usuario
aps, sorry mil disculpas pues, y muchas gracias nuevamente has sido de gran ayuda, seguire por mi cuenta a ver que puedo hacer.
mil salu2
Enlaces patrocinados