VBA – Criando uma cópia somente dados de uma planilha no Excel para uma Nova Pasta

Mais uma solicitação do nosso fórum.

Solicitaram uma nova macro, para criar uma cópia dos dados da planilha (Worksheet) em uma nova, só que para uma nova PASTA, somente os dados, sem fórmulas, mantendo a formatação e que a nova PASTA fosse Salva com um Nome que está em uma CELULA da Planilha a ser copiada. Então, com algumas modificações na rotina postada anteriormente obtivemos a rotina a seguir:

“É nesse caso que as macros ajudam.”

Sub NovaPastaSemFormulas()
Dim CurrentSheet As Worksheet

Application.ScreenUpdating = False

        'Nome na Planilha Ativa em B2
        nomeB2 = CStr(ActiveSheet.Range("B2").Value)

        Set CurrentSheet = ActiveSheet

        On Error Resume Next

        'copia todas as células da planilha ativa
        CurrentSheet.Cells.Copy

        'Cria a Nova PASTA (ARQUIVO)
        Set Wkb = Workbooks.Add

        'cola somente os valores na planilha Ativa da nova Pasta,
        'sem formulas e mantenndo a formatação
        With ActiveSheet.Range("A1")
          .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
          .PasteSpecial Paste:=xlFormats
        End With        

        Application.CutCopyMode = False

        'Define os Novos Nomes - Planilha(ABA) e Pasta(Arquivo)
        novoNome = nomeB2

        'Renomeia a planilha nova com
        'o Nome que estava em B2
        With ActiveSheet
            .Name = novoNome
            .Range("A1").Select
        End With

        Range("A1").Select

        'Enibe a mensagem se a pasta já existir
        'Com essa instrução a Pasta será substiutida sem questionamento
        Application.DisplayAlerts = False

        'Salva a Nova Pasta no Diretorio abaixo com o mesmo Nome
        'Alterem o mesmo conforme o endereço que querem
        Wkb.SaveAs Filename:="E:\FORUN\TOMAZ\" & novoNome & ".xls"
End Sub

Isso é Excel + VBA.
Simples, rápido, eficaz.
Bom proveito!

Até onde ir com o Microsoft Office 2

Tomas, muito pertinente suas matérias em relação ao “Porque sentiremos falta do VBA….” e “Até onde ir com o Microsoft Office”.

Publicadas em 2008 –
Até onde ir com o Microsoft Office e
Porque sentiremos falta do VBA….

Estou ensaiando para escrever e hoje tirei esse tempo para dar minha opinião, e pelo que estou passando que tem me deixado um pouco preocupado, é o fato de muitas empresas estarem trocando os pacotes Office por distribuições gratuitas, a Microsoft sentiu isso quando o Linux começou a dominar os PCs, forçando a mesma a criar Versões Starter Edition dos SO, e como a visão do Tio Bill nunca foi ceder nada gratuitamente, lógicamente com essa versão mais ligth fez um preço mais em conta, mas em contra partida não tem agradado muito, lógico que imagino que ainda não chegou a hora que a MS perderá seu reinado.

Mas voltando ao Office, como tem acontecido em vários setores, onde eu trabalho não está sendo diferente, a Prefeitura aqui, já começou a trocar, os PCs novos já veem com o BrOffice, e se por ventura sua máquina tiver que ir para a manutenção, e  se a mesma tinha o Office instalado, volta sem o mesmo, e é uma burocracia e quase impossível se conseguir que reinstalem o Office.

Outro fator que tenho visto e tem aumentado consideravel, é que em boa parte dos concursos publicos, já estão trocando questões sobre Word, Excel que são os aplicativos básicos em qualquer escritório, por questões sobre o BrOffice, se tornando uma realidade cada vez mais crescente.

Por essa razão, fico preocupado, sabemos como você mesmo citou de Empresas de Sucesso que utilizam o Office, e do poder do VBA e do pacote Office, então a questão não seria até onde ir com o MS Office ou a extinsão do VBA, mas sim até quando a Microsoft irá resistir a questão  de Softwares livres e começar a pensar em tambem lançar algo nesse sentido para que as empresas não optem em mudar de aplicativos.

Para finalizar, fico imaginando de ter de migrar para o BrOffice, fico torcendo para o meu PC não dar problema, não pelo fato de não ter conhecimento profundo do mesmo, que se acontecer, temos de aprender a usa-lo, mas sim em deixar para traz todo um aprendizado, ter de refazer vários trabalhos, lógicamente que o conhecimento adquirido será de grande valia e ajuda em qualquer outro aplicativo, é uma basee que não esquecemos, mas realmente é preocupante.

Quanto a essa questão :
Mas a pergunta que não quer calar a partir do momento em que começamos a aprimorar os conhecimentos  na ferramenta é até onde vale a pena continuar usando o Office, já que existem tantas outras ferramentas para os propósitos que queremos alcançar.

Eu diria, que no mundo Capitalista em que vivemos, com uma visão Comercial, acredito que só as empresas que se dispuserem a continuar pagando pelos carissimos aplicativos da MS. Aqui ainda não divulgaram, mas assim que informarem, posterei aqui o quanto a Prefeitura do meu Municipio estará economizando com a troca dos mesmos.

Ou seja estão deixando de lado o fator “profissionalismo” e trocando pelo fator aonde podem cortar despesas.

Como eu disse no inicio sobre o reinado da MS acredito que ainda irá  longe, levando-se em conta que não tinha reparado antes  que você chegou a escrever essas matérias em 2008.

Mas a pergunta acima ainda permanecerá no ar por um bom tempo.

abraços

JavaScript – Desativando o menu de contexto (botão direito) do navegador

Se tem uma coisa que esse mundo da tecnologia tem de sobra são surpresas. Nunca sabemos quando precisaremos de um determinado recurso.

Em uma necessidade atual, uma das páginas de um website precisava impedir que os usuários acionassem o botão direito no mouse, aquele que ativa um menu com várias opções no navegador. Pois bem, na busca de algumas soluções na Web, a que encontrei e funcionou melhor foi o JavaScript abaixo, que deve ser colocado em algum lugar da página (preferencialmente, mas não obrigatoriamente, no cabeçalho desta):

<script type="text/javascript"><!--
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if 
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers) 
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
//--></script>

O código funcionou bem na maioria dos navegadores, já que no código várias considerações sobre estes são feitas. É bom lembrar que este tipo de artimanha funciona bem com usuários básicos. Usuários avançados sabem driblar esse tipo de proteção com algumas ferramentas, plugins, etc.

De qualquer forma, é um “ás na manga” em momentos de aperto.

Bom proveito!

Referências

http://www.htmlhelpcentral.com/messageboard/showthread.php?t=12261

VBA – Criando uma cópia somente dados de uma planilha no Excel

Mais uma que saiu do nosso fórum.

O pessoal precisou de uma macro no VBA para criar uma cópia dos dados da planilha (Worksheet) em uma nova, mas somente os dados, sem fórmulas. Como alguns devem saber, isso é simples usando o recurso Colar Especial->Valores. Mas como o mundo é exigente, precisamos fazer isso a “rodo”, e é nesse caso que as macros ajudam.

A macro abaixo faz uma cópia da planilha atual, copiando somente seus dados:

Sub CopiaSomenteConteudo()
    Dim NewSheet As Worksheet, CurrentSheet As Worksheet
    'pega a planilha atual
    Set CurrentSheet = ActiveSheet
    'cria uma nova planilha
    Set NewSheet = ThisWorkbook.Worksheets.Add
    NewSheet.Name = CurrentSheet.Name & "2"
    'copia todas as células da planilha ativa
    CurrentSheet.Cells.Copy
    'cola só os valores na nova planilha
    NewSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    'zera os objetos
    Set NewSheet = Nothing
    Set CurrenSheet = Nothing
End Sub

Simples, rápido, eficaz. Isso é Excel + VBA.

Bom proveito!