Excel: Strukturiertes Hinzufügen weiterer Informationen zu einer Zelle

Excel: Strukturiertes Hinzufügen weiterer Informationen zu einer Zelle

Ich habe eine Excel-Tabelle mit einem Plan für ein Jahr. Ich verwende Wochen als Spalten und einen Farbindikator für die Wochen, in denen „Sachen“ passieren.

So was:

Bildbeschreibung hier eingeben

Meine Frage lautet: Gibt es eine Möglichkeit (integriert oder mithilfe von Add-Ons), dieser Zelle strukturierter Informationen hinzuzufügen?

Ich denke vielleicht an ein kleines Formular mit

  • Name
  • Beschreibung
  • Budget
  • Blabla
  • Foo

Auf diese Weise könnte ich den Überblick behalten und gleichzeitig jeder Zelle weitere Informationen hinzufügen.

Kennt jemand einen Weg, dies zu erreichen?

Antwort1

Schließlich habe ich ein Benutzerformular mit einigen Textfeldern und einer Schaltfläche zum Speichern der Werte in derselben Spalte/Zeile in einem anderen Blatt namens „Daten“ erstellt.

Etwas wie das:

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

Dann löse ich dies vom Blatt aus mithilfe eines Ereignis-Listeners beim „Rechtsklick“ auf eine Zelle aus und fülle die Formularsteuerelemente mit den Werten.

Private Sub Workbook_SheetBeforeRightClick (ByVal Sh als Objekt, ByVal Ziel als Bereich, Abbrechen als Boolescher Wert)

Bei Fehler Fortsetzen Weiter

' Dies wird nur ausgelöst, wenn die Strg-Taste gedrückt ist. Wenn IsControlKeyDown() = True, dann

    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

End Sub

verwandte Informationen