1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Código em VBA - Erro maluco!

Discussão em 'Programação' iniciada por Barata, 7 de Fevereiro de 2007. (Respostas: 8; Visualizações: 1429)

  1. Barata

    Barata I folded Myself

    Boas.

    Sempre que executo o código abaixo dá-me o seguinte erro: [​IMG]

    Código:
    Public Sub weeks51()
    Dim folhas As Double, colunas As Double, linhas As Double
    
    For folhas = 1 To 51
        ActiveSheet.Copy After:=Sheets(folhas)
        ActiveSheet.Name = "Semana" & Format(folhas + 1)
        For coluna = 65 To 66
            For linha = 2 To 50
                Range(Chr(coluna) & Format(linha)).Select
                If coluna = 65 Then
                    ActiveCell.Formula = "=[_0150.xls]" & ActiveSheet.Name & "!H" & Format(linha)
                Else
                    ActiveCell.Formula = "=[Acab0150.xls]" & ActiveSheet.Name & "!G" & Format(linha)
                End If
            Next linha
        Next coluna
    
        For coluna = 73 To 74
            For linha = 2 To 50
                Range(Chr(coluna) & Format(linha)).Select
                If coluna = 73 Then
                    ActiveCell.Formula = "=[_0150.xls]" & ActiveSheet.Name & "!J" & Format(linha)
                Else
                    ActiveCell.Formula = "=[Acab0150.xls]" & ActiveSheet.Name & "!L" & Format(linha)
                End If
            Next linha
        Next coluna
    Next folhas
    
    End Sub
    Mas afinal o que está mal?! :confused: :confused:
     
  2. Barata

    Barata I folded Myself

    Eh pah... eu não acredito que ninguem saiba ultrapassar esta situação... :S
     
  3. JomarB

    JomarB Power Member

    Desculpa se isto nao tem nada com o teu problema mais eu tenho uma pequena curosidade de saber como e que fazes para tirar imagens deste tipo8| , ou seja estas que aparecem quando nos aparecem erros.
    Desculpa la se for um imcomodo.:kfold:
     
  4. Barata

    Barata I folded Myself

    O JomarB tem PM.

    Back ontopic!!
     
  5. _Neo__

    _Neo__ Power Member

    eu desisti de vba quando ele insistiu comigo que 4-1=2 ou parecido já foi á uns valentes anos atraz :007:

    ontopic

    mete um break no inicio do codigo e manda avançar uma linha de cada vez para saberes onde exactamente ele falha
     
    Última edição: 8 de Fevereiro de 2007
  6. Barata

    Barata I folded Myself

    pois! eu tb me ando a passar com os chiliques da linguagem! Mas não tenho tempo para programar algo numa linguagem mais fiavel (C ou Pascal - são as que melhor conheço!), por isso tenho que me sujeitar a programar sobre uma aplicação MS, neste caso o excel. Daí a necessidade do VBA.

    Anyways... o problema deve estar no ActiveSheet.Name . A certa altura fica vazio. Sei disto porque não preenche as folhas com as formulas que deveria. Usa sempre as formulas guardadas na sheet1 ( a base da cópia).

    Lembrei-me de um workaround para resolver a situação. Se não for hoje, amanhã programo e logo vejo como ficou. Qualquer noticia volto a postar.

    Obrigado pelo input _Neo__ , às vezes um gajo sente-se sozinho no meio de tanto problema estúpido. Rais parta a linguagem... irra!
     
  7. Barata

    Barata I folded Myself

    O problema mantém-se! Não tive sucesso!
     
  8. SchwanZ

    SchwanZ Power Member

    Man...eu sei programar umas coisas e costumo fazer mtas macros pas minhas sheets de excel...por isso vou tentar ajudar o melhor possivel dentro dos conhecimentos que possuo:


    Tens de por um watch (akelas linhas vermelhas q servem para a execuçao parar nakele ponto!) e correres o codigo passo a passo (dps de parar no teu watch carregas em F8 pa ires de linha a linha vendo o que acontece)...para veres q linha de codigo é que ele executa kd aparece o erro que mencionas...


    Eu axo que como ele fala em "OBJECTO INVOCADO estar desligado" pode ser a [_0150.xls] ou a [Acab0150.xls] que nao estao abertas e ele nao consegue ir la buscar a informaçao...penso eu de que...


    Nesta parte penso que tens um BUG...que é no facto de quando folhas=51...o nome da folha activa vai ser "Semana52" e nao me parece que keiras kisso aconteça (ou estarei enganado) e pode tb ser pelo facto da folha "semana52" nao existir que esta a ocorrer esse erro!

    Espero ter ajudado! ;)
    PS - Convinha explicares para que serve o codigo pq pode haver pessoas que tenham feito o mesmo de maneira diferente e que funcione! :)
     
  9. Barata

    Barata I folded Myself

    Obrigado pelo esforço colocado mas já resolvi o problema. Recorri a outro fórum e encontraram uma solução, cujo principio assenta em primeiro criar todas as sheets e só depois preenche-las com as formulas.

    A implementação seria toda de uma assentada ou seja, depois de serem criadas as sheets as formulas seriam preenchidas logo a seguir.

    O que fiz foi usar o mesmo principio mas parti-o em duas macros. 1 para criar as sheets e outra para as preencher! E pronto... já funciona às mil maravilhas.

    Obrigado malta! ;)
     

Partilhar esta Página