Cambiar el nombre de un textbox vía código vba Excel

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Responder
PoloLomb
Miembro Nuevo
Miembro Nuevo
Mensajes: 1
Registrado: 13 Jun 2019 15:10

Cambiar el nombre de un textbox vía código vba Excel

Mensaje por PoloLomb » 13 Jun 2019 15:22

Tengo un formulario en un proyecto de vba de Excel que tiene varios textbox, a los cuales necesito cambiarles el nombre. Son varios, así que quisiera saber si eso se puede hacer con un código para no tener que cambiar uno por uno.
Por ejemplo, los nombres de los textbox que hay son: Honorarios01TBX, Honorarios02TBX, y así. Necesito cambiarlos por algo como GastosTBX01, GastosTBX02 y así.
Traté cambiarlos usando el siguiente código (para un solo textbox):

Sub CambioNombre ()
MiForm.Honorarios01TBX.Name = "GastosTBX01" 'no importa que sea uno solo, luego hago un array
End Sub

Pero ni cerca.
Es posible cambiar el nombre de un elemento de esta manera?
Cualquier ayuda, más que bienvenida.
Salute!



Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
Mensajes: 5873
Registrado: 26 Mar 2005 18:31

Re: Cambiar el nombre de un textbox vía código vba Excel

Mensaje por Héctor Miguel » 13 Jun 2019 17:50

PoloLomb escribió:
13 Jun 2019 15:22
Es posible cambiar el nombre de un elemento de esta manera?
hablando de formularios y sus controles...

- en tiempo de diseño, puedes hacer lo que quieras (poner y cambiar nombres a controles, etc.)

- en tiempo de ejecucion... no puedes cambiar nombres (entre otras cosillas) y por razones mas que obvias
--- puede tener codigos de evento asociados que al cambiar de nombre no se "auto-corrigen", etc.

si quieres hacer algun intento (bajo tu riesgo), mira de analizar los mensajes 8 y 10 de este tema



Avatar de Usuario
Guillermo Hm
Miembro Frecuente
Miembro Frecuente
Mensajes: 185
Registrado: 19 Ago 2013 14:23
Ubicación: Colombia

Re: Cambiar el nombre de un textbox vía código vba Excel

Mensaje por Guillermo Hm » 14 Jun 2019 20:23

Cordial Saludo....

PoloLomb, Considero que la siguiente opcion te puede servir, solo cambia las variables, de igual forma alli hay un controlador de errores... Puede servirte ??



Sub CambiarNombres()

Dim Ghm As Long, C As Long
Dim MyUserF As String, NombreControl, CadenaAnt As String, CadenaNueva As String

CadenaAnt = "Honorarios"
CadenaNueva = "Gastos"
C = 10 'Ejemplo de Numero de controles del formulario

MyUserF = "MiForm" 'Coloca el nombre del formulario

Dim myForm As Object
Set myForm = ThisWorkbook.VBProject.VBComponents(MyUserF)

For Ghm = 0 To C
On Error Resume Next

Dim NewButton As MSForms.TextBox

NombreControl = myForm.Designer.Controls.Item(Ghm).Name

If Left(UCase(NombreControl), 4) = Left(UCase(CadenaAnt), 4) Then
Set NewButton = myForm.Designer.Controls.Item(NombreControl)
With NewButton
.Name = Application.WorksheetFunction.Substitute(UCase(NombreControl), UCase(CadenaAnt), CadenaNueva)
End With
Else
End If

Next

End Sub



Responder