Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

212189859

Texto Data por extenso em Font Bold

Recommended Posts

Boa dia.

Estou a efectuar um trabalhinho para a minha escola e necessito de alguma ajuda.

O formulário vai reportar um texto para o word nestes termos:

 

 

Código:

.Bookmarks("TextoIntro").Range.Text = "Convoca-se os docentes, " + strConvocatoriaDe + ", " + "para uma reunião a realizar no dia " + CNomeDia(Day(Calendar1.Value)) + " de " + NomeMes(Month(Calendar1.Value)) + " de " + NomeAno(Year(Calendar1.Value)) + " " + "pelas" + " " + txtHoraActa + ", " + "com a seguinte ordem de trabalhos:"

 

Exemplo de texto final:

Convoca-se os docentes, das Actividades de Enriquecimento Curricular, para uma reunião a realizar no dia dezasseis de Novembro de dois mil e dez, pelas dezoito horas e cinco minutos, com a seguinte ordem de trabalhos:

 

Tenho uma Função, para o dia, que está assim:

 

 

Código:

Public Function CNomeDia(ByVal intDia As Integer) As String

Dim strDia As String

Select Case intDia

Case 1: strDia = "um"

Case 2: strDia = "dois"

Case 3: strDia = "três"

Case 4: strDia = "quatro"

Case 5: strDia = "cinco"

Case 6: strDia = "seis"

Case 7: strDia = "sete"

Case 8: strDia = "oito"

Case 9: strDia = "nove"

Case 10: strDia = "dez"

Case 11: strDia = "onze"

Case 12: strDia = "doze"

Case 13: strDia = "treze"

Case 14: strDia = "catorze"

Case 15: strDia = "quinze"

Case 16: strDia = "dezasseis"

Case 17: strDia = "dezassete"

Case 18: strDia = "dezoito"

Case 19: strDia = "dezanove"

Case 20: strDia = "vinte"

Case 21: strDia = "vinte e um"

Case 22: strDia = "vinte e dois"

Case 23: strDia = "vinte e três"

Case 24: strDia = "vinte e quatro"

Case 25: strDia = "vinte e cinco"

Case 26: strDia = "vinte e seis"

Case 27: strDia = "vinte e sete"

Case 28: strDia = "vinte e oito"

Case 29: strDia = "vinte e nove"

Case 30: strDia = "trinta"

Case 31: strDia = "trinta e um"

End Select

CNomeDia = strDia

End Function

 

O que pretendo é que quando ele enviar o dia por extenso, o coloque a negrito.

Poderia usar a função Find mas não me parece correcto porque poderá encontrar palavras semelhantes e também as coloca em negrito. Isso não interessa.

 

A única coisa que encontrei que resolve parcialmente a situação, de uma forma pouco correcta é isto:

 

 

Código:

With ActiveDocument.Content.Find

.ClearFormatting

.Font.Bold = False

.Format = True

.Replacement.ClearFormatting

.Replacement.Font.Bold = True

.Execute Forward:=True, Replace:=wdReplaceAll, FindText:=" um ", ReplaceWith:=" um " 'Linha a alterar

End With

 

Teria de repetir a "linha a alterar" para todas as condições ficando a programação demasiado extensa.

 

Alguém tem alguma ideia que possa resolver o meu problema?

Não sou expert em VBA, mas estou a estudar o seu funcionamento.

 

Desde já grato pela vossa ajuda

MarcoG

Portugal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando executa isso:

.Bookmarks("TextoIntro").Range.Text = "Convoca-se os docentes, " + strConvocatoriaDe + ", " + "para uma reunião a realizar no dia " + CNomeDia(Day(Calendar1.Value)) + " de " + NomeMes(Month(Calendar1.Value)) + " de " + NomeAno(Year(Calendar1.Value)) + " " + "pelas" + " " + txtHoraActa + ", " + "com a seguinte ordem de trabalhos:"

 

Sabe para qual célula o valor vai ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.