Ir ao conteúdo
  • Cadastre-se

Editar dados via vba...


Posts recomendados

E ai galera amante do excel....

Seguinto to com um probleminha espero que vocês podem me ajudar

bom

tenho um formulario onde eu alimento uma planilha que é o meu banco de dados

esta é a macro que uso:

Set PastaDest = ActiveWorkbook

UltimaLinha = Sheets("NOTA").Cells(Sheets("NOTA").Cells.Rows.Count,"a").End(xlUp).Row + 1

If UltimaLinha - 1 = "CDOS" Then

Cells(UltimaLinha, 1) = Format(1, "00000")

cdos = Format(1, "00000")

Else

Cells(UltimaLinha, 1) = Format(Cells(UltimaLinha - 1, 1) + 1, "000000")

OS = Format(Cells(UltimaLinha - 1, 1) + 1, "000000")

End If

Sheets("NOTA").Cells(UltimaLinha, 2) = CDate(cddata)

Sheets("NOTA").Cells(UltimaLinha, 3) = UCase(cdSetor)

Sheets("NOTA").Cells(UltimaLinha, 4) = UCase(cdNumero)

Sheets("NOTA").Cells(UltimaLinha, 5) = UCase(CdEquipamento)

Sheets("NOTA").Cells(UltimaLinha, 6) = UCase(cdtag)

Sheets("NOTA").Cells(UltimaLinha, 7) = UCase(cdsolicitante)

Sheets("NOTA").Cells(UltimaLinha, 8) = UCase(cdDescrição)

Sheets("NOTA").Cells(UltimaLinha, 9) = UCase(cdEstatus)

Sheets("NOTA").Cells(UltimaLinha, 10) = UCase(cdObservação)

PastaDest.Close savechanges:=True

MsgBox "Nota Lançada com Sucesso", vbInformation, "PB BRASIL"

e tenho um macro que pesquisa esses valores para mim:

Set Busca = Sheets("NOTA").Cells.Find(what:=TermoPesquisado, after:=Sheets("NOTA").Range("D1"), LookIn:=xlFormulas, _

LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False)

'Caso tenha encontrado alguma ocorrência...

If Not Busca Is Nothing Then

Primeira_Ocorrencia = Busca.Address

Resultados = Busca.Row 'Lista o primeiro resultado na variavel

'Neste loop, pesquisa todas as próximas ocorrências para

'o termo pesquisado

Do

Set Busca = Sheets("NOTA").Cells.FindNext(after:=Busca)

'Condicional para não listar o primeiro resultado

'pois já foi listado acima

If Not Busca.Address Like Primeira_Ocorrencia Then

Resultados = Resultados & ";" & Busca.Row

End If

Loop Until Busca.Address Like Primeira_Ocorrencia

MatrizResultados = Split(Resultados, ";")

'Atualiza dados iniciais no formulário

SpinButton12.Max = UBound(MatrizResultados) 'Valor maximo do seletor de registros

'habilita o seletor de registro

SpinButton12.Enabled = True

'indicador do seletor de registros

Contador.Caption = "1 de " & UBound(MatrizResultados) + 1

'Box com o conteudo encontrado

cddata.Text = Sheets("NOTA").Cells(MatrizResultados(0), 2).Value

cdSetor.Text = Sheets("NOTA").Cells(MatrizResultados(0), 3).Value

cdNumero.Text = Sheets("NOTA").Cells(MatrizResultados(0), 4).Value

cdtag.Text = Sheets("NOTA").Cells(MatrizResultados(0), 5).Value

CdEquipamento.Text = Sheets("NOTA").Cells(MatrizResultados(0), 6).Value

cdsolicitante.Text = Sheets("NOTA").Cells(MatrizResultados(0), 7).Value

cdDescrição.Text = Sheets("NOTA").Cells(MatrizResultados(0), 8).Value

cdEstatus.Text = Sheets("NOTA").Cells(MatrizResultados(0), 9).Value

cdObservação.Text=Sheets("NOTA").Cells(MatrizResultados(0),10).Value

O problema é o seguinte nao to conseguindo editar esses valores pesquisado

o maximo que consegui foi foi editar o valor mas ele editava a celula abaixo alguem pode me ajudar...

desde ja agradeço...

valeu....

Link para o comentário
Compartilhar em outros sites

Bom dia!!

Perdão mas eu não olhei sua rotina.

Sendo assim você consegue criar uma ideia baseada no código abaixo?

Private Sub Editar_Click()
With Worksheets("SuaGuiaAqui").Columns(1)
i = .Find(what:=TextBox4.Value, after:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole).Row
j = i
j = Cells.FindNext(after:=ActiveCell).Row
UserForm5.TextBox4.Value = .Cells(j, 1).Value
UserForm5.TextBox5.Value = .Cells(j, 2).Value
UserForm5.TextBox6.Value = .Cells(j, 3).Value
UserForm5.TextBox7.Value = .Cells(j, 4).Value
UserForm5.TextBox8.Value = .Cells(j, 5).Value
UserForm5.TextBox9.Value = .Cells(j, 6).Value
UserForm5.TextBox10.Value = .Cells(j, 7).Value
UserForm5.TextBox11.Value = .Cells(j, 8).Value
UserForm5.TextBox12.Value = .Cells(j, 9).Value
UserForm5.TextBox13.Value = .Cells(j, 10).Value
UserForm5.TextBox14.Value = .Cells(j, 11).Value
UserForm5.ComboBox1.Value = .Cells(j, 12).Value
End With
End Sub

Link para o comentário
Compartilhar em outros sites

Vou tentar aqui....

ou zinhovba cara tentei aqui mas nao alterou

ela some o texto que esta digitado dentro do textbox mas não envia a alteração para a planilha.....

a rotina ficou assim pos só tenho q alterar esses dois campos

With Worksheets("NOTA").Columns(7)

i = .Find(what:=cdProcurar.Value, after:=.Cells(7), LookIn:=xlValues, LookAt:=xlWhole).Row

j = i

j = Cells.FindNext(after:=ActiveCell).Row

NOTADESERVIÇO.cdEstatus.Value = .Cells(j, 9).Value

NOTADESERVIÇO.cdObservação.Value = .Cells(j, 10).Value

End With

errei em algo que não podia alterar ?

ah e o texto procurado esta na coluna 7

ah e essa planilha que me serve como banco de dados ela ta no servidor nao na mesma planilha que esta o formulario mas na hora que efeutuo a busca ela abre a planilha de destino

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Olá laercionb

Fiz, no seu código o que você precisava. Teste e veja se atende o que você quer:

http://www.sendspace.com/file/ay4tvj

Estou enviando também um aplicação feita para outro membro do clube que é parecida com a sua:

http://www.sendspace.com/file/a6ppwi

Té +

Márcio

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá laercionb

Fiz, no seu código o que você precisava. Teste e veja se atende o que você quer:

http://www.sendspace.com/file/ay4tvj

Estou enviando também um aplicação feita para outro membro do clube que é parecida com a sua:

http://www.sendspace.com/file/a6ppwi

Té +

Márcio

Cara Perfeito você não tem ideia do tanto que você me ajudou pois esse é apenas um dos muitos formularios que tenho mas muito obrigado mesmo em valeu amigo...

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • 3 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

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...