Ir ao conteúdo
  • Cadastre-se

Javascript Converter código VBA para JavaScript


Ir à solução Resolvido por Matheus Poletto,

Posts recomendados

Buenas pessoal! Tudo bem?

 

Criei dois formulários em VBA, acontece que os formulários e macros não funcionam no Office online.

Então optamos por utilizar o Google Sheets aqui na empresa. Acontece que eu tinha feito uma fórmula em vba que ela criava um histórico de modificação da célula.

Cada vez que alguém mudava a célula, ele pulava a última linha com valor e colocava a data e para qual status foi modificado. O código era assim.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim COLUNA As Double
Dim linha As Double
Dim ULTIMA As Double
Dim LINHAULTIMA As Double


COLUNA = Target.Column
linha = Target.Row
ULTIMA = Range("XFD" & Target.Row).End(xlToLeft).Column
LINHAULTIMA = Target.End(xlToRight).Row  

    
    If COLUNA = 8 And linha >= 7 Then
                           
        If Range(Target.Address) = "0- Não Iniciado" Then
        
        Cells(LINHAULTIMA, ULTIMA + 2) = "0- Não Iniciado"
        Cells(LINHAULTIMA, ULTIMA + 3) = Date
        Cells(LINHAULTIMA, ULTIMA + 4) = Time
        
        End If
        End If
  
    If COLUNA = 8 And linha >= 7 Then
                           
        If Range(Target.Address) = "1- Solicitado Informação ao Cliente" Then
        
        Cells(LINHAULTIMA, ULTIMA + 2) = "1- Solicitado Informação ao Cliente"
        Cells(LINHAULTIMA, ULTIMA + 3) = Date
        Cells(LINHAULTIMA, ULTIMA + 4) = Time
        
        End If
        End If

End Sub

 

Gostaria de transformar em javascript para colocar no Google Planilhas.. Se puderem ajudar ficarei muito grato! Vai contar bastante pontos pra mim na empresa! hehe To tentando fazer essa conversão mas não to conseguindo, então resolvi vir aqui no fórum ver se consigo ajuda.. Valeu Pessoal!

Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@DiF Beleza?

 

Não sei se é uma mensagem automática tua mas, o que postei não tem nada a ver com escola ou afins.

Postei o código e to tentando converter pra java, já tentei algumas maneiras mas não to conseguindo.

Enquanto isso to procurando vídeos que expliquem como fazer.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

  • Solução

Passando pra dizer que consegui!! 

 

Segue o código pra quem se interessar!

 

Valeuuu

 

function onEdit() {
  
  var sheetsToWatch = ['Base'];
  
  var changelogSheetName = "Changelog";
  
  var timestamp = new Date();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var cell = sheet.getActiveCell();
  var sheetName = sheet.getName();
  
  
  if (sheetName == changelogSheetName) return;
  
  var matchFound = false;
  for (var i = 0; i < sheetsToWatch.length; i++) {
    if (sheetName.match(sheetsToWatch[i])) matchFound = true;
  }
  if (!matchFound) return;
  
  var columnLabel = sheet.getRange(7, cell.getColumn()).getValue();
  var rowLabel = sheet.getRange(cell.getRow(), 3).getValue();
  var rowLabel1 = sheet.getRange(cell.getRow(), 2).getValue();
  var changelogSheet = ss.getSheetByName(changelogSheetName);
  if (!changelogSheet) {
   
    changelogSheet = ss.insertSheet(changelogSheetName, ss.getNumSheets());
   
    changelogSheet.appendRow(["Timestamp", "Cell address", "Column label", "Row label", "Value entered"]);
    changelogSheet.setFrozenRows(1);
  }
  changelogSheet.appendRow([timestamp, rowLabel1, columnLabel, rowLabel, cell.getValue()]);
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...