adriano944 Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 PessoalEstou com mais um probleminha..pra variar ne..heheheBom..desta vez é o seguinte, eu tenho uma tabela com milhares de valores...onde eu faço algumas comparações e pego alguns valores.porem em uma determinada linha do codigo, está apresentando a msg de erro abaixo:Erro Tempo de Execução '9':Subscrito Fora do Intervalo.o que poderia ser? alguém faz ideia?Coloquei o codigo abaixo para vocês visualizares.______________________________________________________________________________________________________________________________________________Sub formatadataeconta()Dim cont As IntegerDim conti As IntegerDim mesatualref As StringDim contmes As IntegerDim contimes As IntegerDim ano As StringSheets("principal").Selectmesatualref = Range("f19")ano = Range("b19")For x = 9 To 18 Sheets("Principal").Select If Cells(x, 2) = "SIM" And Cells(x, 1) <> "" Then modelo = Cells(x, 1) cont = 0conti = 0contmes = 0contimes = 0 Sheets("Desenhos Novos").Select For i = 10476 To ActiveSheet.UsedRange.Rows.Count Sheets("Desenhos Novos").Select If ActiveSheet.Cells(i, 28) <> "" And ActiveSheet.Cells(i, 29) <> "" Then If mesatualref = ActiveSheet.Cells(i, 28) And ano = ActiveSheet.Cells(i, 29) Then modelo = Str(modelo) celula = Str(Sheets("Desenhos Novos").Cells(i, 4)) If celula = modelo Then ActiveSheet.Cells(i, 28).Select contmes = contmes + 1 ActiveSheet.Cells(i, 28).EntireRow.Select Selection.EntireRow.Copy Sheets(modelo).Select >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> O erro apresenta nesta linha. If activesheet.Cells(1, 1) = "" Then Sheets(modelo).Cells(ActiveSheet.UsedRange.Rows.Count, 1).Select ActiveSheet.Paste ElseIf Sheets(modelo).Cells(1, 1) <> "" Then Sheets(modelo).Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Select ActiveSheet.Paste Application.CutCopyMode = False End If Sheets("Desenhos Novos").Select Else End If End If Else ActiveSheet.Cells(i, 28).Select contimes = contimes + 1 End If ActiveSheet.Cells(i, 28).Select NextSheets("Principal").Select For b = 8 To 13 If ActiveSheet.Cells(b, 1) <> "" And ActiveSheet.Cells(b, 1) = modelo And ActiveSheet.Cells(b, 2) = "SIM" Then ActiveSheet.Cells(b, 7).Select ActiveSheet.Cells(b, 7) = contmes End If Next End If NextEnd Sub______________________________________________________________________________________________________________________________________________ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KodornaRocks Postado Junho 16, 2009 Denunciar Share Postado Junho 16, 2009 o debug para em qual linha? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 adriano944 Postado Junho 17, 2009 Autor Denunciar Share Postado Junho 17, 2009 KodornaRocks disse: o debug para em qual linha?KodornaRocks, O erro é apresentado na linha: Sheets(modelo).Selectno codigo eu coloquei algumas ">>>>>" monstrando onde da o erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 joabnm Postado Junho 17, 2009 Denunciar Share Postado Junho 17, 2009 adriano944 disse: KodornaRocks disse: o debug para em qual linha?KodornaRocks, O erro é apresentado na linha: Sheets(modelo).Selectno codigo eu coloquei algumas ">>>>>" monstrando onde da o erro.Cara eu não sei qual é o tipo de informaçao que você ta trabalhando, mas você precisa da uma analisada ae porque o erro acontece justamente quando você vai selecionar uma planilha,que vem de uma variavel, veja ae o que está sendo feito no meiu de tantas condições, porque isso é algum valor que está sendo adicionado a variavel referente ao guia inexistente.ou seja, depois de tanta condições colocadas no codigos ao adicionar o valor a variavel pode estar sendo adicionado uma celula em branco... ou seja até mesmo o nom da guia.só que com algum caracter diferente.. (lembrando que o valor dentro da variavel é Case Sensitive, ou seja "a" é diferente de "A" ou "e" é diferente de "é".enfim.. espero ter ajudado em alguma coisa.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 adriano944 Postado Junho 19, 2009 Autor Denunciar Share Postado Junho 19, 2009 joabnm disse: adriano944 disse: KodornaRocks disse: o debug para em qual linha?KodornaRocks, O erro é apresentado na linha: Sheets(modelo).Selectno codigo eu coloquei algumas ">>>>>" monstrando onde da o erro.Cara eu não sei qual é o tipo de informaçao que você ta trabalhando, mas você precisa da uma analisada ae porque o erro acontece justamente quando você vai selecionar uma planilha,que vem de uma variavel, veja ae o que está sendo feito no meiu de tantas condições, porque isso é algum valor que está sendo adicionado a variavel referente ao guia inexistente.ou seja, depois de tanta condições colocadas no codigos ao adicionar o valor a variavel pode estar sendo adicionado uma celula em branco... ou seja até mesmo o nom da guia.só que com algum caracter diferente.. (lembrando que o valor dentro da variavel é Case Sensitive, ou seja "a" é diferente de "A" ou "e" é diferente de "é".enfim.. espero ter ajudado em alguma coisa.abraçoVou dar uma analisada aki..mas o problema acredito que não seja este..se eu não me engano o problema começou a aparecer quando eu coloquei a instrução:modelo = Str(modelo)celula = Str(Sheets("Desenhos Novos").Cells(i, 4))mas, se eu tiro ela, ai da outro erro...e eu não consigo efetuar uma das condições nas linhas pra cima no codigo.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KodornaRocks Postado Junho 22, 2009 Denunciar Share Postado Junho 22, 2009 De 2 a uma,Ou isso aqui resolve:modelo = Str(Cells(x, 1).Value)OUUUUUa célula x,1 possui um valor que não bate com nenhum sheet que exista no workbook...faz algum teste do genero:found = 0 modelo = Str(Cells(x, 1).Value) For Each Worksheet In Worksheets If Worksheet.Name = modelo Then found = 1 End If Next Worksheet If found = 0 Then MsgBox "O Worksheet '" & modelo & "' não pode ser encontrado dentre os Worksheets do Workbook atual." Else Worksheets(modelo).Select End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
adriano944
Pessoal
Estou com mais um probleminha..pra variar ne..hehehe
Bom..desta vez é o seguinte, eu tenho uma tabela com milhares de valores...
onde eu faço algumas comparações e pego alguns valores.
porem em uma determinada linha do codigo, está apresentando a msg de erro abaixo:
Erro Tempo de Execução '9':
Subscrito Fora do Intervalo.
o que poderia ser? alguém faz ideia?
Coloquei o codigo abaixo para vocês visualizares.
______________________________________________________________________________________________________________________________________________
Sub formatadataeconta()
Dim cont As Integer
Dim conti As Integer
Dim mesatualref As String
Dim contmes As Integer
Dim contimes As Integer
Dim ano As String
Sheets("principal").Select
mesatualref = Range("f19")
ano = Range("b19")
For x = 9 To 18
Sheets("Principal").Select
If Cells(x, 2) = "SIM" And Cells(x, 1) <> "" Then
modelo = Cells(x, 1)
cont = 0
conti = 0
contmes = 0
contimes = 0
Sheets("Desenhos Novos").Select
For i = 10476 To ActiveSheet.UsedRange.Rows.Count
Sheets("Desenhos Novos").Select
If ActiveSheet.Cells(i, 28) <> "" And ActiveSheet.Cells(i, 29) <> "" Then
If mesatualref = ActiveSheet.Cells(i, 28) And ano = ActiveSheet.Cells(i, 29) Then
modelo = Str(modelo)
celula = Str(Sheets("Desenhos Novos").Cells(i, 4))
If celula = modelo Then
ActiveSheet.Cells(i, 28).Select
contmes = contmes + 1
ActiveSheet.Cells(i, 28).EntireRow.Select
Selection.EntireRow.Copy
Sheets(modelo).Select >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> O erro apresenta nesta linha.
If activesheet.Cells(1, 1) = "" Then
Sheets(modelo).Cells(ActiveSheet.UsedRange.Rows.Count, 1).Select
ActiveSheet.Paste
ElseIf Sheets(modelo).Cells(1, 1) <> "" Then
Sheets(modelo).Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Sheets("Desenhos Novos").Select
Else
End If
End If
Else
ActiveSheet.Cells(i, 28).Select
contimes = contimes + 1
End If
ActiveSheet.Cells(i, 28).Select
Next
Sheets("Principal").Select
For b = 8 To 13
If ActiveSheet.Cells(b, 1) <> "" And ActiveSheet.Cells(b, 1) = modelo And ActiveSheet.Cells(b, 2) = "SIM" Then
ActiveSheet.Cells(b, 7).Select
ActiveSheet.Cells(b, 7) = contmes
End If
Next
End If
Next
End Sub
______________________________________________________________________________________________________________________________________________
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.