Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Sustituir formulas de busqueda por Macros en excel

Estas en el tema de Sustituir formulas de busqueda por Macros en excel en el foro de Visual Basic clásico en Foros del Web. Hola amigos, Buenos dias, (tardes o noches, segun sea el caso particular de cada quien) Mi Situacion es la siguiente: Estoy realizando un libro de ...
  #1 (permalink)  
Antiguo 13/05/2010, 18:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Sustituir formulas de busqueda por Macros en excel

Hola amigos, Buenos dias, (tardes o noches, segun sea el caso particular de cada quien)

Mi Situacion es la siguiente:

Estoy realizando un libro de excel con Cuatro hojas de calculo.. Llamadas "Mapa", "Datos del Mapa", "Filtrado" y "Datos"

En la hoja "Datos", se introduce cierta informacion desde otra aplicacion por medio de un "Copiar y pegar".

En la Hoja "Filtrado", por medio de macros y auto-filtros se reduce y ordena la informacion contenida en "Datos"

En la hoja "Datos del Mapa" se convinan los datos de la hoja "Filtrado" con informacion contenida en "Datos del mapa"

Un ejemplo de la informacion contenida en "Datos del mapa" es

Cordenadas | X | Y | Nombre | Caracteristica 1 | Caracteristica 2 | ... | Caracteristica N |
10:16 | 10 | 16 | XXXXX | AAAAAAAAAAAA | BBBBBBBBBBBBB| ... | NNNNNNNNNNN |
11:20 | 11 | 20 | XXXXX | AAAAAAAAAAAA | BBBBBBBBBBBBB| ... | NNNNNNNNNNN |
15:06 | 15 | 06 | XXXXX | AAAAAAAAAAAA | BBBBBBBBBBBBB| ... | NNNNNNNNNNN |
01:45 | 01 | 45 | XXXXX | AAAAAAAAAAAA | BBBBBBBBBBBBB| ... | NNNNNNNNNNN |


En "Mapa" es una representacion "grafica" de las cordenadas |X,Y| (o eso es lo que intento hacer)... donde "X" representa la fila y "Y" la columna dentro de el mapa... (Segun el Plano Cartesiano estan invertidos X y Y, lo se, pero la informacion viene en ese formato).

Problema

Realizar un macro que Tome la informacion "Cordenadas| Nombre | Caracteristica 1 | Caracteristica 2 | ... | Caracteristica N"· (Que se encuentra en "Datos del Mapa"), se desplace a la cordenada (X,Y) en "Mapa" e introduzca la informacion correspondiente

Nota: El rango de cordenadas del mapa es (1:1) - (99:99), pero de las 9,801 celdas, solo 5,334 pueden contener informacion

La solucion que se me ocurrio fue

Sub Actualizar_Mapa()

Application.ScreenUpdating = False ' Para agilizar y ocultar el procedimiento del usuario

For Contador = 0 To 5333 step 1 ' Cantidad maxima de cordenadas 5334 - 1

'Obtener las cordenadas
Columna = Worksheets("Datos del Mapa").Range("B:G").Cells(Contador, 0).Value
Fila = Worksheets("Datos del Mapa").Range("B:G").Cells(Contador, 1).Value

'Introducir los valores a la celda(Fila,Columna) del "Mapa"

Worksheets("Mapa").Range("B2:CV100").Cell(Fila,Col umna).Value = "Datos" ' <--- solo ejemplo, aqui va una funcion personalizada

Next Contador

End Sub

Pero tengo un error y no entiendo cual es... apelo a su buena voluntad y vastos conocimientos para solucionar este problemita (para ustedes seria un vasito de agua, para mi el oceano atlantico, je,je)

Última edición por Lord_Ared; 18/05/2010 a las 14:21 Razón: Actualizacion de Problema
  #2 (permalink)  
Antiguo 18/05/2010, 17:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Sustituir formulas de busqueda por Macros en excel

Encontre la respuesta a mi pregunta... muchas gracias


Dim Fil, Col As Integer
Dim Cor
Application.ScreenUpdating = False

For Contador = 4 To 5337
Fil = Range("Cordenadas").Cells(Contador, 1).Value
Col = Range("Cordenadas").Cells(Contador, 2).Value
Cor = """" & Fil & ":" & Col & """"

If Fil = 1 Then
Fil = 1
Else
Fil = ((Fil - 1) * 13) + 1
End If

If Col = 1 Then
Col = 1
Else
Col = ((Col - 1) * 3) + 1
End If

Range("Mapa").Cells(Fil, Col).Value = Cor

Next Contador

End Sub

Etiquetas: excel, formulas, macros, sustituir, busquedas
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 21:52.