Macro Chatgpt

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Macro Chatgpt

Messaggio da charlie »

Ciao a tutti, incuriosito dalle notizie su Chatgpt, l'ho voluta provare.
Dopo avere fatto domande banali, gli ho fatto scrivere una macro:
domanda:
Scrivi una macro Basic per Calc che calcola la somma di due celle
risposta:
Ecco una macro che somma il contenuto delle celle A1 e A2 e scrive il risultato nella cella A3

Sub SommaCelle()
Dim valore1 As Double
Dim valore2 As Double

valore1 = Range("A1").Value
valore2 = Range("A2").Value

Range("A3").Value = valore1 + valore2
End Sub

Nella macro ho definito due variabili, valore1 e valore2, di tipo double per contenere i valori delle celle A1 e A2. Questo rende il codice più leggibile e meno soggetto a errori.

Per eseguire la macro, seleziona la cella in cui desideri scrivere il risultato, quindi premi "Alt + F8" per aprire la finestra delle macro. Seleziona la macro "SommaCelle" e fai clic su "Esegui". Il risultato della somma verrà scritto nella cella A3.
domanda:
Le tue macro danno sempre errore: errore di runtime basic- sottoprocedura non definita
risposta:
Mi dispiace che tu stia riscontrando un errore con le macro che ti ho fornito. L'errore "sotto procedura non definita" si verifica quando il codice fa riferimento a una subroutine o una funzione che non è stata definita correttamente.

Per risolvere il problema, controlla se la macro è stata scritta correttamente e se tutte le variabili sono state definite. Inoltre, controlla se il nome della subroutine è corretto e se la macro è stata eseguita correttamente.

Se il problema persiste, prova a riavviare il foglio di lavoro o a copiare e incollare nuovamente la macro per verificare se ci sono errori di battitura o di formattazione.

Se hai bisogno di ulteriore assistenza, ti consiglio di fornire maggiori dettagli sull'errore che stai riscontrando, inclusi il codice della macro e il messaggio di errore completo, in modo che io possa aiutarti meglio.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

domanda:
L'errore viene segnalato alla riga: valore1 = Range("A1").Value
risposta:
L'errore "sottoprocedura non definita" che stai riscontrando potrebbe essere causato da un problema di riferimento alle librerie di OpenOffice Basic.

Per risolvere il problema, prova ad aggiungere la seguente riga di codice all'inizio della tua macro, subito dopo la riga "Sub SommaCelle()":

Dim document As Object
document = ThisComponent

In questo modo, stai dichiarando una variabile chiamata "document" e assegnando ad essa il valore "ThisComponent", che si riferisce al documento corrente del foglio di lavoro Calc. Questo dovrebbe risolvere il problema di riferimento alle librerie e consentirti di accedere alle celle del tuo foglio di lavoro.

Assicurati inoltre di aver selezionato la cella giusta prima di eseguire la macro. Se ad esempio vuoi che la somma venga scritta nella cella A3, seleziona questa cella prima di eseguire la macro.

Spero che questo possa aiutarti a risolvere il problema. Se il problema persiste, fammi sapere e cercherò di aiutarti ulteriormente.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

domanda:
L'errore si ripete ancora alla riga: valore1 = Range("A1").Value
risposta:
Se l'errore si ripete ancora alla riga valore1 = Range("A1").Value, potrebbe esserci un problema di riferimento alle librerie di OpenOffice Basic.

Per risolvere il problema, prova a sostituire la riga valore1 = Range("A1").Value con la seguente riga:

valore1 = ThisComponent.Sheets(0).getCellRangeByName("A1").Value

Questo codice si riferisce alla prima scheda (Sheets(0)) del documento attuale (ThisComponent) e ottiene il valore della cella A1 utilizzando il metodo getCellRangeByName.

Prova anche a verificare se la tua macro è stata salvata nel modulo corretto del tuo foglio di lavoro e che il nome della macro corrisponda esattamente al nome che hai usato per richiamarla.

Spero che questi suggerimenti ti aiutino a risolvere il problema. Se il problema persiste, fammi sapere e cercherò di aiutarti ulteriormente.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

domanda:
Adesso va bene, ho modificato la macro anche per la cella A2. Come modifico la macro per la cella A3?
risposta:
Per modificare la macro per la cella A3, puoi semplicemente aggiungere una nuova variabile e assegnare il valore della cella A3 ad essa, come segue:

Sub SommaCelle()
Dim valore1 As Double
Dim valore2 As Double
Dim valore3 As Double

valore1 = ThisComponent.Sheets(0).getCellRangeByName("A1").Value
valore2 = ThisComponent.Sheets(0).getCellRangeByName("A2").Value

ThisComponent.Sheets(0).getCellRangeByName("A3").Value = valore1 + valore2
End Sub
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

domanda:
Adesso va bene, funziona perfettamente
risposta:
Ottimo, sono felice di aver potuto aiutare! Se hai bisogno di aiuto in futuro, non esitare a chiedere.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

domanda:
Nelle tue prossime risposte tienti conto dei suggerimenti che mi hai dato, potrebbero servire ad altre persone, grazie.
risposta:
Certamente, terrò in considerazione i suggerimenti che ti ho dato per le mie future risposte. Spero di poterti aiutare ancora in futuro. Grazie per il tuo feedback!


Sono curioso di conoscere il parere degli esperti di macro di questo forum :D
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro Chatgpt

Messaggio da patel »

La macro finale è corretta, sarebbe interessante capire se facendo le domande in inglese si arriva al risultato più velocemente.
Comunque mi sono iscritto ed ho fatto la stessa domanda: Scrivi una macro Basic per Calc che calcola la somma di due celle.
Il risultato è stato il seguente:

Codice: Seleziona tutto

Sub CalcolaSomma()
    Dim Cell1 As Variant
    Dim Cell2 As Variant
    Dim Somma As Double
    
    Cell1 = ThisComponent.getCurrentSelection().getCellByPosition(0,0)
    Cell2 = ThisComponent.getCurrentSelection().getCellByPosition(1,0)
    
    Somma = Cell1.getValue() + Cell2.getValue()
    
    MsgBox "La somma delle due celle è: " & Somma
End Sub
Corretto se si selezionano 2 celle contigue sulla stessa riga
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro Chatgpt

Messaggio da patel »

Se invece non voglio selezionare le celle la risposta è stata corretta

Codice: Seleziona tutto

Sub CalcolaSomma()
    Dim Cell1 As Variant
    Dim Cell2 As Variant
    Dim Somma As Double
    
    Cell1 = ThisComponent.Sheets(0).getCellRangeByName("A2")
    Cell2 = ThisComponent.Sheets(0).getCellRangeByName("A5")
    
    Somma = Cell1.getValue() + Cell2.getValue()
    
    MsgBox "La somma delle due celle è: " & Somma
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

Possiamo chiudere il forum .... :mrgreen:
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro Chatgpt

Messaggio da charlie »

Oggi l'ho interrogato su un foglio di Calc più complesso, sia con che senza macro. Mi ha fatto fare numero elevato di tentativi ma non è stato capace di risolvere.
Volontari del Forum, potete ancora sperare di rimanere al vostro posto :lol:
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nickGiard
Messaggi: 65
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: Macro Chatgpt

Messaggio da nickGiard »

Diciamo che allo stato attuale Chatgpt è un ragazzo con buona memoria che impara in fretta, anche se non ha la percezione di tutti i dettagli del problema. Nella prima risposta si è basato sul VBA di excel usando la sua sintassi, e non di calc come era stato chiesto, e di fatto è stato accompagnato verso la soluzione.
Io trovo utile l' IA di Edge per filtrare automaticamente le risposte che altrimenti dovrei esaminarle tutte da una query in Google, e quindi utilizzare codice od esempi già predisposti.
Ma cosa dire per l'architettura di un software?, la scelta dei container o base dati più appropriata? la progettazione dello schema della relazione tra oggetti? delle scelte strategiche che consentano l'espandibilità e la manutenzione dello stesso? le idee innovative? Tutte cose che riguardano l'ARTE della programmazione, e quindi credo difficilmente gestibili da una macchina.
Nicola con LibreOffice 7.1 (x64) su Windows 11
Rispondi