Macro para un rango

Hola, hace unos días que estoy con un problemita sin poder resolverlo, por eso acudo a ustedes. Estoy haciendo una macro que trae los datos de un archivo txt me actualiza una planilla en excel, necesito saber como hago para seleccionar un rango para poder eliminar los datos de las celdas, dicho rango es variable dependiendo de que hoja es y ademas tiene celdas que no deben ser seleccionadas (hay fórmulas) lo que si el rango se mueve dentro de una misma columna (un mes dado).- Yo lo hice con bucles de for y voy eliminando celda por celda de pendiendo de determinada condición, pero mi macro se volvió muy lenta debido a los bucles.- Le paso la secuencia que tengo actualmente para eliminando los datos.-
Sheets("Real Infraestructura").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Sheets("Real Adm y Finanzas").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Sheets("Real Ventas y Promoción").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Sheets("Real Operaciones").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Sheets("Real Acarreo").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Sheets("Real Distribución").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Donde MesLogico es una variable que me permite identificar en que columna me tengo que posicionar para eliminar los datos y Cells(j, 29) es una columna agregada que me indica que cuando esta en cero no se puede eliminar ningún dato de esa fila porque hay fórmulas. No se si se entendió pero en sitensis Tengo que eliminar datos de celdas separadas de una misma columna pero que a su vez no son las mismas celdas cuando cambio de hoja.-
Desde ya muchas gracias Ariel
P/D. La solución sería eliminar todos los datos de una columna dada (en mi caso dicha columna dependería de una variable (MesLogico)) y que no sean fórmulas y que empiece a eliminar desde determinada fila por el tema de los encabezados.-

1 Respuesta

Respuesta
1
Puedes probar con esta solución.
Dim hoja As String
For x = 1 To 6
Select Case x
Case Is = 1: hoja = "Real Infraestructura"
Case Is = 2: hoja = "Real Adm y Finanzas"
Case Is = 3: hoja = "Real Ventas y Promoción"
Case Is = 4: hoja = "Real Operaciones"
Case Is = 5: hoja = "Real Acarreo"
Case Is = 6: hoja = "Real Distribución"
End Select
Sheets("hoja").Select
For j = 6 To 140
If Cells(j, 29).Value <> 0 Then Cells(j, MesLogico).ClearContents
Next j
Next x

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas