Macro Ordenar alfabéticamente y copiar valor

Ustedes me ayudaron con esta excelente. Solo quería algo más.

Esta fórmula da el nombre del valor de una celda en un libre que tiene muchas hojas.

Me gustaría añadirle que me repitiera en todas las hojas en una celda la fórmula ( =EXTRAE(A4, 9,40) )

Y que al final de todo me ordenara Alfabéticamente todas las Hojas.

Sub NombraHojas()
'---- Variables modificables:
'=== FELIX: Modifica estos datos de acuerdo a tu planilla:
NombreEn = "P3" ' celda donde está el nombre a dar a la hoja
Excluir = "RESUMEN" ' si hubiera alguna hoja que no debería re nombrarse
'---- fin Variables
'
'---- inicio de rutina:
'
For Each hoja In Sheets
If hoja.Name <> Excluir Then
NomHoja = hoja.Range(NombreEn).Value
On Error Resume Next
hoja.Name = NomHoja
If Err <> 0 Then
ElMensaje = "La hoja actual no puede tomar el nombre" & Chr(10) & _
IIf(Len(NomHoja), NomHoja, "<<está vacía!>>") & Chr(10) & "Modifiquelo en celda y relance esta macro" & Chr(10) & " Se interrumpe esta macro" & Chr(10)
TipoMens = vbCritical
ElTitulo = "NOMBRE INCOMPATIBLE!"
MsgBox ElMensaje, TipoMens, ElTitulo
GoTo TheEnd
Else
cont = cont + 1
End If
Err.Clear
On Error GoTo 0
End If
Next
TheEnd:
ElMensaje = IIf(cont = 0, "NO SE CAMBIO NINGUN NOMBRE DE HOJA", "Se renombraron: " & cont)
TipoMens = IIf(cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(cont = 0, "NO SE HIZO NADA", "TERMINADO!")
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub

1 respuesta

Respuesta
1

.

Buenas, Feliz

Tal vez no hayas visto mi otra respuesta, pero la nueva rutina evita esa fórmula y toma el nombre limpio para nombrar la hoja.

Fijate si está OK y avisame.

Abrazo

Fernando

Nota: Desde hace varias semanas este sitio tarda mucho en actualizar las preguntas / respuestas que se envían. Imagino que deben tener saturado los servidores. Habrá que tener paciencia.

.

Cuando va por la 4 hoja me envía este error "La hoja actual no puede tomar el nombre"

.

Como te había comentado, ese mensaje lo incluí para cuando hubiera un conflicto con el nombre a darle a la hoja. Debajo de esa línea de mensaje, te debería mostrar cuál es el nombre que está intentando colocar.

Hubiera ayudado que mencionaras cuál es el nombre que genera el problema, pero se me ocurren al menos cuatro razones para ese error:

  • Que el nombre ya exista en otra hoja anterior
  • Que contenga caracteres incompatibles con nombres de hoja: / * + -
  • Que la celda estuviera vacía
  • Que el nombre fuese excesivamente largo

Fíjate si es alguno de estos casos y corrigelos consecuentemente.

Si aún hubiera problemas, dime cuál es el nombre a agregar y veremos por qué genera error.

Saludos

Fernando

.

jejje Creo que la ultima. 

CHRISTIAM Enrique Gonzalez Quiroz

.

Efectivamente, la última.

Y por poco. El límite es de 31 caracteres y ese nombre tiene 31.

Podría haberle puesto una limitante para que corte en ese tope, pero preferí que sea el usuario que decida cómo modificarlo.

Si estas respuestas te resolvieron el problema te pido -por favor- que finalices ambas para que otros usuarios puedan consultarme. Hay un botón abajo para cambiar la calificación que desees darle a esta respuesta y la anterior.

Abrazo
Fernando

.

¿Disculpa mi ignorancia y puedo cambiar eso en la fórmula?

.

Sí, en la pregunta original te dejaré una versión que corta los nombres largos a los 31 caracteres permitidos. Eso te evitará el mensaje de error.

Muchas gracias por tu calificación

Abrazo

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas