Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Rabatini
#65325
Pessoal Boa noite.

Tenho uma planilha, que escrevi um código que ele funciona 90% do jeito que eu quero.
O único problema é que ele procura a ultima célula vazia por exemplo.

INFORMAÇÃO EXISTENTE
EM BRANCO ---> TINHA QUE INSERIR AQUI
INFORMAÇÃO EXISTENTE
EM BRANCO
INFORMAÇÃO EXISTENTE
EM BRANCO ---> AQUI QUE ELE VAI INSERIR
EM BRANCO
FIM
Código: Selecionar todos
Private Sub exportar_Click()
Dim sLinha As Long
Dim iPlanilha As Integer

If TextBox1 = "" Then
MsgBox "Selecione uma composição para exportação!"
TextBox1.Text = ""

Else
 
ORÇAMENTO.Select

ORÇAMENTO.Range("a8").Select

Do

If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select

End If

Loop Until IsEmpty(ActiveCell) = True

ActiveCell.Offset(-1, 0).Select
ActiveCell.Select

With ORÇAMENTO

sLinha = MatrizResultadosLinha(ListView1.SelectedItem)
iPlanilha = MatrizResultadosPlanilha(ListView1.SelectedItem)
sLinha = ORÇAMENTO.Range("b65536").End(xlUp).Offset(1, 0).Row

End With

Call ProcuraPersonalizada(sCriterioDaBusca, ComboBox1.Text)
Call moeda
Call ajustar
End If

End Sub
Obrigado pela atenção.
Por osvaldomp
#65329
Rabatini escreveu: 23 Jun 2021 às 01:19 O único problema é que ele procura a ultima célula vazia por exemplo.
De início o seu código localiza a primeira célula vazia a partir de A8 (Do ... Loop), que depois não é utilizada, em seguida busca a primeira célula vazia abaixo dos dados e não a última. No entanto esta também não é utilizada. :?:


Se você quer localizar a primeira célula vazia a partir de A8:

substitua as linhas abaixo
ActiveCell.Offset(-1, 0).Select
ActiveCell.Select
With ORÇAMENTO
sLinha = MatrizResultadosLinha(ListView1.SelectedItem)
iPlanilha = MatrizResultadosPlanilha(ListView1.SelectedItem)
sLinha = ORÇAMENTO.Range("b65536").End(xlUp).Offset(1, 0).Row
End With


por estas
iPlanilha = MatrizResultadosPlanilha(ListView1.SelectedItem)
sLinha = ActiveCell.Row
'sLinha receberá o número da linha da primeira célula vazia abaixo de A8
Rabatini agradeceu por isso
Por osvaldomp
#65342
[quote=Rabatini post_id=65339 time=1624508158 user_id=18176
só bastou eu substituir esse
sLinha = .Range("b7").SpecialCells(xlLastCell).Row + 1 ~~~> essa linha não existe no código que você postou :roll: :?:
[/quote]

As demais linhas que citei para serem substituídas são inúteis no seu código, portanto sem sentido a permanência delas.
Rabatini agradeceu por isso
Por Rabatini
#65353
@osvaldomp
Avancei bastante na minha programação aqui, porém precisava fazer um negocio e não estou conseguindo.
Código: Selecionar todos
Private Sub exportar_Click()
Dim sLinha As Long
Dim iPlanilha As Integer

If TextBox1 = "" Then
MsgBox "Selecione uma composição para exportação!"
TextBox1.Text = ""

Else
 
ORÇAMENTO.Select

ORÇAMENTO.Range("d8").Select

Do

If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select

End If

Loop Until IsEmpty(ActiveCell) = True
iPlanilha = MatrizResultadosPlanilha(ListView1.SelectedItem)
sLinha = ActiveCell.Row + 1

                'Grava os novos valores informados no formulário para a planilha base de dados
                .Cells(sLinha, 2).Value = TextBox1.Text
                .Cells(sLinha, 4).Value = TextBox2.Text
                .Cells(sLinha, 6).Value = TextBox3.Text
                .Cells(sLinha, 7).Value = TextBox4.Text
                .Cells(sLinha, 1).Value = TextBox5.Text
                .Cells(sLinha, 3).Value = Label_PlanBase
Aqui ele está selecionando a aba orçamento para fazer a extração, mas eu gostaria que ele fizesse a extração para o que está na minha combobox2.

Exemplo.
Está assim no momento:
Minha combobox2 = "MÃO DE OBRA" , automaticamente meu textbox7 (ele tá hidden pro usuario) fica como 01 que é o nome da aba "01"
Ai queria exportar o que está nos outros textbox na aba 01, que é lida pelo meu textbox7.
Assim se ele escolhe "material", automaticamente meu textbox7 fica como 02
Ai exporta os outros textbox para a aba 02. assim consecutivamente.

Não sei se deu pra captar.

Agradeço a ajuda até o momento, graça a você fiz um avanço significativo aqui.
Por osvaldomp
#65365
Sugestão: disponibilize diretamente aqui no fórum uma amostra do seu arquivo Excel com alguns dados (no máximo com 10 linhas), com células vazias no meio dos dados conforme o seu primeiro post e informe na própria planilha qual é o resultado desejado.

Boa noite, pessoal, alguém consegue me ajud[…]

Contar dias através da data

Boa tarde Segue uma opção Até[…]

Boa tarde!! Eu copiei o mesmo código e os […]

prezados, bom dia eu tenho duas pastas de trabal[…]

bom dia ok, eu vou fazer isso

Oii, boa tarde! Tenho uma planilha com 50 colunas […]

Como limpar o meu código

Nesses casos utilize o formato abaixo. Sub Replac[…]

Boa tarde Veja se como foi feito é o que vc[…]