Risolto Copiare dati da Excel a PowerPoint

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016

Buongiorno a tutti
Il link qui sopra spiega come creare VisualBasic all'interno di PowerPoint che si occupa di come copiare i dati da Excel a Powerpoint.
Stavo copiando la macro dal link e incollando nella macro di Powerpoint e alla complilazione solo una riga dà errore:

Set newSlide = myPres.Slides.Add(Index:=myPres.Slides.Count+1, Layout:=ppLayoutText)5
Mi sembra che l'errore sta alla finare cioè il numero 5 in una posizione sbagliata ma non so come va scritto.
Qualcuno mi può aiutare?
 

Sgrubak

Excel/VBA Expert
Expert
10 Marzo 2022
5.433
2.011
245
365 Beta x32
Senza i files è difficile dirlo. Direi di provare a toglierlo direttamente e controllare bene il risultato.

Per amor di precisione:
1) non crei Visual Basic. Quello esiste già... Tu crei una Macro scritta in VB (più precisamente VBA che è una sua versione "speciale").
2) quando pubblichi codice, usa l'apposito TAG.
 

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Per VisualBasic intendi il suo programma a sè staccato da Excel, Powerpoint ecc.?
In tal caso, uso VBA, già dentro PowerPoint.

Cos'è TAG?
 

Powerwin

VBA Expert
Supermoderatore
17 Marzo 2016
23.348
4.228
1.845
vicino a Milano
Office 365
E' una cosa spiegata in una sezione del forum che ti è stata consigliata quando ti sei iscritto
 
  • Like
Reactions: Sgrubak

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Visual Basic:
Spero di aver messo il TAG
Ho tolto il 5 e ora non dà errore
Provo ad avviare e mi dà questo errore visibile nel PDF in allegato
 

Allegati

  • Temp.pdf
    75,9 KB · Visite: 6

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.028
8.511
2.445
72
Napoli
Office 365
Allega il file c on il codice inserito che dà errore unitamente al file di Excel da cui vanno copiati i dati
 

Powerwin

VBA Expert
Supermoderatore
17 Marzo 2016
23.348
4.228
1.845
vicino a Milano
Office 365
il TAG va messo per i codici macro non per i testi dei post TestateSulMuro inoltre le immagini vanno postate non dentro file pdf (che sono tra le altre cose pericolosi) ma inviandole tramite link da hosting esterno

p.s. sei iscritto dal 2020 almeno una volta leggi gli Avvisi dello Staff
 

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Intendi questo:
Set sourceBook = sourceXL.Workbooks.Open("C:\Users\a38712n\Desktop\ExcelFile.xlsx")
?
Sul SET e sul DIM non sono pratico
 

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Sul primo post ho messo il link cui si vede tutto il programma di visualbasic.
Ho fatto copia e incolla in Powerpoint come da istruzioni ma non funziona.
 

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.028
8.511
2.445
72
Napoli
Office 365
Il messaggio di errore non ha nulla a che vedere con quanto hai detto al post 9.

Al post 7 ho chiesto di allegare il file con la macro inserita unitamente al file di Excel da cui si devono copiare i dati.
 

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.028
8.511
2.445
72
Napoli
Office 365
No i file di Powerpoint (pptx) come puoi vedere dalla sottostante discussione è possibile (sempre che siano inferiori a 200 kb) allegarli.


Se sono superiori a 200 kbite devi usare un sito di file hosting
 

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Il file excel occupa 8KB e il file PP occupa 35KB ! Strano
Ok, lo zippo e provo ad allegare
 

Allegati

  • ExcelPP.zip
    31,5 KB · Visite: 2

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.028
8.511
2.445
72
Napoli
Office 365
Perchè nella macro ci sono due istruzioni così?

Visual Basic:
Dim sourceXL As Excel.Application
Dim sourceXL As Excel.Application

Non ne basta una?

In questa Istruzione cosa è Slide4?

Visual Basic:
Dim newSlide As Slide4

Slide4 come tipo di variabile non esiste; esiste solo Slide.

Aggiungo che io di VBA di Powerpoint non so nulla.

La macro in Powerpoint va corretta così

Visual Basic:
Sub CopyFromExcel()


Dim sourceXL As Excel.Application
Dim sourceBook As Excel.Workbook
Dim sourceSheet As Excel.Worksheet
Dim dataReadArray(10) As String
Dim myPress As Presentation
Dim newSlide As Slide

' Impostare i valori per le variabili di oggetto:
Set sourceXL = Excel.Application
Set sourceBook = sourceXL.Workbooks.Open("D:\Excel\piotta.xlsx") '<==== Da modificare con il tuo percorso e nome file
Set sourceSheet = sourceBook.Sheets(1)
Set myPres = ActivePresentation
Set newSlide = myPres.Slides.Add(Index:=myPres.Slides.Count + 1, Layout:=ppLayoutText)

' Leggere i dati in Excel il file e memorizzarlo in una matrice di stringhe:
sourceSheet.Range("A1").Select
dataReadArray(0) = sourceSheet.Range("A1").Value
sourceSheet.Range("A2").Select
dataReadArray(1) = sourceSheet.Range("A2").Value
sourceSheet.Range("A3").Select
dataReadArray(2) = sourceSheet.Range("A3").Value
sourceSheet.Range("A4").Select
dataReadArray(3) = sourceSheet.Range("A4").Value
sourceSheet.Range("A5").Select
dataReadArray(4) = sourceSheet.Range("A5").Value

' Consente di aggiungere una nuova diapositiva nella presentazione corrente i dati dalla matrice di stringhe:
newSlide.Shapes(1).TextFrame.TextRange = "Data copied from Excel"
newSlide.Shapes(2).TextFrame.TextRange = dataReadArray(0) & vbNewLine & _
dataReadArray(1) & vbNewLine & _
dataReadArray(2) & vbNewLine & _
dataReadArray(3) & vbNewLine & _
dataReadArray(4) & vbNewLine7

' Chiudere la cartella di lavoro:
sourceBook.Close
End Sub
 

Piotta

Utente junior
Original poster
16 Agosto 2020
31
0
6
Civitavecchia
Office 2016
Sul primo, ho sbagliato io, non so come !
Sul secondo, il problema era il sito strutturato male.
I numeri cancellati sono 4, 5, 6, 7 e 8 che in realtà erano i capitoli del gruppo sottostante ma si trovavano attaccati all'ultima riga del precedente gruppo !
Io credevo facesi parte del VBS.