Pagina 1 di 1

[Risolto] Copiare il contenuto dei commenti

Inviato: venerdì 25 luglio 2025, 17:04
da marioR13
Salve a tutti

avendo tante note commenti in un foglio di calcolo, avevo pensato di raggrupparle tutte in un foglio separato o meglio ancora in un foglio di testo, non tanto come copia/incolla della cella, ma per un lavoro fatto bene avrevo pensato di estrarre proprio il contenuto della nota e incollarlo su writer/blocco note ecc ... il fatto è che essendo tante le note non potrei mai farlo con la procedura "mostra nota, seleziona contenuto della cella, copia/incolla" e così via, per ogni singola nota ...... quindi mi chiedevo se esistesse un modo per poter incollare il contenuto di tutte le note in una sola volta ....
Da una prima ricerca non è venuto fuori nulla, quindi immagino non si possa fare, ma prima di mollare volevo chiedere anche a voi.

Grazie a chi mi aiuterà.

Re: copiare il contenuto di tante note

Inviato: venerdì 25 luglio 2025, 20:18
da cwolan
Ciao,
marioR13 ha scritto: venerdì 25 luglio 2025, 17:04 da una prima ricerca non è venuto fuori nulla, (...)
Si veda, ad esempio, l'argomento Can I export/print a list of the comments in a Calc spreadsheet?.

La macro crea un nuovo documento Calc con un elenco di commenti. Questo elenco può essere esportato, copiato e così via.

Re: Copiare il contenuto dei commenti

Inviato: sabato 26 luglio 2025, 8:56
da charlie
Ciao, ho cambiato il titolo, in Calc si parla di commenti.
La macro segnalata da @cwolan funziona benissimo e vale la pena riportarla qui:

Codice: Seleziona tutto

Sub collectComments
Dim oSheets As Variant, oSheet As Variant, oAnnotations As Variant, oAnnotation As Variant
Dim oParent As Variant, sAuthor As String, sDate As String, sAnnotationText As String
Dim i As Long, j As Long, k As Long, aRes As Variant 
	oSheets = ThisComponent.getSheets()
	aRes = Array(Array("Address","Content","Author","Date","Comment"))
	k = 0
	For i = 0 To oSheets.getCount()-1
		oSheet = oSheets.getByIndex(i)
		oAnnotations = oSheet.getAnnotations()
		For j = 0 To oAnnotations.getCount()-1
			oAnnotation = oAnnotations.getByIndex(j)
			oParent = oAnnotation.getParent()
			sAuthor = oAnnotation.getAuthor()
			sDate = oAnnotation.getDate()
			sAnnotationText = oAnnotation.getString()
			k = k + 1
			ReDim Preserve aRes(0 To k)
			aRes(k) = Array(oParent.AbsoluteName, oParent.getString(), sAuthor, sDate, sAnnotationText)
		Next j
	Next i
	If UBound(aRes) > LBound(aRes) Then 
		GlobalScope.BasicLibraries.LoadLibrary("Tools")	
		CreateNewDocument("scalc").getSheets().getByIndex(0).getCellRangeByPosition(0, 0, UBound(aRes(0)), UBound(aRes)).setDataArray(aRes)
	EndIf 
End Sub
Grazie a @cwolan :D

Re: copiare il contenuto di tante note

Inviato: sabato 26 luglio 2025, 10:26
da marioR13
cwolan ha scritto: venerdì 25 luglio 2025, 20:18 Ciao,
marioR13 ha scritto: venerdì 25 luglio 2025, 17:04 da una prima ricerca non è venuto fuori nulla, (...)
Si veda, ad esempio, l'argomento Can I export/print a list of the comments in a Calc spreadsheet?.

La macro crea un nuovo documento Calc con un elenco di commenti. Questo elenco può essere esportato, copiato e così via.
bèh che dire, grazie infinite ! mi hai risparmiato ore e ore e giorni di copia e incolla, e soprattutto ha salvato la mia salute mentale :D