Recuperar el valor de una celda
Resuelto
nihadlahit
-
NLAH Mensajes publicados 135 Estado Miembro -
NLAH Mensajes publicados 135 Estado Miembro -
Bonjour,
soy principiante en VBA, me gustaría crear una macro que realice las siguientes funcionalidades:
1- Pedir al usuario que ingrese un valor
2- Buscar este valor en la hoja 3, en el rango ---> B2:B100
3- Recuperar posteriormente la fila de esta celda en una variable llamada "lig", luego guardar el valor de la celda Cells("lig", "$C") en una variable "val"
4- Volver a la hoja 1 y copiar el rango ---> A1:D3, luego pegarlo en el rango ---> A1:D3 de la hoja 2
5- Ahora buscar el valor ingresado en la fila 1 de la hoja 2
6- Recuperar la columna de esta celda en una variable "col"
7- Seleccionar la celda (fila n° 3 de la hoja 2, columna "col") y luego almacenar en esta celda la variable "val"
He intentado el siguiente código, pero siempre me da errores al compilar:
Dim x As Integer, celfind As Range, lig As Integer, col As Integer, m As Range
With Worksheets("Feuil3").Range("B2:B100")
x = InputBox("ingresar el número de la orden")
Set celfind = .Find(x)
lig = celfind.Row
With Worksheets("feuil1").Range("A1:D3")
Selection.Copy
Worksheets("feuil2").Range("A1:D3").Select
ActiveSheet.Paste
End With
Set m = Worksheets("feuil2").Rows("1").Find(celfind)
col = m.Column
Worksheets("feuil2").Range("3" & col).Value = Worksheets("feuil3").Cells(lig, 3).Value
End With
Por favor, ayúdame si puedes,
Gracias
soy principiante en VBA, me gustaría crear una macro que realice las siguientes funcionalidades:
1- Pedir al usuario que ingrese un valor
2- Buscar este valor en la hoja 3, en el rango ---> B2:B100
3- Recuperar posteriormente la fila de esta celda en una variable llamada "lig", luego guardar el valor de la celda Cells("lig", "$C") en una variable "val"
4- Volver a la hoja 1 y copiar el rango ---> A1:D3, luego pegarlo en el rango ---> A1:D3 de la hoja 2
5- Ahora buscar el valor ingresado en la fila 1 de la hoja 2
6- Recuperar la columna de esta celda en una variable "col"
7- Seleccionar la celda (fila n° 3 de la hoja 2, columna "col") y luego almacenar en esta celda la variable "val"
He intentado el siguiente código, pero siempre me da errores al compilar:
Dim x As Integer, celfind As Range, lig As Integer, col As Integer, m As Range
With Worksheets("Feuil3").Range("B2:B100")
x = InputBox("ingresar el número de la orden")
Set celfind = .Find(x)
lig = celfind.Row
With Worksheets("feuil1").Range("A1:D3")
Selection.Copy
Worksheets("feuil2").Range("A1:D3").Select
ActiveSheet.Paste
End With
Set m = Worksheets("feuil2").Rows("1").Find(celfind)
col = m.Column
Worksheets("feuil2").Range("3" & col).Value = Worksheets("feuil3").Cells(lig, 3).Value
End With
Por favor, ayúdame si puedes,
Gracias
1 respuesta
Hola,
Cuando pongas código usa los códigos porque es más legible.
Tu macro corregida:
--
Siempre zen
La perfección se alcanza, no cuando no queda nada por agregar, sino cuando no queda nada por quitar. Antoine de Saint-Exupéry
Cuando pongas código usa los códigos porque es más legible.
Tu macro corregida:
Dim x As Variant, celfind As Range, lig As Integer, col As Integer, m As Range With Worksheets("Feuil3").Range("B1:B100") x = InputBox("ingresa el número del pedido") Set celfind = .Find(x) lig = celfind.Row With Worksheets("feuil1").Range("A1:D3") .Copy Destination:=Worksheets("feuil2").Range("A1") End With Set m = Worksheets("feuil2").Rows("1").Find(celfind) col = m.Column Worksheets("feuil2").Cells(3, col).Value = Worksheets("feuil3").Cells(lig, 3).Value End With --
Siempre zen
La perfección se alcanza, no cuando no queda nada por agregar, sino cuando no queda nada por quitar. Antoine de Saint-Exupéry
Muchas gracias infinitas
Funciona muy bien.