Condividi:        

Script per Macro google Sheets

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

Script per Macro google Sheets

Postdi sbs » 17/03/22 08:27

Gentilissimз devo condividere un foglio di lavoro per delle prenotazioni.
Ogni persona deve poter scegliere uno slot e poi NON modificare niente delle altre prenotazioni e non segnarsi in due sullo stesso slot.
Ho pensato di risolvere il problema impostando due fogli di lavoro di cui uno nascosto (foglio 2)
Nel foglio 1 inserisco 3 colonne: Colonna A data; Colonna B slot orario; Colonna C da compilare con nome
Appena uno compila qualunque cella (colonna C)
Si attiva la macro che
Codice: Seleziona tutto
a)   Cerco la prima cella scritta da C2 a C80
b)   Seleziono la cella situata in colonna A in corrispondenza della cella trovata
c)   Taglio la cella
d)   Mi posiziono in E1 e incollo la cella tagliata
e)   Ripeto a
f)   Seleziono la cella situata in colonna B in corrispondenza della cella trovata
g)   Taglio la cella
h)   Mi posiziono in F1 e incollo la cella tagliata
i)   Ripeto a
j)   Seleziono la cella trovata (colonna C)
k)   Taglio la cella
l)   Mi posiziono in G1 e incollo la cella tagliata
m)   Seleziono l’intervallo E1 G1 e lo taglio
n)   Attivo (scopro) il foglio 2
o)   Cerco la prima casella vuota in colonna A del foglio 2
p)   Seleziono la casella vuota
q)   Incollo la selezione tagliata
r)   Nascondo il foglio 2 e attivo il foglio 1
s)   Esco dalla routine.


Per Excel sono riuscito a fare questo script

Codice: Seleziona tutto
Sub Prova()

Sheets("foglio1").Select

    Range("C1").End(xlDown).Offset(0, -2).Select
    Application.CutCopyMode = False
    Selection.Cut
    Range("E1").Select
    ActiveSheet.Paste
 
    Range("C1").End(xlDown).Offset(0, -1).Select
    Application.CutCopyMode = False
    Selection.Cut
    Range("F1").Select
    ActiveSheet.Paste
   
 
    Range("C1").End(xlDown).Offset(0, 0).Select
    Application.CutCopyMode = False
    Selection.Cut
    Range("G1").Select
    ActiveSheet.Paste
         
Range("E1:G1").Select
Selection.Cut
Sheets("Foglio2").Visible = True
Sheets("foglio2").Select
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.Visible = False

Sheets("foglio1").Select

End Sub

Che funziona anche se non ero riuscito a triggerarlo su cambia valore di qualunque cella.
Però il problema è che lo devo condividere con google sheets e non ho idea di come si scriva il relativo script.
Avatar utente
sbs
Utente Senior
 
Post: 114
Iscritto il: 18/09/10 11:25

Sponsor
 

Re: Script per Macro google Sheets

Postdi Dylan666 » 17/03/22 11:57

Avatar utente
Dylan666
Moderatore
 
Post: 40099
Iscritto il: 18/11/03 16:46

Re: Script per Macro google Sheets

Postdi sbs » 17/03/22 12:09

Non chiarissimo!! Mi dice di "registrare" ma come faccio a registrare ad esempio
"Cerco la prima cella scritta da C2 a C80" e "Seleziono la cella situata in colonna A in corrispondenza della cella trovata" ?
Avatar utente
sbs
Utente Senior
 
Post: 114
Iscritto il: 18/09/10 11:25

Re: Script per Macro google Sheets

Postdi Dylan666 » 17/03/22 12:22

Registra una azione qualunque di Fogli e poi vai in modifica.
Dalla schermata in cui puoi fare le modifiche alle macro incolli il codice di Excel opportunamente modificato come indicato da quella pagina che riporta questi due link:
https://gsuite-developers.googleblog.co ... ba-to.html
https://developers.google.com/apps-scri ... readsheet/

Devi estrarre da quella pagina dei concetti generali, non uno step-by-step meccanico
Avatar utente
Dylan666
Moderatore
 
Post: 40099
Iscritto il: 18/11/03 16:46

Re: Script per Macro google Sheets

Postdi sbs » 17/03/22 14:06

OK! provo!
Avatar utente
sbs
Utente Senior
 
Post: 114
Iscritto il: 18/09/10 11:25


Torna a Programmazione


Topic correlati a "Script per Macro google Sheets":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti