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

Pasar datos de una hoja a otra en excel

Estas en el tema de Pasar datos de una hoja a otra en excel en el foro de Ofimática en Foros del Web. Sub recorrer() ' recorrer Macro ' Sheets(3).Select Range("A1").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop ActiveCell.FormulaR1C1 = "21-10-2009" Range("B1").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select ...
  #1 (permalink)  
Antiguo 22/10/2009, 20:07
 
Fecha de Ingreso: julio-2008
Ubicación: Guadalajara, Jalisco, Mexico.
Mensajes: 46
Antigüedad: 15 años, 9 meses
Puntos: 1
Pasar datos de una hoja a otra en excel

Sub recorrer()

' recorrer Macro
'
Sheets(3).Select
Range("A1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = "21-10-2009"

Range("B1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = "AGUSTIN CORTES"

Range("C1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = "COL. CENTRO"

Range("D1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = "TONALA, JALISCO"

End Sub

hOLA:

El codigo anterior pega datos predefinidos en la hoja3.
Lo que quiero hacer es que los obtenga de la hoja1:

dato1=celda "G4"
dato2=celda "D8"
dato3=celda "D12"
dato4=celda "B17"

Cómo hago referencia para que seleccione los datos de la hoja1.

Saludos, gracias.
  #2 (permalink)  
Antiguo 23/10/2009, 02:30
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Pasar datos de una hoja a otra en excel

Es muy sencillo. Tan solo tienes que hacer esto:
Código:
dato1 = hoja1.Range("G4")
dato2 = hoja1.Range("D8")
dato3 = hoja1.Range("D12")
dato4 = hoja1.Range("B17")
Donde "hoja1" es el nombre de la hoja, pero visto a nivel interno, es decir, el nombre que ves desde VBA, no el nombre de la pestaña que ve el usuario. Si lo que quieres es acceder a la hoja1, pero atendiendo al nombre de la pestaña, entonces debes hacerlo así:
Código:
dato1 = Sheets("hoja1").Range("G4")
dato2 = Sheets("hoja1").Range("D8")
dato3 = Sheets("hoja1").Range("D12")
dato4 = Sheets("hoja1").Range("B17")
Saludos.
  #3 (permalink)  
Antiguo 23/10/2009, 03:16
 
Fecha de Ingreso: julio-2008
Ubicación: Guadalajara, Jalisco, Mexico.
Mensajes: 46
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Pasar datos de una hoja a otra en excel

Gracias 3pies

Según mi pensamiento lo tenía de este modo:

dato1=Sheets(1).Select(Range("G4").Value)

Pero el resultado que me arrojaba en la celda destino aparecía "VERDADERO"

¿Qué cambio hace el "select "?

Ahora esa es mi duda.

La anterior ya quedó resuelta, gracias.

Saludos cordiales.
  #4 (permalink)  
Antiguo 23/10/2009, 03:58
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Pasar datos de una hoja a otra en excel

Con el select, lo que haces es situarte en esa celda, posicionarte encima, pero no recuperas el dato que hay en la celda. Te salía verdadero, porque como le decías que se situase en la celda, el resultado solo puede ser lógico: sí me he situado en la celda, o no me he situado en la celda. No le estabas diciendo que recogiese el dato de esa celda, sino que se colocase en esa celda.

Saludos.
  #5 (permalink)  
Antiguo 23/10/2009, 04:21
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 Respuesta: Pasar datos de una hoja a otra en excel

Hola! cuexco.
Nota que para escribir 4 datos estás recorriendo desde la fila "1" cuatro columnas... ¡¡¡Eso es muy ineficiente!!!

Me parece que resumiendo las ideas comentadas por 3pies, lo que se "acomoda" a tus necesidades es:

Código vb:
Ver original
  1. Sub recorrer()
  2.  
  3. With Sheets("Hoja3").[a65536].End(xlUp).Offset(1)
  4. .Offset(, 0).Formula = Sheet("Hoja1").[g4].Value
  5. .Offset(, 1).Formula = Sheet("Hoja1").[d8].Value
  6. .Offset(, 2).Formula = Sheet("Hoja1").[d12].Value
  7. .Offset(, 3).Formula = Sheet("Hoja1").[b17].Value
  8. End With
  9.  
  10. End Sub

Comenta si te ha servido, ¿si?

Saludos, Cacho.
  #6 (permalink)  
Antiguo 23/10/2009, 17:17
 
Fecha de Ingreso: julio-2008
Ubicación: Guadalajara, Jalisco, Mexico.
Mensajes: 46
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Pasar datos de una hoja a otra en excel

Cita:
Iniciado por 3pies Ver Mensaje
Con el select, lo que haces es situarte en esa celda, posicionarte encima, pero no recuperas el dato que hay en la celda. Te salía verdadero, porque como le decías que se situase en la celda, el resultado solo puede ser lógico: sí me he situado en la celda, o no me he situado en la celda. No le estabas diciendo que recogiese el dato de esa celda, sino que se colocase en esa celda.

Saludos.
Gracias 3pies:

Como siempre la duda me las resuelto.

saludos.
  #7 (permalink)  
Antiguo 23/10/2009, 17:32
 
Fecha de Ingreso: julio-2008
Ubicación: Guadalajara, Jalisco, Mexico.
Mensajes: 46
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Pasar datos de una hoja a otra en excel

Cita:
Iniciado por mrocf Ver Mensaje
Hola! cuexco.
Nota que para escribir 4 datos estás recorriendo desde la fila "1" cuatro columnas... ¡¡¡Eso es muy ineficiente!!!

Me parece que resumiendo las ideas comentadas por 3pies, lo que se "acomoda" a tus necesidades es:

Código vb:
Ver original
  1. Sub recorrer()
  2.  
  3. With Sheets("Hoja3").[a65536].End(xlUp).Offset(1)
  4. .Offset(, 0).Formula = Sheet("Hoja1").[g4].Value
  5. .Offset(, 1).Formula = Sheet("Hoja1").[d8].Value
  6. .Offset(, 2).Formula = Sheet("Hoja1").[d12].Value
  7. .Offset(, 3).Formula = Sheet("Hoja1").[b17].Value
  8. End With
  9.  
  10. End Sub

Comenta si te ha servido, ¿si?

Saludos, Cacho.
Hola mrocf:

Es excelente tu aportación, funciona correctamente.

Lo anterior también hace lo mismo pero obviamente lo hace por partes por que se repite el ciclo 4 veces, pero como siempre hay muchas maneras de resolverlas.

Gracias, saludos
.
  #8 (permalink)  
Antiguo 24/10/2009, 09:29
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 Pasar datos de una hoja a otra en excel

Es cierto lo que dices:
Cita:
Iniciado por cuexco Ver Mensaje
... hay muchas maneras de resolverlas... .
Sin embargo, la eficiencia (por cualquier camino con el que llegues) debes considerarla como un objetivo a satisfacer.
En ese sentido no es lo mismo manipular bases de datos con 10, 100 ó 1000 registros (o filas).

Para 10 filas: cualquier cosa que hagas no implicará un tiempo en exceso perceptible.
Pero con 1000 filas: recorrer -una a una- esas filas puede ser inaceptable.

Te mando un abrazo, Cacho.
  #9 (permalink)  
Antiguo 05/07/2011, 15:58
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Pasar datos de una hoja a otra en excel

Hola, igual llego un poco tarde pero tengo una consulta. Tengo una lista de clientes, los cuales están ordenados por la fecha en la que iniciaron su contrato. Dicho contrato lo renuevan anualmente. Entonces a mi me interesa tener en una hoja a parte de mi tabla excel, aquellos clientes que les falten 3 meses para renovar su contrato.

Es decir, quisiera una macro para que mis clientes que tengo en la columna "a" de mi hoja1 y que les falte 3 meses para caducar su contrato (la fecha de caducidad la tengo en la columna "b") aparezcan en la hoja 2 en su columna "a".

Asta ahora solo he conseguido copiarlos de una hoja a otra, pero me ha sido imposible implementar una condición. He probado con do while etc, pero creo que fallo en algo.

Gracias por adelantado compañeros.
  #10 (permalink)  
Antiguo 06/07/2011, 15:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Pasar datos de una hoja a otra en excel

Lee las normas, este tema tiene mas de año y medio sin actividad.
NO ESTA PERMITIDO REVIVIR TEMAS
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 08:34.