Sustituir fila de un rango desde otra hoja

01/02/2007 - 18:48 por cbm | Informe spam
Buenas,

En la hoja 2 tengo una fila de colmna A a columna G, cuyos valores
provienen de una tabla de la hoja uno (A1:G100) , y varian en funcion
de un lista de validacion que recoge el nombre de la primera variable
(coche1, coche2, coche3...) mediante buscarv.

De esta manera, al seleccionar en la lista de validación una variable
concreta, como coche3, se muestran los datos de su fila.

Necesito un command button que cuando en esta fila de la hoja 2 el
usuario cambie un valor, me lo copie y lo pegue en su lugar en la
tabla 1, de manera que siemre este actualizada.

Imagino que será más fácil hacer que si el primer valor de la fila dos
es igual al primer valor de la tabla, se copie y pegue el trozo de
fila entero, de A a G que buscar el dato en concreto, PERO NO SE NI
POR DONDE EMPEZAR!!!

Se agradece todo tipo de ayuda,

SALUDOS

Preguntas similare

Leer las respuestas

#1 Ivan
01/02/2007 - 22:18 | Informe spam
hola cbm

mira a ver si te vale esto

suponiendo que en la celda A1 de la Hoja1 tienes la celda con la lista de
validacion, la fila cargada que quieres volcar en la otra hoja es "a2:g2" y
la lista original esta en la hoja2 (A1:G100)., puedes asignarle el siguiente
procedimiento a un boton, atajo de teclado, etc

Sub DevolverConCambios()
Dim celda As Range
With Whorksheets("Hoja2")
On Error Resume Next
Set celda = .Range("a2:a" & .[a65536] _
.End(xlUp).Row).Find(Worksheets("Hoja1").[a1])
Worksheets("Hoja1").Range("a2:g2").Copy celda
Set celda = Nothing
End With
End Sub

lo unico ten en cuenta que esta forma de pegar pega todo ( formatos,
formulas, etc), si no quieres que sea asi puedes cambiarlo por PasteSpecial.

asimismo, el metodo Find admite mas argumentos, que quizas te vayan bien

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#2 Ivan
01/02/2007 - 22:34 | Informe spam
perdon, te habia dado la vuelta a las hojas, y te habia dejado una fila
fuera. Este si cuadraria con tu exposicion, con algunos matices:

1.- se supone que en la columna A de la hoja 1 es donde estan 'coche1',
'coche2', etc y que son unicos (sino [creo] te lo pegara en el primero que
encuentre)

2.-tanto la celda donde esta la lista de validacion [en el
codigo(Worksheets("Hoja2").[a1])], como la fila que quieres copiar [en el
codigo -> Worksheets("Hoja2").Range("a2:g2")] las cambiaras por tus
celda/fila concretas.


Sub DevolverConCambios()
Dim celda As Range
With Whorksheets("Hoja1")
On Error Resume Next
Set celda = .Range("a1:a" & .[a65536] _
.End(xlUp).Row).Find(Worksheets("Hoja2").[a1])
Worksheets("Hoja2").Range("a2:g2").Copy celda
Set celda = Nothing
End With
End Sub

Ivan
Respuesta Responder a este mensaje
#3 cbm
02/02/2007 - 08:16 | Informe spam
On 1 feb, 22:34, "Ivan" wrote:
perdon, te habia dado la vuelta a las hojas, y te habia dejado una fila
fuera. Este si cuadraria con tu exposicion, con algunos matices:

1.- se supone que en la columna A de la hoja 1 es donde estan 'coche1',
'coche2', etc y que son unicos (sino [creo] te lo pegara en el primero que
encuentre)

2.-tanto la celda donde esta la lista de validacion [en el
codigo(Worksheets("Hoja2").[a1])], como la fila que quieres copiar [en el
codigo -> Worksheets("Hoja2").Range("a2:g2")] las cambiaras por tus
celda/fila concretas.



GRACIAS! AHORA MISMO LO PRUEBO


Sub DevolverConCambios()
Dim celda As Range
With Whorksheets("Hoja1")
On Error Resume Next
Set celda = .Range("a1:a" & .[a65536] _
.End(xlUp).Row).Find(Worksheets("Hoja2").[a1])
Worksheets("Hoja2").Range("a2:g2").Copy celda
Set celda = Nothing
End With
End Sub

Ivan
Respuesta Responder a este mensaje
#4 cbm
02/02/2007 - 09:06 | Informe spam
Lo he metido dentro de un command button y copia todo bien, pero no
consigo que pegue sólo valores, veis el fallo?

Dim celda As Range
With Worksheets("Informe")
On Error Resume Next
Set celda = .Range("bi40:bi" & .[bi1039] _
.End(xlUp).Row).Find(Worksheets("Plantilla tarea").[a1])
Worksheets("Plantilla tarea").Range("bi64:cx64").Copy celda
Sheets("Informe").Range("bi40:bi" & .[bi1039] _
.End(xlUp).Row).Find(Worksheets("Plantilla tarea").
[a1]).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
_
:=False, Transpose:=False
Application.CutCopyMode = False
Set celda = Nothing

End With

End Sub
Respuesta Responder a este mensaje
#5 cbm
02/02/2007 - 09:25 | Informe spam
On 2 feb, 08:16, "cbm" wrote:
On 1 feb, 22:34, "Ivan" wrote:> perdon, te habia dado la vuelta a las hojas, y te habia dejado una fila
> fuera. Este si cuadraria con tu exposicion, con algunos matices:

> 1.- se supone que en la columna A de la hoja 1 es donde estan 'coche1',
> 'coche2', etc y que son unicos (sino [creo] te lo pegara en el primero que
> encuentre)

> 2.-tanto la celda donde esta la lista de validacion [en el
> codigo(Worksheets("Hoja2").[a1])], como la fila que quieres copiar [en el
> codigo -> Worksheets("Hoja2").Range("a2:g2")] las cambiaras por tus
> celda/fila concretas.

GRACIAS! AHORA MISMO LO PRUEBO



> Sub DevolverConCambios()
> Dim celda As Range
> With Whorksheets("Hoja1")
> On Error Resume Next
> Set celda = .Range("a1:a" & .[a65536] _
> .End(xlUp).Row).Find(Worksheets("Hoja2").[a1])
> Worksheets("Hoja2").Range("a2:g2").Copy celda
> Set celda = Nothing
> End With
> End Sub

> Ivan- Ocultar texto de la cita -

- Mostrar texto de la cita -



Lo he apañado un poco, muchas gracias


AHI VA:

Private Sub CommandButton2_Click()
Rows("64:64").Select
Range("AU64").Activate
Selection.Copy
Rows("65:65").Select
Range("AU65").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Dim celda As Range
With Worksheets("Informe")
On Error Resume Next
Set celda = .Range("bi40:bi" & .[bi1039] _
.End(xlUp).Row).Find(Worksheets("Plantilla tarea").[a1])
Worksheets("Plantilla tarea").Range("bi65:cx65").Copy celda

Set celda = PasteValues

End With

End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida