Contenuto LISTBOX in Excel

Non essendoci soluzione GRATUITA da MAC OS per trasferire i dati in una tabella EXCEL
Ho pensato di sfruttare la possibilit stessa di EXCEL di incollare direttamente una tabella html

Public Sub Doexcel()
  // copia tutti i dati della tabella negli appunti in formato HTML 
  dim clipdata as String
  dim righe as integer
  dim cursoreriga as integer
  dim colonne as integer
  dim cursorecolonna as integer
  dim allineamento as string = "left"
  
  righe = Listbox1.ListCount - 1
  colonne = Listbox1.ColumnCount -1
  
  clipdata = clipdata + "<table>" + EndOfLine
  clipdata = clipdata + "<tr>" + EndOfLine
  for cursorecolonna = 0 to colonne
    select case listbox1.ColumnAlignment(cursorecolonna)
    case 0
      allineamento = "left"
    case 1
      allineamento = "left"
    case 2
      allineamento = "center"
    case 3
      allineamento = "right"
    end select
    clipdata = clipdata + "<td align=" + chr(34) + allineamento + chr(34) + "><b>"
    clipdata = clipdata + Listbox1.Heading(cursorecolonna)
    clipdata = clipdata + "</b></td>"
  next cursorecolonna
  clipdata = clipdata + "</tr>" + EndOfLine
  
  // righe 
  for cursoreriga = 0 to righe
    clipdata = clipdata + "<tr>" + EndOfLine
    for cursorecolonna = 0 to colonne
      select case listbox1.ColumnAlignment(cursorecolonna)
      case 0
        allineamento = "left"
      case 1
        allineamento = "left"
      case 2
        allineamento = "center"
      case 3
        allineamento = "right"
      end select
      clipdata = clipdata + "<td align=" + chr(34) + allineamento + chr(34) + ">"
      clipdata = clipdata + Listbox1.Cell(cursoreriga,cursorecolonna).tagnbsp
      clipdata = clipdata + "</td>"
    next cursorecolonna
    clipdata = clipdata + "</tr>" + EndOfLine
  next cursoreriga
  
  clipdata = clipdata + "</table>" + EndOfLine
  
  // copia i dati nella clipboard
  Dim c As New Clipboard
  c.Text = clipdata
  c.Close
  
  boxalert.messaggio("I dati sono trasferiti negli appunti, ora  possibile incollarli in Excel")
End Sub

L’idea buona, ma dovresti ottimizzarla.
Prima di tutto utilizza un array clipdata() as string, a cui appenderai i valori e alla fine c.text=join(clipdata, “”), visto che non necessario andare a capo

Nel tuo ciclo poi puoi verificare anche per altre features e utilizzare lo stile: for cursoreriga = 0 to righe clipdata.Append "<tr>" for cursorecolonna = 0 to colonne clipdata.Append "<td style='"> if Listbox1.CellBold(cursoreriga, cursorecolonna) then clidpdata.Append "font-weight:bold;" if Listbox1.CellBold(cursoreriga, cursorecolonna) then clipdata.Append "font-weight:Bold;" if Listbox1.CellItalic(cursoreriga, cursorecolonna) then clipdata.Append "font-style:Italic;" select case Listbox1.CellAlignment(cursoreriga, cursorecolonna) case Listbox.AlignLeft clipdata.Append "text-align:left;" case Listbox.AlignCenter clipdata.Append "text-align:center;" case Listbox.AlignRight clipdata.Append "text-align:right;" case Listbox.AlignDefault select case Listbox1.ColumnAlignment(cursorecolonna) case Listbox.AlignLeft clipdata.Append "text-align:left;" case Listbox.AlignCenter clipdata.Append "text-align:center;" case Listbox.AlignRight clipdata.Append "text-align:right;" end select end select clipdata.Append "'>" clipdata.Append Listbox1.cell(cursoreriga, cursorecolonna) clipdata.Append "</td>" next clipdata.Append "</tr>" next
Nello style puoi utilizzare tranquillamente l’apice singolo visto che i valori non hanno apici possibili
Inoltre consigliabile trasformare almeno i caratteri < e > nelle rispettive entit html

In realtà c’è, l’ha postata un utente qui sul forum, la puoi scaricare qui

Scusate… qualcuno ha il plugin di cui parlava Matteo Lovatti? su DropBox non c’e’ piu’… grazie

Eccolo!

Grazie! Molto Gentile Matteo!

Plugin veramente bello e utile. L’unico problema con i nuovi excel e’ sul formato XML che genera una notifica di compatibilita’. Non so se qualcuno di voi ha trovato una soluzione migliore… io attualmente per windows(con excel installato) ho predisposto un salvataggio con il formato ‘.xml’ una rilettura con ExcelApplication e la conversione nel formato 51 ed il file che viene fuori automaticamente e’ perfetto per essere inviato per posta a qualsiasi utente…