Página 2 de 2
Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 10:02
por anacletotranstusa
Alexandre,
Bom dia!
Anexo o modelo que estou tentando aplicar, perceba que simulei vários cadastros do carro 991, ao ser transferido, os valores dos campos "Classificação" e "Data" estão como formulas. Tem como resolver isso? Referente ao erro de execução teria, teria alguma alternativa para evitá-lo?
Desde já agradeço seus auxilio.
Re: Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 10:31
por alexandrevba
Bom dia!!
Tente algo assim.
Código: Selecionar todosSub AleVBA_729V3()
Dim LR As Long
Dim SearchRange As Range
Dim FindRow As Range
Application.ScreenUpdating = 0
LR = Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Cadastro")
With Range("I2:I326")
.Formula = "=IF(COUNTA(A2:H2)=8,1,IF(AND(B2<>"""",C2<>"""",E2<>"""",OR(F2="""",G2="""",H2="""")),""Erro"",0))"
.Value = .Value
End With
.Activate
.AutoFilterMode = False
.Range("I2").AutoFilter
.Range("I2").AutoFilter Field:=9, Criteria1:="#N/D"
If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count >= 1 Then
MsgBox "Favor preencher os campos!"
.AutoFilterMode = False
Exit Sub
End If
If WorksheetFunction.Sum(Range("I2:I" & LR)) = 0 Or WorksheetFunction.CountIf(Range("I2:I" & LR), "Erro") = 1 Then
Set SearchRange = Range("I2:I326")
Set FindRow = SearchRange.Find("Erro", LookIn:=xlValues, lookat:=xlWhole)
MsgBox "favor preencher os campos necessários!" & " Há " & FindRow.Row - 1 & " registro(s) para verificar"
Exit Sub
Else
.Range("$A$1:$I" & LR).AutoFilter Field:=9, Criteria1:="1"
.Range("A2:H" & LR).Copy Worksheets("Dados").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
.ShowAllData
'.Range("I2:I326").Value = ""
End If
End With
Worksheets("Dados").Activate
With Worksheets("Dados")
'Dim Lastrow As Long
LR = Range("B" & Rows.Count).End(xlUp).Row
Range("A2:A" & LR).Formula = "=ROW()-1"
End With
Worksheets("Cadastro").Select
'Call Limpar
Application.ScreenUpdating = 1
End Sub
Att
Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 11:22
por anacletotranstusa
Bom dia Alexandre,
Alterei o código do botão conforme seu auxilio, com a alteração, agora mesmo que informe uma informação de limpeza completa, me apresenta a mensagem "Favor preencher os campos!". Exemplo anexo.
Grato pela atenção.
Re: Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 13:07
por alexandrevba
Boa tarde!!
Veja se ajuda.
Código: Selecionar todosSub AleVBA_729V4()
Dim LR As Long
Dim SearchRange As Range
Dim FindRow As Range
Application.ScreenUpdating = 0
LR = Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Cadastro")
With Range("I2:I326")
.Formula = "=IFERROR(IF(COUNTA(A2:H2)=8,1,IF(AND(B2<>"""",C2<>"""",E2<>"""",OR(F2="""",G2="""",H2="""")),""Erro"",0)),""Erro"")"
.Value = .Value
End With
If WorksheetFunction.Sum(Range("I2:I" & LR)) = 0 Or WorksheetFunction.CountIf(Range("I2:I" & LR), "Erro") = 1 Then
Set SearchRange = Range("I2:I326")
Set FindRow = SearchRange.Find("Erro", LookIn:=xlValues, lookat:=xlWhole)
MsgBox "favor preencher os campos necessários!" & " Há " & FindRow.Row - 1 & " registro(s) para verificar"
Exit Sub
Else
.Range("$A$1:$I" & LR).AutoFilter Field:=9, Criteria1:="1"
.Range("A2:H" & LR).Copy Worksheets("Dados").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
.ShowAllData
'.Range("I2:I326").Value = ""
End If
End With
Worksheets("Dados").Activate
With Worksheets("Dados")
'Dim Lastrow As Long
LR = Range("B" & Rows.Count).End(xlUp).Row
Range("A2:A" & LR).Formula = "=ROW()-1"
End With
Worksheets("Cadastro").Select
'Call Limpar
Application.ScreenUpdating = 1
End Sub
Att
Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 14:06
por anacletotranstusa
Boa Tarde Alexandre,
Editei o código como postado, se deixar sem informação preenchida na aba cadastro e clicar no botão cadastrar ainda apresenta erro "Erro em tempo de execução '91': A variavel do objeto ou variável do bloco 'With' não foi definida.
Outro detalhe: Na aba Dados, perceba que as informações transferidas que contem formulas está sendo transferida com as formulas, observe a coluna "C" (Classificação) e "D" (Data) da aba Dados.
Att.
Re: Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 14:14
por alexandrevba
Boa tarde!!
Mas eu fiz o que pediu os detalhes é questão de adaptar!
Código: Selecionar todosSub AleVBA_729V4()
Dim LR As Long
Dim SearchRange As Range
Dim FindRow As Range
Application.ScreenUpdating = 0
LR = Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Cadastro")
With Range("I2:I326")
.Formula = "=IFERROR(IF(COUNTA(A2:H2)=8,1,IF(AND(B2<>"""",C2<>"""",E2<>"""",OR(F2="""",G2="""",H2="""")),""Erro"",0)),""Erro"")"
.Value = .Value
End With
If WorksheetFunction.Sum(Range("I2:I" & LR)) = 0 Or WorksheetFunction.CountIf(Range("I2:I" & LR), "Erro") = 1 Then
Set SearchRange = Range("I2:I326")
Set FindRow = SearchRange.Find("Erro", LookIn:=xlValues, lookat:=xlWhole)
MsgBox "favor preencher os campos necessários!" & " Há " & FindRow.Row - 1 & " registro(s) para verificar"
Exit Sub
Else
.Range("$A$1:$I" & LR).AutoFilter Field:=9, Criteria1:="1"
.Range("A2:H" & LR).Copy Worksheets("Dados").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
.ShowAllData
'.Range("I2:I326").Value = ""
End If
End With
Worksheets("Dados").Activate
With Worksheets("Dados")
'Dim Lastrow As Long
LR = Range("B" & Rows.Count).End(xlUp).Row
Range("A2:A" & LR).Formula = "=ROW()-1"
End With
Worksheets("Cadastro").Select
'Call Limpar
Application.ScreenUpdating = 1
End Sub
Editado, favor verificar o código!!!
Att
Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 14:33
por anacletotranstusa

Creio que você se equivoco no poste. O poste do Filtro já está resolvido.
Re: Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 16:57
por alexandrevba
Boa tarde!!
Altere a linha para:
Código: Selecionar todos With Range("I2:I326")
.Formula = "=IFERROR(IF(COUNTA(A2:H2)=8,1,IF(AND(COUNTA(A2:H2)=0,OR(F2="""",G2="""",H2="""")),""Erro"",""Erro"")),""Erro"")"
.Value = .Value
End With
If WorksheetFunction.Sum(Range("I2:I" & LR)) = 0 Or WorksheetFunction.CountIf(Range("I2:I" & LR), "Erro") > 1 Then
Faça os testes.
Att
Cadastro Veículos para Limpeza Diária
Enviado: 15 Out 2015 às 17:34
por anacletotranstusa
Alterei o código e veja como ficou, agora, quando informado as informações necessário para um registro apresenta a mensagem "Favor preencher os campos necessário! Há 2 Registro(s) para verificar". Em relação a transferência, teria alguma solução para transferi somente os valores.
Re: Cadastro Veículos para Limpeza Diária
Enviado: 16 Out 2015 às 13:06
por lfgomes
Boa tarde amigo...
Com base na sua Planilha, fiz uma com a visualização mais limpa e um código mais simples para realizar o cadastro...
Veja se assim pode te ajudar...

Cadastro Veículos para Limpeza Diária
Enviado: 16 Out 2015 às 15:41
por anacletotranstusa
Boa Tarde lfgomes,
Ficou show de bola.
Porem, na aba Cadastro preciso que conste todos os carros a ser limpo, visto que em média são registrado 160 limpezas de carros, ou seja, nesse caso seria 160 registro um de cada vez. Devido a isso, ficaria mais rápido o cadastro se fosse possível informar somente os veículos limpos e depois clicar no botão cadastrar fazendo a transferência somente dos veículos limpos. Teria como fazer?

, cara, muito obrigado pela sua diga, tem como você me auxiliar no desenvolvimento conforme já descrevi acima?
Re: Cadastro Veículos para Limpeza Diária
Enviado: 20 Out 2015 às 15:46
por lfgomes
Boa tarde amigo...
Veja se agora atende ao que você precisa...

Re: Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 08:20
por lfgomes
Bom dia...
Estive trabalhando um pouco mais nessa Planilha e acho que consegui melhora-la um pouquinho mais...
Teste as duas e veja se alguma lhe serve...
Abraço...

Re: Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 09:43
por anacletotranstusa
Bom dia lfgomes,
Muito obrigado ficou show de bola, as duas opções já me atenderia.
A segunda opção ficou melhor, estarei implantando, porem, preciso incluir uma formula no campo Data e algumas validações de dados nos campos: Colaborador, Tipo_Lavação, Turno, Responsável, evitando que o usuário informe dados erroneamente (Modelo Anexo), quando clicado no botão cadastrar faz a transferências para a "aba Dados" com a informação do campo data como formula e todos os campos com validação de dado também é transferido com a validação de dados, precisaria que seja transferido somente os valores.
Cara, se puder me auxiliar estaria concluindo a planilha perfeita para minha necessidade.
Cara, agradeço muito sua atenção.

Re: Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 10:45
por lfgomes
Bom dia...
Veja se agora está funcionando do jeito que você quer...

Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 13:43
por anacletotranstusa
Muito bom!
Só para encerrar, preciso também limpar a informação da Célula "L1", sei que é no código abaixo, porem não consegui.
Range("D2:G" & Range("I1").Value).Select
Selection.ClearContents
Re: Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 14:01
por lfgomes
Prontinho...
Terminado...
Espero que esteja do jeito que você quer...

Cadastro Veículos para Limpeza Diária
Enviado: 21 Out 2015 às 14:27
por anacletotranstusa
Resolvido!!!Maravilha! Agradeço muito ...muito mesmo, a você, ao Alexandre e Henrique, que de alguma maneira tentaram me auxiliar no desenvolvimento desta planilha. Fico sem palavra para demonstrar minha gratidão.
Abraço!
