Notifications
Clear all

Ver a macro ser executada

5 Posts
1 Usuários
0 Reactions
811 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Como faço pra ver a macro ser executada? tipo um botão slow motion onde eu vá clicando e cada linha de código vá sendo executada? para que eu possa entender todo um código

 
Postado : 14/06/2013 5:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ta ficando "veinho" Claudinei, com memoria curta ?

viewtopic.php?p=20770

Claudinei, a melhor maneira de se entender o que os códigos estão realizando, é utilizarmos o Recurso Passo a Passo. para isto, abra o editor do VBA, escolha a rotina que quer e vá teclando "F8", verá que a cada pressionamento da tecla, umalinhafica em selecionadae em amarelo, é a linha que está sendo executada, então passe o mouse sobre as variáveis e irá ter as informações, e dependendo da ação, se o editor do vba não estiver maximizado, poderá ver na planilha as alterações irem acontecendo.

Desculpe a brincadeira, rsrsrsr

[]s

 
Postado : 14/06/2013 5:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não Mauro , isso eu fiz , acho que nao estou é sabendo é explicar o que preciso; mas veinho eu to mesmo rsrsrssr já to aposentando se Deus quiser e a Dilma não atrapalhar rsrsrsrs

Sub Importartxt()
Desprot
Desprot2
  Dim Campos As Variant
    Dim Arquivo As String
    Dim i As Long, j As Long
    If Range("AQ97") = 1 Then
    'Contador de linhas
    i = 1
    'abre um "mini" explorer de arquivos
    ArquivoTxt = Application.GetOpenFilename("Arquivos Texto(*.txt), *.txt")
    If ArquivoTxt = False Or ArquivoTxt = "False" Then
        Prot
        Prot2
        Exit Sub
    End If
         'abre o arquivo texto
    Open ArquivoTxt For Input As #1
     ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & ArquivoTxt, Destination:=Range("bl97")).Refresh BackgroundQuery:=False
       'fecha o arquivo texto
    Close #1
    'Cells.EntireColumn.AutoFit ' autoajuste da largura da coluna
    Range("bl97:IV99").Select
    Selection.Delete shift:=xlUp
    Range("bl98:IV98").Select
    Selection.Delete shift:=xlUp
    Columns("bm:bm").Select
    Selection.Copy
    Columns("bj:bj").Select
    Range("bj97").Activate
    ActiveSheet.Paste
    Columns("bp:bp").Select
    Application.CutCopyMode = False
    Selection.Copy
    Columns("bk:bk").Select
    Range("bk97").Activate
    ActiveSheet.Paste
    Columns("bl:IV").Select
    Range("bl97").Activate
    Application.CutCopyMode = False
    Selection.QueryTable.Delete
    Selection.ClearContents
    Range("bj:Bk").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Font.Bold = False
    With Selection.Font
        .Name = "Arial"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("Bg97:Bh97").Select
    Selection.Font.Bold = True
    With Selection.Font
        .Name = "Arial"
        .Size = 16
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
     Range("AQ97").Value = 0
     Rows("97:97").Select
    Selection.RowHeight = 60#
    Rows("98:98").Select
    Selection.RowHeight = 34.5
    Rows("99:99").Select
    Selection.RowHeight = 33#
    Rows("100:123").Select
    Selection.RowHeight = 45.5
    Columns("BJ:BK").Select
    Selection.Replace What:=" 7", Replacement:=":", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="23 K ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        Range("D100").Select
    Prot
    Prot2
    MsgBox "Importação Concluida Com Sucesso", vbMsgBoxSetForeground
            Else
    MsgBox "VOCÊ JÁ EFETUOU A IMPORTAÇÃO DO ARQUIVO", vbMsgBoxSetForeground
    End If
    Prot
    Prot2
       End Sub

em algum lugar desse código ele tá ferrando minha planilha e eu não consigo descobrir onde , porque é muito rápido , eu tenho 8 botoes de 1,27 x 6,27cm marcados a opção "mover mas não dimensionar com células" que estão no centro de uma linha de altura 60 e após rodar esse código eles não ficam no mesmo local e não posso escolher "não mover e não dimensionar com células" por outros motivos da planilha .
O que eu precisava era tipo camera lenta mesmo pra rodar o código pra detectar em que momento dá o erro

 
Postado : 14/06/2013 6:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Claudinei, não entendi, a unica maneira que conheço de acomponhar uma rotina passo a passo é atraves da tecla F8.

Quanto a sua rotina, procurei simular aqui, adicionando alguns botões deixando a proriedade como, "não mover e não dimensionar com células", encaixei estes botões em algumas celulas redimensionado-as, e a principio ficou tudo como deixei apos a execução, apesar de ter feito no excel 2003 e importar um arquivo texto qualquer.

Quanto a questão novamente do passo a passo, executei pressionando F8 e acompanhei todas as ações, e na instrução :
Selection.RowHeight = 60# que altera a altura da linhaonde o botão se encontra foi normal e não alterou em nada o designe do botão.

Uma sugestão é executar o F8 e a cada passo alternar para a planilha e ir verificando, principalmente nas linhas que formata as linhas e ranges.

[]s

 
Postado : 14/06/2013 8:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde,

Uma opção seria colocar o método "Wait" entre as linhas "suspeitas":

Application.Wait Now + TimeValue("00:00:01")

No exemplo coloquei 1 segundo, porém você pode colocar um tempo maior.

Abraço

 
Postado : 14/06/2013 9:39 am