Cambiar o modificar Nombres (Administrador de Nombres) con Macro

Agradezco una Macro que permita cambiar o modificar los nombres existente en el Administrador de Nombres y mantener el rango de celda existente. La idea es que cuando yo registre el nombre de un equipo ( LAS _AGUILAS) en un Textbox, se cambie el nombre o sustituya el nombre de EQUIPO_1 por el de LAS_AGUILAS. Y así sucesivamente con los demás nombres de equipos a medidas que registre equipos en el textbox.

1 respuesta

Respuesta
2

En tu imagen tienes 3 nombres: "EQUIPO_1", "EQUIPO_2" y "EQUIPO_3", quieres que los tres nombres se cambien ahora por lo que tienes en un textbox, quedando de esta forma: "LAS _AGUILAS_1", "LAS _AGUILAS_2" y "LAS _AGUILAS_3"

O quieres cambiar solamente el "EQUIPO_1" por "LAS_AGUILAS_1"

¿Cuál opción necesitas? Podrías comentar.

Ante todo agradecido por la pronta atención.

Ejemplo Ingreso en el textbox, los nombres "LAS_AGUILAS",  "LOS_PADRES", " LEONES" . Los cambios serian: 

"EQUIPO_1" por "LAS_AGUILAS"

"EQUIPO_2" por "LOS_PADRES"

"EQUIPO_3" por "LEONES"

Son 30 equipos, pero tomo tres para tener una referencia o idea a la solicitud planteada.

Pero entonces debes tener 2 textbox

En el textbox1 tienes que poner el nombre actual, y en el textbox2, el nuevo nombre. De otra forma no se podría saber que en el "EQUIPO_1" se debe poner "LAS_AGUILAS".

Otra opción es cargar en un combo todos los nombres existentes, entonces seleccionas el nombre que vas a modificar y en un textbox escribe el nuevo nombre.

¿Dime qué opción tienes?

Hola Dante, No se requiere que los cambios de nombres sean rígidos en el "administrador de nombres" es decir no es obligatorio que en el "EQUIPO_1" se debe poner "LAS_AGUILAS". 

La idea es que el equipo que se registre primero en el TextBox(Nombre/Equipo) del formulario, se ponga en el "EQUIPO_1". 

Es importante señalar que los nombres "EQUIPO_1", "EQUIPO_2" y "EQUIPO_3" es el orden en que se ingresan los nombres de los equipos en el formulario "RegistroEquipos"  Como se puede notar en la columna "A" es el orden en que se van registrando los equipos a través del formulario en las celdas "B2", "D2", "F2" se coloco formulas (SUSTITUIR) para agregar piso en caso de nombre compuesto esto es motivado que el "Administrador  de Nombre" no permite espacio en blanco en los nombres de Rango.

Ver imagen Hoja "RecopilaEquipo" esta hoja se llena con un Formulario (Ver Formulario)

Agrega lo siguiente a tu formulario

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1.Value = "" Then
        MsgBox "Introducir un nombre de equipo"
        TextBox1.SetFocus
        Exit Sub
    End If
    If InStr(1, TextBox1.Value, " ") > 0 Then
        MsgBox "El nombre de equipo no puede llevar espacios"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    For Each nombre In ActiveWorkbook.Names
        If Left(LCase(nombre.Name), 6) = "equipo" Then
            refiere = nombre.RefersToR1C1
            nombre.Name = TextBox1.Value
            existe = True
            Exit For
        End If
    Next
    If existe Then
        MsgBox "Se actualizó el nombre"
    Else
        MsgBox "No hay nombre 'equipo' disponible en el administrador de nombres"
    End If
End Sub

'

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

'

Avísame cualquier duda

'

Dante, déjame revisar y te informo. 

Gracias._

Amigo, Quiero que me digas cual es su función dentro de esta macro, que significa o que hace estas líneas. Tengo poco días en aprendizaje de macros y las guías de aprendizaje que tengo no habrá sobre esta macro y su función. 

Tengo el formulario "REGISTRO DE EQUIPO Y NOMINAS DE JUGADORES"  ya configurado y de completa funcionalidad en el llenado de la hoja y necesito el detalles de esta función macro para agregarla a la configuración existente del formulario sin que pierda la funcionalidad inicial.

En otro orden, ver la posibilidad de un correo para hacerte llegar el archivo Excel habilitado para macros, de tal forma que entendamos mejor las necesidades. 

For Each nombre In ActiveWorkbook.Names
        If Left(LCase(nombre.Name), 6) = "equipo" Then
            refiere = nombre.RefersToR1C1
            nombre.Name = TextBox1.Value
            existe = True
            Exit For
        End If
    Next
    If existe Then
        MsgBox "Se actualizó el nombre"
    Else
        MsgBox "No hay nombre 'equipo' disponible en el administrador de nombres"
    End If
End Sub

Supongo que vas a pasar los datos del formulario a una hoja, ¿correcto?

También supongo que al momento de pasar los datos a la hoja, quieres actualizar el nombre en el administrador de nombres, ¿correcto?

Entonces tienes que copiar todo esto en tu código cuando vas a pasar los datos del formulario a la hoja:

    If TextBox1.Value = "" Then
        MsgBox "Introducir un nombre de equipo"
        TextBox1.SetFocus
        Exit Sub
    End If
    If InStr(1, TextBox1.Value, " ") > 0 Then
        MsgBox "El nombre de equipo no puede llevar espacios"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    For Each nombre In ActiveWorkbook.Names
        If Left(LCase(nombre.Name), 6) = "equipo" Then
            refiere = nombre.RefersToR1C1
            nombre.Name = TextBox1.Value
            existe = True
            Exit For
        End If
    Next

con gusto te ayudo a adaptar el código a tu userform. Envíame tu archivo y me explicas con breves palabras que datos debo llenar y qué botón oprimir

Amigo Dante, acabo de enviarle el archivo solicitado

Incorporé el código en esta parte:

    Case 3
        ' 'Aqui es cuando agregamos el registro del equipo 1
        For Each nombre In ActiveWorkbook.Names
            If Left(LCase(nombre.Name), 6) = "equipo" Then
                'refiere = nombre.RefersToR1C1
                nombre.Name = equipo
                existe = True
                Exit For
            End If
        Next
        RecopilaEquipo.Cells(filaRegistro, 1) = equipo
        RecopilaEquipo.Cells(filaRegistro + 0, 2) = jugador1
        RecopilaEquipo.Cells(filaRegistro + 0, 3) = cta1

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas