Bom Dia Senhores!
Mais uma vez recorro ao Prezados para mais uma ajuda!
Vamos Lá!
Seguinte:
Montei uma planiha para análise de reposição de estoque (MRP SAP/MMI). No software em questão é possível montar um layout para exportação do arquivo (.xls).
Criei então o Layout e a plainlha para receber a importação deste arquivo, e realizar a análise das necessidades de forma mais rápida e segura, pois através de análise condicional é possível separar mais rapidamenente o que vai e o que não vai ser comprado!
até aqui tudo perfeito pois eu mesmo sou o operador da planilha e sei os Layout que tenho que selecionar no SAP e como proceder se algo dar errado!(eu mesmo já baixeio o Layout errado e importei na planilha... Acontece!!! rssss..)
Porém agora, será distribuída esta tarefa para alguns setores e quero que eles sigam exatamente da forma que faço. para isso preciso proteger a planilha para que ela só importe o arquivo se estiver no mesmo layout que desenvovi para tal função.
Tentei xml, mas sem sucesso, não tenho tanta experiência assim com o XML.(mas vou começar a estudar pois vejo utilidades no futuro)
Pensei então em verificar o nome da coluna que é sempre o mesmo e sempre vem na linha a partir da coluna B na linha 9 e assim sucessivamente..... mas o grande detalhe... como fazer antes da importação? verificar o nome das dez colunas para ter certeza que
ninguém vai deixar a planilha sem funcionalidade!
Segue abaixo o Código que utilizo na importação dos arquivos...
Sub Update_MRP()
Dim strPath As String
Dim Filtro As String
Dim Titulo As String
Dim Arquivo
Dim Agora
'Desprotejer Planilha
DesBlock
'Apagar atualização anterior
Sheets("MRP").Range("$A$10:$B$509,$D$10:$L$509 ").Select
Selection.ClearContents
Range("A10").Select
'Apagar gerenciamento de nomes (evitar poluição no gerenciamento)
For Each qTable In Sheets("MRP").QueryTables
qTable.Delete
Next qTable
Arquivo = Application.GetOpenFilename(FileFilter:=Filtro, _
Title:=Titulo, MultiSelect:=True)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Join(Arquivo) _
, Destination:=Sheets("MRP").Range("$D$10"))
.Name = "MRP"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 11
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("MRP").Range("$D$5") = Join(Arquivo)
Sheets("MRP").Range("$C$6").Value = Now
Range("A$10").Select
Block
End Sub