Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por DiegoMatos
Posts
#25544
Mestres,

Preciso de um código que faça a seguinte sequencia na planilha anexa:

* Preencher com o código SAP e Descrição Breve as células em branco até o próximo código SAP diferente
*Excluir as linhas a partir de FABRICANTE (MANUFACTURER): para cima, conforme exemplo na coluna D, porém de todos os códigos SAP.

Certo da colaboração, desde já agradeço.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#25549
Você marcou que deseja excluir a linha 2. É para excluir também as linhas 16, 30, ... ?

sugestão - disponibilize outra planilha e coloque também o resultado desejado ao lado de ao menos 3 grupos de dados (códigos 31607, 33668 e 33698)
Por DiegoMatos
Posts
#25551
Osvaldo, obrigado pela mensagem.

Sim, estou mandando a planilha de com o resultado desejado.

Att,

Diego Matos
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#25561
Diego, faça os testes com o código abaixo.
Aqui o código processou as 145 mil linhas em aprox 2 min.
Na sua tabela há mais de 1.200 blocos sem o termo "FABRICANTE" e estes blocos não serão processados pelo código.
Código: Selecionar todos
Sub OrganizaDados()
 Dim LR As Long, k As Long, m As Long, v As Long, f As Range
 Application.Calculation = xlCalculationManual
 Application.ScreenUpdating = False
  LR = Cells(Rows.Count, 3).End(3).Row
   For k = LR To 2 Step -1
     m = Cells(k, 1).End(3).Row
     Set f = Range(Cells(m + 1, 3), Cells(k, 3)).Find("FABRICANTE", lookat:=xlPart)
      If f Is Nothing Then
       v = v + 1: GoTo nof
      End If
     Range(Cells(m + 1, 1), Cells(k, 2)).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
     Range(Cells(m + 1, 1), Cells(k, 2)).Value = Range(Cells(m + 1, 1), Cells(k, 2)).Value
     Rows(m & ":" & f.Row).Delete
nof:
     k = m + 1
     If m = 2 Then Exit For
   Next k
 Application.ScreenUpdating = True
 Application.Calculation = xlCalculationAutomatic
 If v > 0 Then MsgBox "encontrados " & v & " blocos sem FABRICANTE"
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord