Ir ao conteúdo

Posts recomendados

Postado

Prezados

Bom dia,

 

Estou com dificuldades em corrigir o erro estouro 6, fiz a troca das variáveis mais não deu certo, como sou leigo e peguei essa planilha de um amigo gostaria da ajudar dos senhores, abaixo o código VBA em excel.

 

Sub DistCargas()

Dim Tipo As String
Dim Pcol As Integer
Dim Plin As Integer
Dim Found As Boolean

Lin = 4
Col = 1

Do Until IsEmpty(Cells(Lin, Col).Value)
    Tipo = Cells(Lin, Col + 1).Value
    Count = 2
    Pot = 0
    Do Until IsEmpty(Cells(Lin, Col + Count).Value)
        Ambiente = Cells(Lin, Col + Count).Value
        Plin = 4
        Found = False
    
        Do Until Found
            If Ambiente = Sheets(1).Cells(Plin, 1).Value Then
                Found = True
            Else
                Plin = Plin + 1 ( ERRO GERAR NESTE PONTO)
            End If
        Loop
    
        Select Case Tipo
            Case Is = "Iluminação"
                Pcol = 17
                Pot = Pot + Sheets(1).Cells(Plin, Pcol).Value * Sheets(1).Cells(Plin, Pcol + 1).Value
            Case Is = "TUGs"
                Pcol = 13
                Pot = Pot + Sheets(1).Cells(Plin, Pcol).Value
            Case Is = "TUEs"
                Pcol = 8
                Pot = Pot + Sheets(1).Cells(Plin, Pcol).Value
        End Select
        Count = Count + 1
    Loop
    If Tipo = "Circuito de Distribuição" Then
        Pcol = 28
        Pot = Pot + Sheets(1).Cells(4, Pcol).Value
    End If
    Cells(Lin, Col + 6).Value = Pot
    Lin = Lin + 1
Loop

End Sub

 

Postado

@Edson Luiz Branco

 

Prezado, acabei de substituir o tipo de variável para As Long, apareceu o erro em tempo de execução '1004': Erro de definição de aplicativo ou de definição de objeto.

            If Ambiente = Sheets(1).Cells(Plin, 1).Value Then (ERRO NESSE TRECHO) do mesmo código
 

 

Postado

Bastante atenção quando você usa Loops para que a condição que o encerra seja satisfeita pelo menos uma vez, senão ocorre Loop infinito que é o que está acontecendo em seu código:

        Do Until Found
            If Ambiente = Sheets(1).Cells(Plin, 1).Value Then
                Found = True

                ...

O problema é que há alguns "Ambientes" na planilha "Parte2" que não têm seu correspondente na planilha "Parte1". É o caso, por exemplo, do Ambiente "Sala" da Parte2. Na Parte1 só tem "Sala Estar" e "Sala Jantar", mas não "Sala". Os valores têm que ser exatamente iguais, inclusive quanto à Maiúsculas/Minúsculas (a menos que você use Option Compare Text na área de declarações no início do código).

Outro caso é "Banheiro". Na Parte1 só tem "Wc".

 

Outro ponto que merece ser verificado é:

Do Until IsEmpty(Cells(Lin, Col + Count).Value)

==> Isso implica que pelo menos um dos Ambientes tenha que estar em branco o que deu certo até agora, mas se os 4 tiverem preenchidos dará problema.

Postado

Prezado @Edson Luiz Branco

bom dia,

 

Fiz as correções nos quesitos que estavam fora de padrão, exemplo nome Sala - Sala de Jantar e os outros e realmente precisei preencher todos os ambientes e gerou o erro, passei horas tentando ajustar e não conseguir. qual seria sua sugestão? enquanto isso vou continuar tentando.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!