ingresar dato buscar comparar traer o avisar

04/12/2008 - 17:36 por Xdc | Informe spam
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.

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

[URL=http://img88.imageshack.us/my.php?i...013qg2.jpg][IMG]http://img88.imageshack.us/img88/45...qg2.th.jpg[/IMG][/URL]
(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
[URL=http://img370.imageshack.us/my.php?...016dm9.jpg][IMG]http://img370.imageshack.us/img370/...dm9.th.jpg[/IMG][/URL]

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 que ingrese 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.

tengo tambien un 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.
PD: cada vez que presiono enter en el rut se ejecuta otra macro que calcula
el DV en la celda "L6" para validar el rut, no c si sera impedimento para
lograr el otro objetivo.
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.
 

Leer las respuestas

#1 pepe
04/12/2008 - 18:17 | Informe spam
Creo que te complicas demasiado. Lo sencillo es mejor (casi siempre).
Prueba a hacer una simple lista con todos los datos y después, utilizando
esa hoja, obtén los datos que necesites.


"Xdc" escribió en el mensaje de noticias
news:
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.

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

[URL=http://img88.imageshack.us/my.php?i...013qg2.jpg][IMG]http://img88.imageshack.us/img88/45...qg2.th.jpg[/IMG][/URL]
(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.
[URL=http://img370.imageshack.us/my.php?...016dm9.jpg][IMG]http://img370.imageshack.us/img370/...dm9.th.jpg[/IMG][/URL]

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 que ingrese 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.

tengo tambien un 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.
PD: cada vez que presiono enter en el rut se ejecuta otra macro que
calcula
el DV en la celda "L6" para validar el rut, no c si sera impedimento para
lograr el otro objetivo.
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.

Preguntas similares