web 2.0


Ocultar Ribbon sem Editar XML

A dica é simples, fácil, porém pouco conhecida...

 

veja como ocultar o faixa de opções do excel sem editar diretamente as declaraçoes XML do CustomUI.xml

 

False para Ocultar

True para restaurar

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"

 

teste na janela imediata

 

Tags: , , , ,

Microsoft Office

Curso Excel 2003 sobre ADO e ADOX (ActiveX Data Objects) - Parte 5

CURSO ADO e ADOX COMPLETO

 

Caso você ainda não tenha lido a quarta parte, você pode acessá-la em ADO ADOX (ActiveX Data Objects).


2.7.     Tratamento de Erros

Dada a natureza estrita de um banco de dados será impossível ter um código infalível, portanto, é importante que o leitor saiba tratar os erros que possam aparecer para que possíveis problemas sejam resolvidos.

No código anterior possuo um tratamento de erro, embora não o use em todos os exemplos deste curso para não ser pedante com cada código escrito.

Geralmente utilizamos as seguintes instruções para lidar com os erros:

·         On Error GoTo “Rótulo”

·         On Error Resume Next

No primeiro caso, quando o erro ocorre o código é remitido para um rótulo dentro da rotina, por exemplo:

Sub RecordsetLike(ByVal strBusca As String, ByVal Tipo As String)

   

    On Error GoTo Err_Handler

'   Código a ser executado entra aqui

 

    Exit Sub

 

Err_Handler:

    MsgBox Err.Description, vbCritical, Err.Number

    Resume Limpar

End Sub

Note que antes do rótulo há a instrução Exit Sub. Esta instrução se faz necessária para evitar a execução do código logo abaixo do rótulo. Esta parte somente é executada quando há um erro.

O leitor pode ou não definir uma mensagem personalizada, mas se o erro é imprevisível o melhor e deixar em aberto a questão e passar a descrição do erro e o número do erro como é feito no exemplo acima.

Uma outra forma de tratar o erro é utilizar a segunda instrução conforme abaixo:

Sub RecordsetLike(ByVal strBusca As String, ByVal Tipo As String)

   

    On Error GoTo Err_Handler

   

'   Código a ser executado entra aqui

   

Limpar:

    On Error Resume Next

    rs.Close

    Set rs = Nothing

    Exit Sub

 

Err_Handler:

    MsgBox Err.Description, vbCritical, Err.Number

    Err.Clear

    Resume Limpar

End Sub

On Error Resume Next instrui o VBA a continuar a operação em caso de erro. O leitor precisa notar duas coisas aqui:

1.Adição da linha Err.Clear à Adiciono esta linha para limpar o erro causado antes do rótulo Limpar. O motivo para isso é que acima nós resumiremos o código neste ponto após o primeiro erro porém...

2.... Ao resumir no rótulo Limpar caso o primeiro erro tenha sido na abertura do recordset nós não teremos nenhum recordset para fechar o que causaria novo erro (conforme figura abaixo). Então, nós limpamos o erro antes de seguirmos para o rótulo Limpar e ali instruímos o código a continuar em caso de novo erro. Se não fizermos isso, entramos em um loop eterno na primeira instrução On Error GoTo:

Figura 25 Erro retornado ao tentar fechar recordset que ainda não foi aberto

Obviamente que apenas passar a mensagem ao usuário não resolve o seu caso, pois você deseja saber o que está ocorrendo e caso o problema seja no código, você quererá corrigi-lo para evitar recorrência dos problemas.

Como estamos lidando com um banco de dados, talvez a melhor forma de fazermos isso seja através de uma tabela onde “logamos” os erros os quais são futuramente analisados e caso sejam problemas no código os mesmos sejam retificados.



CURSO ADO e ADOX COMPLETO

 

Tags: , , , , ,

Microsoft Office | VBA

Números por extenso no Word

Você alguma vez se viu tentando adicionar números no Word e depois, manualmente, escreveu o valor por extenso? Utilizando campos, nós podemos fazer isso rapidamente no Word.

Muitos utilizam o Microsoft Word para criar recibos dos mais variados tipos. A primeira coisa que devemos lembrar é que, se temos muitos recibos para imprimir o ideal é utilizar o sistema de mala direta (sistema de correspondência) do Microsoft Word conectado a alguma base de dados (podendo ser um banco de dados ou até mesmo o Excel).

Neste caso, aqui, veremos como tornar um número em extenso sem a necessidade de funções personalizadas.

Primeiramente, pressione as teclas SHIFT CTRL+F9 para adicionar um camposdo Word. Você terá um conjunto de chaves { }. Dentro deste campo, digite a seguinte fórmula:

{=1253,25 \* CardText \* lower} e centavos

A expressão “CardText” será responsável pela escrita do número por extenso. Já “lower” indicar que o texto de ser em minúscula. Você também pode utiliza upper e caps sendo que o primeiro escreverá tudo em maiúsculo ao passo que o segundo escreverá a primeira letra de cada palavra em maiúscula.

Outra alternativa é utilizar DollarText no lugar de CardText. Neste caso, os centavos aparecerão como 25/100.

Ao terminar a expressão, pressione a tecla F9 para atualizar o campo.

Tags: , , ,

Microsoft Office

Usando o clipboard com VBA

Dentre os recursos disponíveis no VBA podemos encontrar uma biblioteca chamada DataObjects.

trata-se de um conjunto de objetos que, dentre outras funções, podem ser usados para manipular a area de transferencia do windows.

abaixo segue os métodos basicos da area de transferencia

 

Dim dto As New DataObject

'Envia um conteudo de texto para area de transferencia
Sub EnviaParaAreaTransferencia(sText As String)
    dto.SetText sText
    dto.PutInClipboard
End Sub

'Captura conteudo da area de transferencia
Sub PegaConteudo()
    dto.GetFromClipboard
    EnviaParaAreaTransferencia "teste"
    MsgBox dto.GetText
End Sub
'Limpa a area de transferencia
Sub LimpaAreaTransferencia()
    dto.Clear
End Sub

ate a proxima...

Tags: , , , ,

Microsoft Office | VBA