Como puedo hacer una macro que vaya cambiando de rango cada vez que le doy clic

Lo que quiero es cada vez que le de clic cambie de columna ,seleccionando la misma filas y lo único q va cambiando es la columna pero q solo pueda avanzar hasta 31 columnas. Ya que intentado de todo lo único q logro q haga es que avanza solo una o de un solo clic avanza los 31.... Por favor necesito su ayuda ya tengo días trabado en esto sii requieren mas información pregunte o si no quedo muy claro

gracias... :)

1 respuesta

Respuesta
1

Me podrías dar mas detalles, por ejemplo entre columna y columna van cambiando los rangos, deseas ingresar la columna, tienes el rango o lo quieres elegir cada vez que ejecutes la macro.

sI entre columna van cambiando los rangos en pocas palabras es q el primer libro se utiliza las mismas celdas y en segundo libro es el q en cada columna se va guardando, por ejemplo en el libro2 viene por dia , pero en el libro1 solo es para captura y por lo tanto es cada columna del libro2 se guarde por dia....

esto es mas o menos lo q aparece en libro2:

1 2 3 4 5 6

cable

cinta

y en libro1 solo tengo q tomar el total del dia o sea solo una celda pero para cada parámetro (cinta,cable)ahi cada uno tiene un celda con su valor

Me podrías decir si en ambas hojas los códigos son iguales, ¿por ejemplo colocaste que en una hoja dice cinta y en la otra igual? Si es asi lo que puedes hacer una macro que te solicite la columna y realice un buscarv o un do while para que compare, ejemplo

Sub x()
Dim columna As Integer
On Error Resume Next

columna = InputBox("Ingrese Columna", "Ingrese", "")
If Err <> 0 Then

Exit Sub

End If
' Te colocas en la celda que deseas llenar donde se inician los datos

filainicio= activecell.row

sheets("Hoja1").select

filadia = range("A65300").end(xlup).row

sheets("Hoja2").select

filames = range("A65300").end(xlup).row

'Esta formula es el famoso buscarv que te buscara la info dela hoja 2 en la hoja 1

' Obviamente debes ajustarla segun las fila que utilices

ActiveCell.FormulaR1C1 = _

"=VLOOKUP(Hoja2!R" & filainicio & "C" & columna & ",Hoja1!R2C1:R" & filadia & "C2,2,0)"

'Esta parte te pegara la formula en todas las celdas hacia abajo

Selection.AutoFill Destination:=Range(cells(filainicio,columna),cells(filames,columna))

Range(cells(filainicio,columna),cells(filames,columna)).Select

Range(cells(filainicio,columna)).Select

columns(columna & ":" & columna).select

selection.copy

' Porque pegar los valores porque quedaran algunos # n/a entonces los reemplazaremos por nada

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

Application.CutCopyMode = False

columns(columna & ":" & columna).select

Selection.Replace What:="#N/A", Replacement:="""""", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False

Range(cells(filainicio,columna)).Select

End Sub

Cualquier cosa me consultas, trate de explicar lo mejor posible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas