Utilizzare una Tabella Filtrata di Excel per Compilare un file di Word e inviarlo per E-mail

Anonimo
2023-02-04T12:20:16+00:00

Buongiorno a tutti,

sto lavorando su Excel ad un metodo per calcolare la compatibilità tra le persone che rispondono ad un quiz a risposta multipla che ho creato.

Nella cartella di lavoro, ho importato con una query i dati nel foglio "Risposte", e poi nel foglio "Analisi" ho calcolato la compatibilità tra le persone in una colonna calcolata. Allego uno screen del foglio Analisi:

La riga in Rosa è quella della persona rispetto alla quale sto calcolando la compatibilità degli altri. Dopo aver creato questa tabella, ho creato una macro che mi permette di filtrare questi dati con un filtro avanzato, i cui criteri sono nel foglio Dati e che in questo caso sono "Compatibilità > 25%", e di ordinarli per compatibilità dal più grande al più piccolo:

Adesso quello che vorrei è importare questi dati in Word e usarli per scrivere un resoconto dei risultati ottenuti. I dati del rigo Rosa devono essere inseriti nel titolo del file, e tutti gli altri dati devono andare a creare una lista dentro word. Word deve creare tante voci in questa lista quante sono le righe della tabella Excel (meno quella rosa) e inserire i dati corrispondenti al posto giusto; tutto questo in un modello di testo preconfezionato (come quelli che si possono salvare in Parti Rapide).

Con i dati descritti nelle immagini il file Word dovrebbe essere così:

Ogni volta che cambio la persona rispetto alla quale calcolare la compatibilità, il numero di righe nella tabella filtrata cambia, e cambiano anche i dati. Vorrei creare un sistema che automaticamente genera un file word simile a questo (o aggiorna quello già esistente) senza dover andare io a caricare manualmente i dati (anche perché alla fine le persone saranno circa 2000).

Vorrei che il modello

[Nome Cognome] - [Classe]

Compatibilità: [Compatibilità]

si ripetesse tante volte quante sono le righe della tabella, senza che io debba andare a scrivere manualmente il tutto.

Alla fine il file word o il file di testo che verrà generato dovrà essere inviato per e-mail.

Non è necessario che sia tutto esattamente in questo modo, mi interessa un sistema che riporti i dati della tabella excel in una lista auto-compilata e che poi mandi questa lista per e-mail. La Stampa Unione non fa al caso mio perché, almeno per quel che ho capito, essa inserisce i dati della tabella al posto giusto, ma li cambia per ogni voce della tabella; invece io voglio che tutte le voci della tabella siano presenti contemporaneamente nel documento e che siano inserite dentro un modello di testo tipo quelli salvati in Parti Rapide. Spero possiate aiutarmi, grazie mille per il vostro tempo.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2023-02-05T13:17:09+00:00

Non sono proprio sicuro di come dovrebbe essere fatto perché non ho la tabella esatta con cui lavorare e dalle immagini sembra un esercizio di ingegneria

Ecco uno schema dei passaggi

Sub ImportDataFromExcel() 

Dim xlApp As Object 

Dim xlWorkbook As Object 

Dim xlWorksheet As Object 

Set xlApp = CreateObject("Excel.Application") 

Set xlWorkbook = xlApp.Workbooks.Open("C:\path\to\your\workbook.xlsx") 

Set xlWorksheet = xlWorkbook.Sheets("Analysis") 

' Get data from Excel sheet 

Dim firstName As String 

firstName = xlWorksheet.Cells(2, 1).Value 

Dim surname As String 

surname = xlWorksheet.Cells(2, 2).Value 

Dim class As String 

class = xlWorksheet.Cells(2, 3).Value 

Dim compatibility As String 

compatibility = xlWorksheet.Cells(2, 4).Value 

' Format data according to template 

Dim formattedData As String 

formattedData = firstName & " " & surname & " - " & class & vbNewLine & "Compatibility: " & compatibility 

' Insert formatted data into Word document 

ActiveDocument.Range.InsertAfter formattedData 

xlWorkbook.Close 

xlApp.Quit 

End Sub

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-02-08T00:05:35+00:00

    Grazie mille per la tua Risposta. Ho usato il tuo codice come base e l'ho sviluppato ulteriormente fino a raggiungere il mio obiettivo. Ti ringrazio per il tempo che mi hai donato, il tuo aiuto è stato prezioso.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-02-06T09:46:03+00:00

    Ciao, grazie mille per il tuo aiuto. Ti invio qui tutti i file, sia la cartella di lavoro in cui elaboro le informazioni e di cui ho inviato le immagini prima, sia quella in cui sono contenuti tutti i dati, che il file Word di esempio. https://1drv.ms/u/s!Aq6aFYEnzvZfhetSCIm4MB8BgGkkTg?e=FYVdHL

    Il codice che mi hai scritto dovrei inserirlo con VBA in una Macro dentro Word, giusto?

    La risposta è stata utile?

    0 commenti Nessun commento