# Cómo eliminar nombre asignado a un rango...



## Samuel Cano

Saludo amigos del foro

Disculpenme ésta, pero le di un nombre al un rango (ya saben en el cuadro a la izquiera de la barra de fórmulas) y ahora no sé cómo deshacerme de él...quiero eliminarlo... alguien que me oriente por favor... gracias.


----------



## Greg Truby

Del menu (en inglés) Insert | Name > | Define...<sup>1</sup> seleccione el nombre en el listado y haz un cliq en el botón de suprimir (delete).

<hr /><sup>1</sup>También se puede usar Ctrl+F3 para abrir el diálogo de definiciones de nombres.


----------



## Samuel Cano

*Gracias Greg, ya pude eliminarlo.. algo más...*

Te cuento que lo definí cuando necesité revisar todas las celdas de un rango mediante un ciclo, para mover el contenido de la celda en turno a otra ubicación si cumplía una determinada condición, aquí el ejemplo que me sirvió parcialmente:



		Code:
__


Dim miCelda As Object
For Each miCelda In Range("miRango")
   If Mid(miCelda, 1, 2) = "23" Then 
      MsgBox miCelda
     'ActiveCell.Cut (ActiveCell.Offset(-1, 1).Range("A1").Select)
     'ActiveCell.Cut Destination:=ActiveCell.Offset(-1, 1)
     'Selection.Cut
     'ActiveCell.Offset(-1, 1).Range("A1").Select
     'ActiveSheet.Paste
   Else
     MsgBox "Otro valor"
   End If
Next miCelda


Lo que vez me permitió recorrer el rango y ver si la condicion se cumplia mediante los cuadros de texto.

Lo que no funcionó (y que está comentariado) fué la parte de mover el contenido de la celda leída a otra ubicación y eliminar la fila vacía, marca "error de objeto" (ya no llegué ahí en este código)

Mi idea era utilizar después Resize para ajustar el rango cada vez que se ejecutara el código...y tampoco llegué ahí..


Una solución provisional la encontré en el siguiente código:



		Code:
__


Dim ultimaFila As Integer, fila As Integer
With ActiveWorkbook.Worksheets("Hoja1")
   ultimaFila = .[A65536].End(xlUp).Row
   For fila = 1 To ultimaFila
      celda = .Cells(fila, 1)
      If Mid(celda, 1, 2) = "23" Then
         .Cells(fila, 1).Select
         Selection.Cut
         ActiveCell.Offset(-1, 1).Range("A1").Select
         ActiveSheet.Paste
         .Cells(fila, 1).Select
         Selection.EntireRow.Delete
      End If
   Next fila
End With


Mismo que ya funciona.

Resulta que me llega un archivo con más de 5,000 lineas, de las cuales la mayoría corresponden a un registro por cada dos filas. Lo que necesito es identificar la fila dos, ponerlas en la fila 1 que les corresponda y eliminar las fila que queda vacía. El código anterior me sirve para hacer eso.

Ahora la siguiente parte es, por cada nueva fila (ahora con dos columnas), extraer parte del contenido de cada celda en cada columna, buscarlo en otra hoja (que es también un rango variable) y si lo encuentra, escribir una marca en la fila donde se encontró...

Bueno, cualquier idea es bienvenida...

Gracias de nuevo....


----------

