Excel, adicionando mais informações a uma célula de forma estruturada

Excel, adicionando mais informações a uma célula de forma estruturada

Eu tenho uma planilha Excel com um plano para um ano. Usando semanas para colunas e, em seguida, um indicador colorido para semanas onde "coisas" acontecem.

Assim:

insira a descrição da imagem aqui

Minha pergunta é: existe uma maneira (incorporada ou usando complementos) de adicionar informações a esta célula de forma mais estruturada?

Estou pensando em talvez um pouco de forma com

  • Nome
  • Descrição
  • Orçamento
  • Tchau tchau
  • Foo

Dessa forma, eu poderia manter minha visão geral, mas ao mesmo tempo adicionar mais algumas informações a cada célula.

Alguém que conhece uma maneira de conseguir isso?

Responder1

Acabei criando um Formulário de Usuário com algumas caixas de texto e um botão para salvar os valores na mesma coluna/linha em outra planilha chamada "Dados".

Algo assim:

Dim xml As String

xml = xml + "<CellDetails>"
xml = xml + "  <Budget>" + UserForm1.txtBudget.Text + "</Budget>"
xml = xml + "  <Comments>" + UserForm1.txtComments.Text + "</Comments>"
xml = xml + "  <StartDate>" + Format(MonthView1.Value, "yyyy-mm-dd") + "</StartDate>"
xml = xml + "  <EndDate>" + Format(MonthView2.Value, "yyyy-mm-dd") + "</EndDate>"
xml = xml + "</CellDetails>"

ThisWorkbook.Sheets("Data").Range(Selection.Address).Value = xml

Em seguida, aciono isso na planilha usando um ouvinte de eventos no "clique com o botão direito" de uma célula e preencho os controles do formulário com os valores.

Private Sub Workbook_SheetBeforeRightClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Em caso de erro, retomar o próximo

' Somente aciona isso se a tecla Ctrl for pressionada If IsControlKeyDown() = True Then

    If Not ThisWorkbook.Sheets("Data").Range(Selection.Address).Value = "" Then

        Dim XDoc As MSXML2.DOMDocument
        Set XDoc = CreateObject("MSXML2.DOMDocument")
        XDoc.LoadXML (ThisWorkbook.Sheets("Data").Range(Selection.Address).Value)

        ' Setting the form values
        UserForm1.txtBudget.Text = XDoc.SelectSingleNode("//CellDetails/Budget").Text
        UserForm1.txtComments.Text = XDoc.SelectSingleNode("//CellDetails/Comments").Text

        ' Setting the dates
        UserForm1.MonthView1.Value = CDate(XDoc.SelectSingleNode("//CellDetails/StartDate").Text)
        UserForm1.lbStartDate = XDoc.SelectSingleNode("//CellDetails/StartDate").Text
        UserForm1.MonthView2.Value = CDate(XDoc.SelectSingleNode("//CellDetails/EndDate").Text)
        UserForm1.lbEndDate = XDoc.SelectSingleNode("//CellDetails/EndDate").Text
    End If

    UserForm1.Show


    Cancel = True

End If
On Error GoTo 0

Finalizar sub

informação relacionada