Hola buenas a todos. En esta ocasión por mucho que he buscado en el foro no encuentro solución a mi problema. Tengo un macro mediante el cual cambio los valores de una columna por los valores de otra. Tengo 2 hojas creadas, una la he llamado lista y la otra datos. En la sheet lista, he colocado la relación de los números que tiene que reemplazar y por cual en cada caso. El macro me cambia los valores de las celdas bien, pero luego vuelve a cambiar el valor de nuevo en las celdas que ya había modificado, volviendo a cambiar el valor de las celdas y creando un caos en el resultado.
Ejemplo:
1 - 97
2 - 98
3 - 99
4 - 101
5 - 103
6 - 105
7 - 107
8 - 108
9 - 109
97 - 230
98 - 231
99 - 232
100 - 233
101 - 234
102 - 235
Según el macro se debe colocar el 97 en lugar del 1, el 98 en lugar del 2, el 99 en lugar del 3, etc. Hasta ahí todo bien, el problema surge cuando llega al valor 97 de la columna izquierda y vuelve a reemplazarlo, en este caso por el número 230 y modifica la celda a1 otra vez. Lo que necesito es que solo cambie los datos antiguos y no vuelva a cambiar las celdas que ya ha cambiado anteriormente.
¿Alguien sabe como puedo solucionarlo?
El macro que estoy urilizando es el siguiente:
Sub Actualizar()
For i = 1 To 2299
Sheets("Lista").Select
origen = Cells(i, 1)
destino = Cells(i, 2)
Sheets("Datos").Select
For j = 1 To 2299
If Cells(j, 1) = origen Then
Cells(j, 1) = destino
End If
Next
Next
End Sub
Gracias
Macro reemplazar datos columna
Macro reemplazar datos columna
Openoffice 4.0.1 Windows 7 home
Re: Macro reemplazar datos columna
Código: Seleccionar todo
oLista = ThisComponent.Sheets.getByName("lista")
oCeldasL = oLista.getCellrangeByName("A1:B2299")
DataL = oCeldasL.Data
oDatos = ThisComponent.Sheets.getByName("datos")
oCeldasD = oDatos.getCellrangeByName("A1:A2299")
DataD = oCeldasD.Data
CopiaD = oCeldasD.Data
For i = 0 to 2298
origen = DataL(i)(0)
destino = DataL(i)(1)
For j = 0 to 2298
If DataD(j)(0) = origen Then
CopiaD(j)(0) = destino
Exit For
End If
next j
next i
oCeldasD.Data = CopiaD