Excel - Colocar link en negrita si el texto comienza por un numero

 
Vista:
sin imagen de perfil

Colocar link en negrita si el texto comienza por un numero

Publicado por party (4 intervenciones) el 07/03/2024 12:28:42
Hola buenas tardes.

Tengo el siguiente código que permite crear un menú de links con las hojas de mi documento

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub Indice()
'*****************************************************************************************************************
'  PRIMER PASO: Verificamos que exista la hoja 'Indice', de lo contrario, la creamos
'*****************************************************************************************************************
    Dim hoja As Worksheet
    On Error Resume Next
    Set hoja = Worksheets("INDICE")
    On Error GoTo 0
 
    If hoja Is Nothing Then
        ' Como la hoja no existe, le digo a Excel que la cree
        Worksheets.Add(Before:=Worksheets(1)).Name = "INDICE"
    Else
        ' Si la hoja ya existe, entonces borramos todo lo que haya en ella
 '      Worksheets("INDICE").Cells.Clear
    End If
 
    'Le ponemos un título a la hoja
    Worksheets("Indice").Range("B1").Value = "INDICE"
 
    Worksheets("Indice").Range("B1").Font.Size = 20
'****************************************************************************************************************
'  SEGUNDO PASO: Vamos creando los enlaces de cada hoja, una por una
'****************************************************************************************************************
    Dim fila As Long, enlaceInicio As String
 
    fila = 2
    ' ¿En qué celda quieres colocar el enlace de regreso al índice?
    enlaceInicio = "B1"
 
    For Each hoja In Worksheets
        If hoja.Name <> "INDICE" Then
            ' Creamos el enlace de regreso.
            With Worksheets("INDICE")
                .Hyperlinks.Add Anchor:=.Cells(fila, 4), _
                Address:="", _
                SubAddress:="'" & hoja.Name & "'!B1", _
                TextToDisplay:=hoja.Name
 
 
 
            End With
 
            With hoja
                .Hyperlinks.Add Anchor:=.Range(enlaceInicio), _
                Address:="", _
                SubAddress:="INDICE!B1", _
 TextToDisplay:="INDICE"
            End With
            fila = fila + 1
        End If
    Next
 
End Sub

Sin embargo yo quiero colocar un código que me permita validar cuando se esta creando el link, si el texto del link comienza por un numero, entonces colocar ese link en negrita, en caso contrario dejarlo con texto normal.

Adjunto archivo.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Colocar link en negrita si el texto comienza por un numero

Publicado por Antoni Masana (2478 intervenciones) el 08/03/2024 17:53:54
Prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Sub Indice()
 
'Dim Hoja As Worksheet
'x = 6
'For Each Hoja In Worksheets
 
'Sheets("Indice").Cells(x, 2) = Hoja.Name
 
'x = x + 1
 
'Next Hoja
 
'*****************************************************************************************************************
'   PRIMER PASO: Verificamos que exista la hoja 'Indice', de lo contrario, la creamos
'*****************************************************************************************************************
    Dim hoja As Worksheet
    On Error Resume Next
    Set hoja = Worksheets("INDICE")
    On Error GoTo 0
 
    If hoja Is Nothing Then
        ' Como la hoja no existe, le digo a Excel que la cree
        Worksheets.Add(Before:=Worksheets(1)).Name = "INDICE"
    Else
        ' Si la hoja ya existe, entonces borramos todo lo que haya en ella
 '       Worksheets("INDICE").Cells.Clear
    End If
 
    'Le ponemos un título a la hoja
    Worksheets("Indice").Range("B1").Value = "INDICE"
 
    Worksheets("Indice").Range("B1").Font.Size = 20
'****************************************************************************************************************
'   SEGUNDO PASO: Vamos creando los enlaces de cada hoja, una por una
'****************************************************************************************************************
    Dim fila As Long, enlaceInicio As String
 
    fila = 2
    ' ¿En qué celda quieres colocar el enlace de regreso al índice?
    enlaceInicio = "B1"
 
    For Each hoja In Worksheets
        If hoja.Name <> "INDICE" Then
            ' Creamos el enlace de regreso.
            With Worksheets("INDICE")
                .Hyperlinks.Add Anchor:=.Cells(fila, 4), _
                                Address:="", _
                                SubAddress:="'" & hoja.Name & "'!B1", _
                                TextToDisplay:=hoja.Name
 
                ' ---&--- Si empieza por un numero la pone en negrita
 
                If InStr("1234567890", Left(.Cells(fila, 4), 1)) > 0 Then
                    .Cells(fila, 4).Font.Bold = True
                End If
            End With
 
 
            With hoja
                .Hyperlinks.Add Anchor:=.Range(enlaceInicio), _
                                Address:="", _
                                SubAddress:="INDICE!B1", _
                                TextToDisplay:="INDICE"
            End With
            fila = fila + 1
        End If
    Next
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Colocar link en negrita si el texto comienza por un numero

Publicado por party (4 intervenciones) el 09/03/2024 11:53:33
Gracias Antoni, funciona perfecto.

Una consulta:

Como puedo colocar lo que hace esta misma formula en código VBA para este mismo archivo?

=SI(D2="","",SI(Y(CODIGO(IZQUIERDA(D2,1))>47,CODIGO(IZQUIERDA(D2,1))<58),"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Colocar link en negrita si el texto comienza por un numero

Publicado por Antoni Masana (2478 intervenciones) el 09/03/2024 12:02:58
La fórmula esta incompleta.

1
2
3
4
5
6
7
8
9
If Range("D2") ="" Then
    {Donde asignes el valor} = ""
Else
    If Asc(Left(Range("D2"), 1)) > 47 And Asc(Left(Range("D2"), 1)) < 58 Then
        {Donde asignes el valor} = ""
    Else
        Asignar el caso de FALSO
    End If
End If

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Colocar link en negrita si el texto comienza por un numero

Publicado por party (4 intervenciones) el 09/03/2024 13:41:14
Hola

Esta es la formula, que tengo colocada


Formula2.JPG

Y es lo mismo que quiero hacer cuando se ejecute el código.

De hecho me gustaría que se posicionara tal como lo muestro en la imagen , en donde si cumple la condición se muestre mas a la izquierda el icono del avion

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar