Foros del Web » Soporte técnico » Ofimática »

Copiar datos de una hoja a otra dependiendo de otra celda

Estas en el tema de Copiar datos de una hoja a otra dependiendo de otra celda en el foro de Ofimática en Foros del Web. Hola chicos!! he vuelto a molestar por estos lugares.. ando liada, como siempre, bueno el caso es que se manejar PHP, pero una maldita macro ...
  #1 (permalink)  
Antiguo 25/02/2011, 21:40
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Copiar datos de una hoja a otra dependiendo de otra celda

Hola chicos!!

he vuelto a molestar por estos lugares.. ando liada, como siempre, bueno el caso es que se manejar PHP, pero una maldita macro en Excel me esta sacando canas de colores

ok, bueh!! XDDD el caso es el siguiente, tengo un libro, con varias hojas, la primera contiene un listado de alumnos con una columna en que se especifica que turno es en el que estudia, lo que necesito es dividir los datos en dos, copiar los del turno matituno y pasarlo a otra hoja y los del vespertino a otra.. no los quiero borrar de la hoja solo copiarlos..

Entonces me tope con que eso se hace con una macro, ya di vueltas y logre medianamente hacer algo, pero la verdad no doy una jajajajaj que mal.. en fin, mi codigo es este:

Código vb:
Ver original
  1. Sub copia_primer_sem()
  2. Application.ScreenUpdating = False
  3. Dim val, cel As String
  4. Sheets("ALUMNOS").Select
  5. Range("B15").Select
  6. 'ActiveCell.Offset(15, 2).Select
  7. Do While ActiveCell.Value <> ""
  8.     If ActiveCell.Value = "1" Then
  9.         Range("C15").Select
  10.         Selection.Copy
  11.         Sheets("1ER SEM(MAT) -").Select
  12.         Range("B17").Select
  13.         ActiveCell.PasteSpecial
  14.     End If
  15.     If ActiveCell.Value = "2" Then
  16.         Range("C15").Select
  17.         Selection.Copy
  18.         Sheets("1ER SEM(VES) -").Select
  19.         Range("B17").Select
  20.         ActiveCell.PasteSpecial
  21.     End If
  22.     Sheets("ALUMNOS").Select
  23.     'Bajamos una fila para seguir tomando datos
  24.    ActiveCell.Offset(1, 0).Select
  25. Loop
  26. End Sub

Es decir, logro que me copie el primer campo, pero no logro hacer el ciclo que recorra toda la columna que especifica el turno.. tengo la hoja con todos los datos ordenados que se llama Alumnos, en la columna B, tengo el turno numerado por uno o dos, y a partir de la columna C y hasta la Q, los nombres junto con las calificaciones de primer semestre, que son las que necesito copiar, de la Q en adelante, tengo más calificaciones pero por ahora no necesito copiarlas.

De antemano mil graaacias!! =) como siempre ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #2 (permalink)  
Antiguo 26/02/2011, 10:31
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Copiar datos de una hoja a otra dependiendo de otra celda

Hola! Silvanha.
Me parece que será más sencillo aplicando un Autofiltro, por ejemplo así:
Código PHP:
Sub copia_primer_sem_New()
Dim rng As Range

ActiveSheet
.AutoFilterMode False
Set rng 
= [b15:c15]
If [
b16] <> "" Then Set rng Range("B15:C" & [b15].End(xlDown).Row)
    
With rng
.Offset(-1).Resize(+ .Rows.Count).AutoFilter 11
.Columns(2).Copy
Sheets
("1ER SEM(MAT) -").[b17].PasteSpecial Paste:=xlPasteValues
    
.Offset(-1).Resize(+ .Rows.Count).AutoFilter 12
.Columns(2).Copy
Sheets
("1ER SEM(VES) -").[b17].PasteSpecial Paste:=xlPasteValues
End With

ActiveSheet
.AutoFilterMode False
End Sub 
¿Te puede servir?
Saludos, Cacho.


Última edición por mrocf; 26/02/2011 a las 11:46
  #3 (permalink)  
Antiguo 26/02/2011, 14:24
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

Amigo mrocf, alteré algo, dime si está correcto.

Código:
Sub copia_primer_sem_New()
Application.ScreenUpdating = False
Dim rng As Range

ActiveSheet.AutoFilterMode = False
Set rng = [A2:D2]
If [A3] <> "" Then Set rng = Range("A2:D" & [A2].End(xlDown).Row)
    
With rng
.Offset(-1).Resize(1 + .Rows.Count).AutoFilter 1, 1
.Columns(1).Copy 'Columna A
Sheets(4).[A2].PasteSpecial Paste:=xlPasteValues 'Pega en la hoja4
    
.Offset(-1).Resize(1 + .Rows.Count).AutoFilter 1, 2
.Columns(3).Copy 'Columna C
Sheets(4).[b2].PasteSpecial Paste:=xlPasteValues 'Pega en la hoja4

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter 1, 3
.Columns(4).Copy 'Columna D
Sheets(4).[c2].PasteSpecial Paste:=xlPasteValues 'Pega en la hoja4
End With

ActiveSheet.AutoFilterMode = False
Application.CutCopyMode = False 'desactiva la seleccion
Application.ScreenUpdating = True
End Sub
Así me copia todos los datos de las 3 columnas completas y me los pega en la hoja4, para luego yo mandar imprimir
Me funciona bien para lo que quiero pero, quisiera tu aprobacion

Última edición por JoaoM; 26/02/2011 a las 14:36
  #4 (permalink)  
Antiguo 26/02/2011, 16:33
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

Si NINGUNA de esas celdas contiene alguna fórmula, entonces puedes reemplazar:

.Columns(1).Copy 'Columna A
Sheets(4).[A2].PasteSpecial Paste:=xlPasteValues 'Pega en la hoja4

por:

.Columns(1).Copy Sheets(4).[A2] 'Columna A a la hoja4

Saludos, Cacho.
  #5 (permalink)  
Antiguo 27/02/2011, 18:52
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

Cita:
Iniciado por mrocf Ver Mensaje
Si NINGUNA de esas celdas contiene alguna fórmula, entonces puedes reemplazar:

.Columns(1).Copy 'Columna A
Sheets(4).[A2].PasteSpecial Paste:=xlPasteValues 'Pega en la hoja4

por:

.Columns(1).Copy Sheets(4).[A2] 'Columna A a la hoja4

Saludos, Cacho.
Entiendo, Si celdas no tienen formula, puedo hacer el cambio que sujieres

Si tienen formula, dejo tal como lo puse arriba ¿cierto?, XQ algunas si que tiene formula

Pregunto si frecuentas emagister tambien
  #6 (permalink)  
Antiguo 27/02/2011, 19:56
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Copiar datos de una hoja a otra dependiendo de otra celda

Así es, Joao, de vez en cuando lo frecuento: Foro frecuentado.
  #7 (permalink)  
Antiguo 28/02/2011, 14:40
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

Cita:
Iniciado por mrocf Ver Mensaje
Así es, Joao, de vez en cuando lo frecuento: Foro frecuentado.
Creo ser tu, no estoy seguro, un tal Cacho R*******z
creo por lo de cacho. Claro que cachos hay muchos y de lo otro tambien
  #8 (permalink)  
Antiguo 28/02/2011, 16:50
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

Ah... ya sé a quien te refieres...
Pero ése es de Buenos Aires, Argentina.
  #9 (permalink)  
Antiguo 28/02/2011, 17:01
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

OK, de todos modos agradecido por todo que pudiste enseñarme, ayudar y en futuro espero poder contar.

XQ tengo un libro de anotaciones de facturas pasadas X año y la suma de cada año la tengo en texto rojo y necesito que esa linea (desde B? a E? me la copie a una hoja que tengo para tal fin llamada X Año y ya hice que copie y pegue pero me copia toda la linea, texto rojo y celdas contiguas con texto negro y tengo el libro con las hojas divididas en 2 o 3 partes que cada parte ocupa una impresion
Quiero que copie solo la ultima de texto rojo y vaia pegando en la hoja X Año una debajo de otra.
Talves podieras revisar el libro, sin compromiso y sin priza, no es urgente, es de mi facturacion mas importante durante cada año.
SI te dejo el enlace al libro? sin compromiso repito, tu verias con tiempo, que hacer. Expuse en la ultima hoja lo que pretendo
  #10 (permalink)  
Antiguo 28/02/2011, 18:12
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Copiar datos de una hoja a otra dependiendo de otra celda

Me parece, Joao, que si vas a plantear un tema diferente a lo tratado en este intercambio (dicho sea de paso: silvanha no volvió ni para decir gracias), deberías abrir un nuevo hilo de conversación.

En él, podrías incluir un enlace a tu archivo.

Saludos, Cacho.

P.D.
Como advierto que no has estado muy rápido para interpretar las "sutilezas" (je je je) te aclaro: efectivamente, soy uno de los -así llamados- expertos del foro emagister.
Aquél y éste son los dos que más me gusta frecuentar.

Última edición por mrocf; 28/02/2011 a las 18:30
  #11 (permalink)  
Antiguo 28/02/2011, 18:44
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Copiar datos de una hoja a otra dependiendo de otra celda

OK, tienes razon, editaré este y abriré otro co nenlace al archivo
Gracias
No lo puedo editar, ya pasó uno adelante

Etiquetas: celda, copiar, dependiendo, hoja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:46.