Notifications
Clear all

Codigo editar linha não vazia

16 Posts
2 Usuários
0 Reactions
1,979 Visualizações
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

o que tem de errado nesse código na hora de editar uma celula preenchida...

Linha = Sheets(g).Cells(1048576, col).End(xlUp).Row + 0

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 03/05/2014 8:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que postou só posso dizer que :
Linha = Sheets(g).Cells(1048576, col).End(xlUp).Row + 0

Supondo que "g" é uma variável e se refere a "Plan1" e a Variável "col" se refere a coluna "A" ou "1"
Pela quantidade de linhas "1048576" está utilizando a versão 2007 ou superior, e assim esta é a última linha existente, então se todas as linhas estiverem preenchidas a Variável "Linha" será igual a "1", mas se a Última linha preenchida for a "1048575" a Variável "Linha" será igual a "1048576.

posto isto, não entendi o enunciado de sua duvida :"Codigo editar linha não vazia" ?

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/05/2014 8:48 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Pelo que postou só posso dizer que :
Linha = Sheets(g).Cells(1048576, col).End(xlUp).Row + 0

Supondo que "g" é uma variável e se refere a "Plan1" e a Variável "col" se refere a coluna "A" ou "1"
Pela quantidade de linhas "1048576" está utilizando a versão 2007 ou superior, e assim esta é a última linha existente, então se todas as linhas estiverem preenchidas a Variável "Linha" será igual a "1", mas se a Última linha preenchida for a "1048575" a Variável "Linha" será igual a "1048576.

posto isto, não entendi o enunciado de sua duvida :"Codigo editar linha não vazia" ?

[]s

quero usar esse codigo pra poder modificar os valores nas textboxes citadas

g = Combobox1.Value
s = Combobox2.Value

a = txt_datatrab.Value
b = txt_unidk.Value
c = txt_valorpago.Value
d = txt_valorapurado.Value
e = txt_dataentr.Value

col = Application.WorksheetFunction.Match(s, Sheets(g).Range("1:1"), 0)

f = Sheets(g).Cells(1048576, col).End(xlUp).Row + 1

Sheets(g).Cells(f, col) = a
Sheets(g).Cells(f, col + 1) = b
Sheets(g).Cells(f, col + 2) = c
Sheets(g).Cells(f, col + 3) = d
Sheets(g).Cells(f, col + 4) = e

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 03/05/2014 9:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Victor, melhor reformular sua duvida, em seu primeiro post a instrução é uma, e nestas instruções que postou ela não se encontra.

EM sua postagem só perguntou o que há de errado, a principio não tem erro algum, sómente comentei o que ela faz e o que poderia causar algum erro se exceder a qde de linhas.
Agora você diz "quero usar esse codigo pra poder modificar os valores nas textboxes citadas", ou seja quer lançar os valores na planilha de acordo com oque está digitado nos textbox ?
Se for isto, tambem não vi nenhum erro, a rotina pesquisa em qual coluna na na linha 1 se encontra o valor de "s" que esta no ComboBox2 na Aba de nome que se encontra na variavel "g" no Combobox1, depois verifica a ultima linha vazia e lança os valores.

Resumindo, qual a sua duvida ? Está dando algum erro ? se Sim, qual ?

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/05/2014 8:25 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Victor, melhor reformular sua duvida, em seu primeiro post a instrução é uma, e nestas instruções que postou ela não se encontra.

EM sua postagem só perguntou o que há de errado, a principio não tem erro algum, sómente comentei o que ela faz e o que poderia causar algum erro se exceder a qde de linhas.
Agora você diz "quero usar esse codigo pra poder modificar os valores nas textboxes citadas", ou seja quer lançar os valores na planilha de acordo com oque está digitado nos textbox ?
Se for isto, tambem não vi nenhum erro, a rotina pesquisa em qual coluna na na linha 1 se encontra o valor de "s" que esta no ComboBox2 na Aba de nome que se encontra na variavel "g" no Combobox1, depois verifica a ultima linha vazia e lança os valores.

Resumindo, qual a sua duvida ? Está dando algum erro ? se Sim, qual ?

[]s

Desculpas... eu já estou usando esse código pra lançar os valores na planilha! queria esse mesmo código ou similar a esse ai, com as mesmas funções entendeu pra poder "EDITAR" os valores na já contido na planilha através das testboxes.

tenho uma listbox eu ja consigo carregar os itens em cada textbox.

se poder me ajudar agradeço... por que ja pesquisei em tudo não vi casos parecidos...

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 05/05/2014 8:44 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Victor, pelo viso começou com o assunto errado, deveria ter colocado logo no inicio o que colocou neste último post que seria localizar um determinado valor, Alter-lo e os valores nas colunas correspondentes, pelo menos é isto que entendi agora.

Como não deu maiores detalhes, tipo : O que estamos Pesquisando ? Um Código ? Nome ? Em qual Coluna ?

Assim eu vou por suposições:
Supondo que no ComBobox2 está o Nome da Planilha que irá ser pesquisada, e a Coluna a ser pesquisada é a Coluna 2(B), e que deve utilizar um Botão para efetuar a pesquisa, então associe ao Botão ou ajuste a rotina abaixo em seu formulário:

Sub VictorSan()
    Dim sLocalizado
    Dim g As Worksheet
    Dim sRg As Range
    
    'Estou supondo que neste Combo tem o nome da planilha a pesquisar
    Set g = Worksheets(ComboBox1.Value)
        
        s = Combobox2.Value
        
        a = txt_datatrab.Value
        b = txt_unidk.Value
        c = txt_valorpago.Value
        d = txt_valorapurado.Value
        e = txt_dataentr.Value

    On Error Resume Next
    'Pesquisa na Coluna 2 (B)
    sLocalizado = Application.WorksheetFunction.Match(s, g.Range("B:B"), 0)

    If sLocalizado = 0 Then
        MsgBox "Valor não localizado"
    
    Else
    
        Set sRg = Range("B" & sLocalizado)
        
        'Altera os Valores
        With g
            sRg.Value = a
            sRg.Offset(, 1).Value = b
            sRg.Offset(, 2).Value = c
            sRg.Offset(, 3).Value = d
            sRg.Offset(, 4).Value = e
        End With
        
    End If
        
End Sub

Espero que seja isto, se não for forneça mais detalhes.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/05/2014 6:22 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Victor, pelo viso começou com o assunto errado, deveria ter colocado logo no inicio o que colocou neste último post que seria localizar um determinado valor, Alter-lo e os valores nas colunas correspondentes, pelo menos é isto que entendi agora.

Como não deu maiores detalhes, tipo : O que estamos Pesquisando ? Um Código ? Nome ? Em qual Coluna ?

Assim eu vou por suposições:
Supondo que no ComBobox2 está o Nome da Planilha que irá ser pesquisada, e a Coluna a ser pesquisada é a Coluna 2(B), e que deve utilizar um Botão para efetuar a pesquisa, então associe ao Botão ou ajuste a rotina abaixo em seu formulário:

Sub VictorSan()
    Dim sLocalizado
    Dim g As Worksheet
    Dim sRg As Range
    
    'Estou supondo que neste Combo tem o nome da planilha a pesquisar
    Set g = Worksheets(ComboBox1.Value)
        
        s = Combobox2.Value
        
        a = txt_datatrab.Value
        b = txt_unidk.Value
        c = txt_valorpago.Value
        d = txt_valorapurado.Value
        e = txt_dataentr.Value

    On Error Resume Next
    'Pesquisa na Coluna 2 (B)
    sLocalizado = Application.WorksheetFunction.Match(s, g.Range("B:B"), 0)

    If sLocalizado = 0 Then
        MsgBox "Valor não localizado"
    
    Else
    
        Set sRg = Range("B" & sLocalizado)
        
        'Altera os Valores
        With g
            sRg.Value = a
            sRg.Offset(, 1).Value = b
            sRg.Offset(, 2).Value = c
            sRg.Offset(, 3).Value = d
            sRg.Offset(, 4).Value = e
        End With
        
    End If
        
End Sub

Espero que seja isto, se não for forneça mais detalhes.

[]s

aqui vai um exemplo melhor

https://dl.dropboxusercontent.com/u/165 ... estes.xlsm

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 10/05/2014 3:51 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

https://dl.dropboxusercontent.com/u/1656630/VBA%20-%20Outros/r/testes.xlsm

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 10/05/2014 8:14 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

https://dl.dropboxusercontent.com/u/1656630/VBA%20-%20Outros/r/testes.xlsm

Precisando de uma força... eu só preciso um codigo pra que eu possa editar, os valores.

É assim preciso localizar os dados na coluna de semana SEG, TER, QUA... e e alterar os valores.

tentei com esse código mais não ta localizando

Sub VictorSan()
    Dim sLocalizado
    Dim g As Worksheet
    Dim sRg As Range
    
    'Estou supondo que neste Combo tem o nome da planilha a pesquisar
    Set g = Worksheets(ComboBox1.Value)
        
        s = Combobox2.Value
        
        a = txt_datatrab.Value
        b = txt_unidk.Value
        c = txt_valorpago.Value
        d = txt_valorapurado.Value
        e = txt_dataentr.Value

    On Error Resume Next
    'Pesquisa na Coluna 2 (B)
    sLocalizado = Application.WorksheetFunction.Match(s, g.Range("B:B"), 0)

    If sLocalizado = 0 Then
        MsgBox "Valor não localizado"
    
    Else
    
        Set sRg = Range("B" & sLocalizado)
        
        'Altera os Valores
        With g
            sRg.Value = a
            sRg.Offset(, 1).Value = b
            sRg.Offset(, 2).Value = c
            sRg.Offset(, 3).Value = d
            sRg.Offset(, 4).Value = e
        End With
        
    End If
        
End Sub

se eu localizar a coluna B não vai funcionar por que, quando eu selecionar a semana 2 ai não dar certo...

baixem o arquivo acima

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 14/05/2014 8:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

victor, favor continuar no tópico já aberto.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/05/2014 8:41 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

https://dl.dropboxusercontent.com/u/1656630/VBA%20-%20Outros/r/testes.xlsm

Precisando de uma força... eu só preciso um codigo pra que eu possa editar, os valores.

É assim preciso localizar os dados na coluna de semana SEG, TER, QUA... e e alterar os valores.

tentei com esse código mais não ta localizando

Sub VictorSan()
    Dim sLocalizado
    Dim g As Worksheet
    Dim sRg As Range
    
    'Estou supondo que neste Combo tem o nome da planilha a pesquisar
    Set g = Worksheets(ComboBox1.Value)
        
        s = Combobox2.Value
        
        a = txt_datatrab.Value
        b = txt_unidk.Value
        c = txt_valorpago.Value
        d = txt_valorapurado.Value
        e = txt_dataentr.Value

    On Error Resume Next
    'Pesquisa na Coluna 2 (B)
    sLocalizado = Application.WorksheetFunction.Match(s, g.Range("B:B"), 0)

    If sLocalizado = 0 Then
        MsgBox "Valor não localizado"
    
    Else
    
        Set sRg = Range("B" & sLocalizado)
        
        'Altera os Valores
        With g
            sRg.Value = a
            sRg.Offset(, 1).Value = b
            sRg.Offset(, 2).Value = c
            sRg.Offset(, 3).Value = d
            sRg.Offset(, 4).Value = e
        End With
        
    End If
        
End Sub

se eu localizar a coluna B não vai funcionar por que, quando eu selecionar a semana 2 ai não dar certo...

baixem o arquivo acima

POr favor alguem pode resolver o meu problema to pesquisando de todas as formas e naum consegui ainda... preciso urgente

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 15/05/2014 6:15 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Victor, dei uma olhada em seu modelo e gostaria de tirar umas duvidas antes de continuar.

Pelo que entendi, vou tomar por base somente a semana1:
Selecionamos a Planilha mo primeiro Combo, depois a Semana1 no segundo, e apos selecionar este é preenchido o ListBox com o diias da Semana Seg a Sex, em seguida clico duas vezes no dia que pretendo alterar e é preenchido os TextBox, alteramos os valores e lançamos.
Neste ponto você diz que "está usando esse código pra lançar os valores na planilha!", e está funcionando, querendo somente o código para alterar, se for isto, devemos :
Primeiro devemos utilizar o inicio da rotina de lançamento para pesquisar a Planilha e a Semana, isto já temos, então;
Segundo, temos de criar uma rotina para localizar na Coluna 1 o Dia da Semana e ai então alterar os valores.

Mas,minha duvida ficou a seguinte, não sei se isto poderá acontecer, você quem pode dizer isto :
Por base em seu modelo o mesmo já está com a Semana1, SEG preenchida, então, vamos supor que em vez de eu querer lançar a TER eu seleciono a QUA, utilizando sua rotina de lançamento ela não lançará na QUA e sim na primeira linha vazia que encontrar, ou seja na TER, então se isto for possível temos uma falha, concorda ?

Resumindo, a principio o mesmo principio de instrução para pesquisar e lançar será utilizado para alterar, só gostaria de saber se o que eu citei acima é correto quanto a possibilidade de lançar no Dia da Semana errado.

Analise seu modelo quanto a isto e depois continuamos na rotina para alterar.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/05/2014 6:57 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Victor, dei uma olhada em seu modelo e gostaria de tirar umas duvidas antes de continuar.

Pelo que entendi, vou tomar por base somente a semana1:
Selecionamos a Planilha mo primeiro Combo, depois a Semana1 no segundo, e apos selecionar este é preenchido o ListBox com o diias da Semana Seg a Sex, em seguida clico duas vezes no dia que pretendo alterar e é preenchido os TextBox, alteramos os valores e lançamos.
Neste ponto você diz que "está usando esse código pra lançar os valores na planilha!", e está funcionando, querendo somente o código para alterar, se for isto, devemos :
Primeiro devemos utilizar o inicio da rotina de lançamento para pesquisar a Planilha e a Semana, isto já temos, então;
Segundo, temos de criar uma rotina para localizar na Coluna 1 o Dia da Semana e ai então alterar os valores.

Mas,minha duvida ficou a seguinte, não sei se isto poderá acontecer, você quem pode dizer isto :
Por base em seu modelo o mesmo já está com a Semana1, SEG preenchida, então, vamos supor que em vez de eu querer lançar a TER eu seleciono a QUA, utilizando sua rotina de lançamento ela não lançará na QUA e sim na primeira linha vazia que encontrar, ou seja na TER, então se isto for possível temos uma falha, concorda ?

Resumindo, a principio o mesmo principio de instrução para pesquisar e lançar será utilizado para alterar, só gostaria de saber se o que eu citei acima é correto quanto a possibilidade de lançar no Dia da Semana errado.

Analise seu modelo quanto a isto e depois continuamos na rotina para alterar.

[]s

Penso assim, se tivesse como criar uma área na tabela da semana 1 ou semana 2 e dentro dessa área localizar o valor referente a textbox dos dias da semana SEG, TER...
e aplicar a alteração.

eu testei esse código aqui

Dim sLocalizado
    Dim g
    Dim sRg As Range
    

g = Cbb_Meses.Value
s = Cmb_Semana.Value

a = txt_sem.Value

b = txt_datatrab.Value
c = txt_valorpago.Value
d = txt_valorapurado.Value

col = Application.WorksheetFunction.Match(s, Sheets(g).Range("1:1"), 0)'

'aqui falta alguma coisa que ja tentei de tudo mais naum consegui rsrrsr
        
        'Altera os Valores
        With g
           If ActiveCell.Select = a Then        'isso localiza o valor certo?!     
              ActiveCell.Select = a
            ActiveCell.Offset(, 1).Value = b 
            ActiveCell.Offset(, 2).Value = c
            ActiveCell.Offset(, 3).Value = d
          End If
        End With

acho que teria que ser mais ou menos assim. no caso a txt_sem seleciona SEG, TER... e apliaca os valores na frente isso? ver o que dar pra fazer...

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 15/05/2014 7:35 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

O problema é a semana 2... se fosse só a semana 1 seria facil eu acho, eu já vi vários código que poriam alterar facilmente.. na minha plan original tenho semana 1.. até semana 4

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 15/05/2014 7:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Victor, tem de Localizar a Plan referente ao Mes, a Semana e depois a linha a com o dia da semana, até ai eu entendi, o que você não disse é sobre a possibilidade de se lançar o dia da semana errada, que é o que acontece com sua rotina na questão do lançamento, então precisamos resolver esta parte primeiro.

Por outro lado, como disse:
"O problema é a semana 2... se fosse só a semana 1 seria facil eu acho, eu já vi vários código que poriam alterar facilmente.. na minha plan original tenho semana 1.. até semana 4"
Faça o seguinte construa esta que diz ser fácil e que já teria a solução, que a partir deta as outras semanas seriam só questão de adaptação e ajustes, depois poste aqui que auxilio, no momento não tenho como recriar todas as instruções.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/05/2014 8:11 pm
Página 1 / 2