![Excel, adicionando mais informações a uma célula de forma estruturada](https://rvso.com/image/1543366/Excel%2C%20adicionando%20mais%20informa%C3%A7%C3%B5es%20a%20uma%20c%C3%A9lula%20de%20forma%20estruturada.png)
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:
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