Benvenuti al corso di Excel vba episodio 00 oggi spieghiamo come sarà strutturato il corso vi consiglio di ascoltare non sarà un tanti minuti ma giusto per capire perché vado a fare ciò che vado a fare quindi perché alcuni video saranno messi Prima di altri e quant'altro Allora tengo sempre a mente che i livelli delle persone che aprono i miei video sono diversi ci sono persone che magari già programmano e non avranno Problemi di vogliono solo imparare vipa ci sono persone che programmano Ma non sanno utilizzarla programmazione ad oggetti cosa che appunto utilizzeremo tutto il corso
e poi ci sono persone che non hanno mai programmato che usano per Excel e vogliono cominciare vba quindi non darò niente per scontato L'unica cosa che darò per scontata è l'utilizzo di Excel non vedremo cose incredibili lato Excel però darò per scontato che lo sapete utilizzare quindi quel minimo che Facciamo non lo vado a spiegare anche se ogni tanto qualche spiegazione la butto sempre come potete vedere il corso sarà strutturato in tre parti allora abbiamo la prima parte saranno un po' di video dedicati a Viviana Nel senso Excel con vba Su cosa si basa Quali
sono i fondamenti perché facciamo così e e quant'altro vedremo l'editor che ho aperto qua lato Quindi tutta una prima parte i primi video servono a capire che cosa stiamo facendo con Excel e vba Insieme e c'è un po' di roba che che dobbiamo vedere e tra l'altro faremo proprio in questa parte degli accenni sulla programmazione ad oggetti nella seconda parte arriveremo effettivamente ad imparare a programmare e soprattutto impareremo a programmare per Excel vba e qua andrò a seguire quasi il solito discorso che ho fatto per tutti i miei corsi di di programmazione solo che avendo
già direttamente un'interfaccia con cui dialogare Quindi abbiamo già la Possibilità di vedere cosa succede a schermo eccetera vi parlerò ad esempio prima dei metodi rispetto delle variabili questa cosa la spiego per chi già sa programmare direte Perché fai una cosa del genere perché come potrete vedere dai prossimi video risulta molto più semplice approcciarla così però la seconda parte sarà tutta dedicata all'imparare a programmare non c'è tanto quindi saranno tanti video ma in realtà non c'è molto di cui sono sempre le Solite cose banali Quindi per chi sta cominciando a programmare invidia Non preoccupatevi sarà facilmente
abbordabile come sezione dopodiché abbiamo la terza parte in cui Prendiamo quello che abbiamo imparato nelle prime due ed effettivamente lo andiamo ad applicare ad Excel quindi vediamo a tutte ciò che ci dà la possibilità di utilizzare una colonna ciò che riguarda la riga riguardo i vari range ehm riguardo ai fogli di lavoro eccetera Quindi tutte quelle cose specifiche quelle funzioni che possiamo utilizzare su questi oggetti chiamiamole oggetti l'oggetto colonna l'oggetto riga e quant'altro utilizzo già la parola oggetto per un motivo lo andiamo a vedere in questa fase chiaramente mentre programmiamo utilizzeremo già qualcosa riguardo arexel
però è proprio in questa parte che entriamo nel dettaglio Quindi sarà strutturato così sono molto soddisfatto del risultato non perdiamo Altro tempo e andiamo avanti episodio 1 del corso di fipa XL non ci facciamo un'introduzione avpa cos'è perché eccetera eccetera Allora vba innanzitutto sta per Visual Basic for application Visual Basic è un linguaggio di programmazione for application è il modo in cui utilizziamo Visual Basic con delle applicazioni le applicazioni Sono effettivamente quelle Office che vedete quindi Excel Outlook Power Point Word eccetera quindi andiamo ad utilizzare Visual Basic in relazione a queste applicazioni il che secondo
me rende tutto più facile perché abbiamo già un bell'ambiente in cui possiamo lavorare è importante sapere che vba è un linguaggio di programmazione orientato agli oggetti per chi non programma Quindi non avete mai visto niente quindi agli oggetti o meno per voi non è un problema perché ve lo insegnerò già così e per voi questa sarà sarà la vostra realtà Ma per chi programma e non ancora Toccato questo modo di programmare potrebbe essere all'inizio un attimo complesso perché arrivate da un altro tipo di programmazione mentalità e dovete portarla sulla programmazione ad oggetti Perché invece ha
già esperienza in questo ambito non sarà assolutamente un problema anzi lo troverete veramente veramente facile e Uno potrebbe dirmi a cosa ci serve vba collegato ad Excel o altri programmi vi piace serve per andare a creare quelle Che sono delle macro quindi se noi andiamo su sviluppo come potete vedere Qua abbiamo voi non ce l'avete al momento Sviluppo MA lasciate perdere Abbiamo qua la possibilità di creare delle macro le macro Che cosa sono se già sapete utilizzare Excel le macro sono dei grandi comandi sono dei macro comandi Quindi anziché avere il semplice comando andiamo qua
anziché avere il semplice comando riempi la casella Potremmo avere il comando riempi la Casella Scrivici dentro cambia direttamente la formattazione spostati di qua metti dei numeri spostati qua fai una funzione eccetera oppure Trovami tutte le caselle di un certo tipo Rimuovi quelle duplicate formatta eccetera quindi non è un solo comando ma è un insieme di comandi e tutto sommato le macro che cosa sono sono codice per le persone che non sanno programmare che usano semplicemente Excel una macro è una macro è un insieme di comandi Ma Sotto sotto la macro è del Codice in vba
Quindi quando noi impariamo a utilizzare vba Stiamo imparando a scrivere il codice che sta dietro ad Excel e questo è importante perché perché ci permette di andare direttamente a lavorare con le macro senza fare tutto il passaggio visivo e il passaggio visivo si è funzionante ma spesso non è ottimale per andare a creare macro veramente potenti Quindi se dovete fare Task ripetitivi data entry o formattazione per le lunghe Oppure data analisis Insomma ci sono veramente tante situazioni Se pensate al vostro utilizzo di Excel quotidiano se ci lavorate in cui vi piacerebbe fare le cose in
modo più veloce imparando a programmare vba vi potete creare le vostre macro e vi basta Poi richiamare velocemente quindi programmate all'inizio Questo è un po' difficile programmare ci impiegherete più tempo a programmare che non a creare effettivamente la macro qua o fare le Cose a mano ma a un certo punto Arriverà il momento in cui sviluppare qua sulla destra diventerà molto più semplice Molto più veloce che scrivere mille righe qua quindi anziché fare le cose a mano qui per mille volte ci impiegherete 5 minuti e 10 minuti qua dentro anziché Un'ora due ore qua i
primi momenti invece ci impiegheresi di più a programmare e imparare eccetera che farlo a mano però farlo male sempre copia incolla copia incolla taglia metti Coppie in stalla alla fine vi fa male la mano quindi impara a utilizzare vi piace permette di bypassare tutta questa parte visiva e far le cose noi direttamente programmando Quindi tutto il concetto di vba si basa su macro procedure potete chiamarle Come volete le troveremo scritte anche come Sab spesso e volentieri quindi Sotto procedure eccetera si chiamano in tanti modi anche routine in realtà qualsiasi cosa che linguisticamente parlando vuol dire
una Cosa fatta spesso e volentieri una procedura una macro una routine eccetera è quello che andremo a fare e se voi vi state chiedendo che cosa possiamo fare Praticamente con vipa possiamo fare tutto perché vba ha accesso a tutto ciò che noi abbiamo accesso in Excel lattografico Quindi se lo potete fare in Excel lato grafico lo potete fare con vba e vi dico una cosa che vi piace permette di fare anche di più di Excel perché possiamo fare le cose in modo Programmatico quindi non solo abbiamo la possibilità di fare tutto ciò che vedete qui
ma possiamo far di più va bene possiamo reagire agli eventi ad esempio un evento e quando passiamo da un foglio all'altro giusto per fare un esempio possiamo creare delle interfacce personalizzate quindi pensate a delle finestre così le possiamo creare possiamo creare delle nuove funzioni a cui far riferimento Quindi anziché aver sempre le solite funzioni Eccole qua le Solite formule possiamo inserire delle nostre formule possiamo inserire direttamente delle macro che troveremo disponibili qua Insomma sono veramente infinite le cose che possiamo fare chiaramente non possiamo vedere tutte in questo corso perché le possibilità sono infinite dovete essere
poi bravi a prendere la conoscenza di base su come programmare come interfacciarci in Excel e andare a creare poi quelle che sono le vostre procedure Io vi darò gli Strumenti Quindi come programmare come interagire con Excel sarà poi compito vostro andare a creare delle macro delle procedure che vadano a rispondere alle vostre esigenze vi dico subito che Viba è un linguaggio di programmazione abbastanza vecchiotto parliamo dei primi anni 90-94 se non mi sbaglio per la prima versione Quindi per chi di voi programma già vedrete che non seguono le classiche convenzioni a cui siete abituati adesso
a programmare con Python O altre cose i concetti di fondo sono gli stessi cambia un po' la sintassi soprattutto lo vedete qua anche dal dall'editor che poi vedremo nel dettaglio è un editor che esteticamente lascia molta a desiderare avete l'interfaccia di Excel che è stupenda se se ci fate caso è veramente bella questa è anche la nuova versione e poi andiamo dietro a lavorare e abbiamo questo editor Quindi come potete capire la quantità di investimenti è andata lato Estetico chiaramente per la maggioranza delle persone il 99% delle persone lavora ancora Excel interfaccia e non con
vba però questo vi fa capire che stiamo lavorando con qualcosa che non è effettivamente nato ieri Perciò se vedete che l'interfaccia del dell'editor è bruttina che alcune cose sintattiche si potrebbero migliorare Questo è il motivo Comunque abbiamo tutto ciò che ci serve a livello di informazioni iniziali per cominciare a preparare l'ambiente di Lavoro perché giustamente io vi ho citato qua la cosa di sviluppo che voi non avete nel prossimo video ci prepariamo con quelle nozioni che ci servono per cominciare effettivamente a programmare Ci vediamo tra poco episodio due del corso di vba oggi prepariamo l'ambiente
di sviluppo e non prepariamo solo effettivamente il nostro cliente ma vi andrò a dare alcune conoscenze che magari vi mancano la tomacro file eccetera quindi tutto ciò che ci può Servire come conoscenza pregressa prima di cominciare a programmare ne andiamo a discutere in questo video Innanzitutto quella che ci serve è la Tabs sviluppo quindi abilitiamo la Tabs sviluppo e come facciamo andiamo qua in alto dove c'è l'icona del Salva quindi della barra veloce tasto destro Personalizza barra multifunzione che è questa qua sotto bianca e grigia E come vedete abbiamo le nostre Tab le schede principali
poi dovreste avere una cosa del genere Vedete ci sono tante schede principali quasi tutte spuntate che sono queste qua in alto a voi manca a sviluppo se vi faccio vedere ok vedete sviluppo non ce l'ho più vado qua tasto destro Personalizza barra multifunzione vado su sviluppo apro e qua dentro mi compaiono chiaramente lì sottocategorie io faccio Ok e abbiamo la nostra barra di sviluppo quindi prima parte ce l'abbiamo Qua abbiamo suggerimenti a Visual Basic che è questo qua e quindi possiamo aprire da Qua l'editor ma abbiamo anche Visualizza codice ci va direttamente e poi abbiamo
ciò che ci serve per le macro la lista delle nostre macro e Come iniziare a registrare le macro e poi parleremo appunto anche dei riferimenti relativi assoluti ora al momento voglio parlarvi dell'estensioni dei file Quindi se vado su file e vado su Salva come potete vedere devo salvare il file lo vedete dalla lista e l'estensione principale è XLS X che è l'estensione di base dei File di Excel Se però noi andiamo qua sotto trovate xlsm ed è definita come cartella di lavoro con attivazione macro di Excel e questi sono i file con cui vogliamo lavorare
a noi interessano i file XL SM Perché Perché questi file sono i file che portano con sé le macro portano con sé il codice aggiuntivo le macro sono codice fatto da relativi alla fine che voi l'andate a creare tramite l'interfaccia grafica dove c'è scritto Macro Oppure lo fate qua su sull'editor di Visual Basic è irrilevante di norma Excel non ha le macro con sé quindi affinché possiamo utilizzare file con macro chiaramente non adesso perché noi ci programmiamo dentro non è un nostro problema Ma giustamente voi andrete a programmare per cosa Per avere queste macro e
utilizzarle mentre lavorate si desume dobbiate spostarvi il file da una parte all'altra o mandarla a qualcuno comunque salvarlo di conseguenza Vogliamo salvarlo sempre in xlsm e ci serve perché ci serve che Excel si ricordi di tenersi in pancia le macro altrimenti non lo andrà a fare da qua corso Excel vba e io salvo perfetto ho salvato E adesso voglio parlarvi della sicurezza delle macro perché è importante da sapere le macro Sono effettivamente codice e sono codice che ha accesso al vostro computer quindi sono codice che gira sulla vostra macchina tutto quello che vedete qua Riguarda
la sicurezza è importante perché Perché le macro possono essere portatrici di virus quindi se voi prendete file Excel con delle macro dentro e non sapete qual è la sorgente Quindi chi ha fatto questo file Chi ha creato queste macro cosa c'è dentro Rischiate di portarvi nella vostra macchina nel vostro computer dei virus tutta questa parte qua delle della sicurezza delle macro serve appunto ad evitare che partano automaticamente Delle macro indesiderate quindi avete disabilitare le macro vba senza notifica di conseguenza anche se Aprite il file come l'abbiamo creato noi xlsm se fate così vi disabilità le
macro e non vi dice che la che la disabilitate quindi voi non sapete perché non partono così invece con notifica vi compare ma l'abbiamo già visto nel video nel corso di Excel una dicitura in giallo che vi dice Ehi Qua ci sono delle macro son disabilitate le vuoi abilitare Sì no E Voi Scegliete disabilitare macro Tranne quelle con firma digitale quindi stiamo dicendo tutte le altre nelle disability quelle firmate digitalmente nessun problema oppure col fatto che lavoriamo per fatti nostri Stiamo lavorando sul nostro foglio di lavoro roba fatta da noi sappiamo che siamo noi al
momento io vi consiglio di attivare le macro vba avrete scelta non consigliata vedete viene eseguito codice potenzialmente pericoloso chiaramente siamo noi che Siamo programmando per noi stessi quindi al momento non è un problema ma se prendete roba da altri Cercate di avere sempre la spunta con notifica Ok finché programmate Va bene quando state smettendo di programmare vi deve arrivare roba da altri mettete poi la notifica sulla sicurezza perché è importante e anche questa l'abbiamo vista per quanto riguarda i riferimenti relativi Ne parleremo nel prossimo video perché c'è roba specifica di cui parlare E ci staremo
un pochino quello che voglio farvi vedere adesso sono effettivamente le macro Perché giustamente do per scontato che conosciate Excel ma non do per scontato che conosciate le macro quindi le macro ho detto che sono una appunto un macro comando non è semplicemente un comando ma è un comando molto più grande è un comando che va a salvare più cose insieme vi faccio vedere io faccio registra macro e la chiamo macro 1 di Prova posso mettere un tasto di scelta rapida solo control e qualcosa io ve lo sconsiglio perché è molto molti sono già presi da
Excel perciò possiamo fare control maiusk e p ad esempio vedete maiuscole il tastino sopra contro se avete la tastiera inglese si chiama shift dove vogliamo memorizzare la macro nella cartella di lavoro quindi in questa cartella specifica che è corse Excel vba oppure una nuova cartella se vogliamo crearne una nuova quindi la Cartella di lavoro è il file Excel per intenderci oppure cartella macro personale la cartella macro personale è una cartella di lavoro che parte ogni volta che parte Excel voi non la vedete non ci potete lavorare sopra ma è Quindi è una cartella che in
background va sempre e ci permette di avere macro che utilizziamo chiaramente abilitate sul nostro computer ma su tutti i fogli di lavoro che abbiamo ok Quindi anziché avere sempre la macro da copiare per Ogni file Excel copia la macro copia la macro copia la macro che cosa facciamo in realtà Salviamo in cartella macro personale e ce l'abbiamo disponibile su tutti i file creati nel nostro computer Ok noi per il momento andiamo in questa cartella di lavoro non abbiamo grandi esigenze e come descrizione mettiamo Giusto giusto questi faccio Ok dareste partita la registrazione al momento io
utilizzo i riferimenti relativi Ma ne parleremo nel prossimo video e qua Dentro metto tre elementi scrive Edoardo poi scendo scrivo Luca poi scendo e scrivo Anna Adesso vado qui e vado a formattare lo sfondo semplicemente metto questo sfondo perfetto da adesso interrompo la registrazione e Qua abbiamo la nostra macro Vedete se io mi sposto ovunque nel foglio e vado su macro e faccio Esegui vedete che è stato riprodotto mi ha preso questo grassetto perché c'era già ma non è un problema quello che è importante è che avete Visto il discorso quindi mi ha scritto Edoardo
Luca e Anna Dopodiché mi ha formattato lo sfondo io posso fare anche control maius p e vedete che ovunque io vada a giustamente qua mi ha preso la formattazione che avevo nell'episodio precedente quindi non abbiamo fatto nessun danno Non preoccupatevi ovunque io vada in giro Sto eseguendo la stessa macro e quindi la stessa operazione che ho fatto qua questa chiaramente è dimostrativa però posso andare a Riprodurre in giro in tutto il foglio Quindi quello che era un mini comando scrivi Edoardo scrivi Luca scrivi Anna e poi ogni cella me la vai a mettere in arancione
quindi sarebbe un comando singolo li ha messi tutti e quattro insieme quindi Edoardo Inserisci Anzi sono più son più di quattro comandi sono Prendi la prima Casella 1 scrive Edoardo scendi 3 scrivi Luca 4 scendi 5 scrivi Anna sei le prendi tutti insieme 7 le fai arancioni 8 quindi tutti questi otto Passaggi Li ha salvati qua dentro e da adesso possiamo appunto richiamarla sia con control maius P oppure passando qua da macro chiaramente una volta che siamo qua possiamo modificarla oppure eliminarla ne facciamo così e l'abbiamo eliminata quindi questa è la base per cominciare a
programmare la macro che abbiamo fatto ha generato un codice e lo vedremo tra due video quindi la macro che abbiamo creato qua effettivamente che codice ha prodotto Direi che per Questo video è tutto quindi abbiamo visto cos'è una macro abbiamo parlato di sicurezza abbiamo abilitato appunto la Tabs sviluppo abbiamo parlato dell'estensione dei file nel prossimo video Parliamo delle referenze o riferimenti relativi contro assoluti quindi perché a volte spuntiamo dei spuntiamo questa casella Ci vediamo tra poco episodio 3 del corso di vba oggi parliamo di questo tastino che c'è sotto registra macro ovvero i riferimenti Relativi
e riferimenti assoluti se avete un minimo di esperienza con Excel già sapete a differenza tra riferimenti relativi e riferimenti assoluti il riferimento assoluto è quel tipo di riferimento che guarda ad una cella nel suo specifico Quindi se abbiamo una una formula ad esempio qui questo per questo e qua Abbiamo il risultato quindi andiamo a fare questo per questo E quando lo trasciniamo sotto andrà a prendere tutti i valori che abbiamo qua Dentro ma li moltiplicherà sempre per F Quindi questo è un riferimento assoluto mentre Queste sono relative quindi non importa la la cella ogni cella
viene moltiplicata per questo mentre invece il riferimento relativo è un riferimento ad esempio la somma una cosa del genere che cambia spostandoci da colonna a Colonna da riga riga in questo caso se noi avessimo qua forma una somma così Qua abbiamo la somma e la trasciniamo abbiamo un riferimento relativo perché Sa che deve prendere ok Sono su questa riga devo prendere A e B della riga su cui mi trovo scendo di uno A e B di una riga sotto vado qua a e b della riga sotto e via discorrendo quindi questo In brevissimo i riferimenti
relativi e riferimenti assoluti come si applicano però alle macro vediamo degli esempi e cominciamo da riferimenti assoluti che sono quelli già preimpostati Allora io faccio registra macro la chiamo macro assoluta Non ci interessa nient'altro Magari mettiamo una descrizione a caso e vabbè facciamo control maius P tanto per gradire faccio Ok mi metto su magari a mi sposto su B perfetto e da qua scrivo Edoardo Luca e Anna prendo tutti e tre e vado a colorare il tutto Adesso mi sposto su sviluppo e interrompo la registrazione Va bene adesso vado a creare la stessa cosa ma
qui i riferimenti relativi quindi attivo i riferimenti relativi torna indietro faccio partire registra Macro e la chiamo macro-rela relativa mettiamo control maiusk faccio Ok mi metto su a mi sposto su B da qua scrivo Edoardo Luca e Anna prendo tutti e tre e di coloro di un altro colore in questo caso facciamo blu mi sposto su sviluppo interrompo registrazioni e abbiamo due macro macro assoluta e macro relativa Allora puliamo ancora tutto e Cominciamo con la macro assoluta vedete Io sono qui prendo la macro macro assoluta Esegui e vedete Ma Come Io avevo selezionato qua su
f e pure torna su su B mentre invece mi metto qua su f e faccio macro macro relativa vedete che mi ha riprodotto la cosa che abbiamo fatto prima esattamente qua su f questa cosa qua come vedete è ancora la formattazione dei primi episodi che non ho mai tolto Perfetto Adesso siamo a posto Se mi sposto qua sotto e faccio control maius K vedete ovunque io vada l'abbiamo già visto posso andare a creare la mia Formattazione speciale Se invece faccio control maius P vedete che va sempre a riempirmi B2 B1 B2 e B3 vedete non
importa cosa io vada ad eliminare proviamo a togliere anche qua sotto non importa cosa gli vado ad eliminare control maius P va sempre in quella direzione quindi la differenza come potete vedere e adesso lo vediamo velocemente lato codice Ma giusto velocemente è che le macro con riferimenti relativi prendono appunto la Posizione relativa Quindi io ero qui ha preso la cella in cui mi trovavo e da qua ha cominciato a fare quello che gli ho chiesto stessa cosa Qui stessa cosa qua in realtà lo faccio vicino ma è per dirvi qui perché magari non si vede
mentre invece con i riferimenti assoluti mi dice no non è che prendo la prima cella e poi scendo di una e poi scendo di uno prendo B1 e poi scendo su B2 e poi scendo su B3 Quindi qua è specifico mentre invece qua è relativo alla mia Posizione va bene se andiamo a vedere il codice Visualizza codice andiamo qua su un modulo e come potete vedere abbiamo del codice e questa è una macro nei prossimi episodi andiamo a fare un'altra macro magari un po' più complessa e ne parliamo nel dettaglio quello che mi interessa farvi
vedere è che qua avrete va sullo specifico vedete B1 B2 b3e esattamente come abbiamo visto mentre qua parla di offset quindi parla di offset Questo obset lo vedremo meglio ma In soldoni sta andando a fare dei calcoli relativi quindi relativi a dove eravamo va poi a utilizzarli come punto di riferimento per la nostra macro ovunque siamo Va bene quindi questa è la differenza e qua c'è proprio la differenza in codice avete come qua senza percepire il codice ancora perché non ve l'ho spiegato come qui si parla direttamente di B1 Select quindi Seleziona B1 B2 B3
mentre invece qua va a fare un calcolo molto più complesso Vedete c'è un calcolo molto più complesso fa riferimento ad A1 però è un calcolo molto più complesso va bene e questo calcolo viene poi applicato ogni volta in modo dinamico alla posizione in cui ci troviamo va bene quindi questa è la differenza tra macro assoluta e relativa nel prossimo video andiamo a creare magari un'altra macro che non abbia assoluti relativi che ci confondiamo Ma andiamo a creare una macro magari un pelino più complessa per Studiare quelle che sono alcune delle delle righe che abbiamo quindi
Come è formata effettivamente una macro perché qua c'è tanto codice e lo andiamo ad analizzare nel nel dettaglio per poi più avanti cominciare effettivamente a programmare sapendo già che cosa abbiamo a schermo episodio 4 del corso di vba oggi cominciamo ad analizzare il codice generato automaticamente da una macro e lo facciamo per capire quelle che sono Alcune delle funzionalità base giusto per cominciare a bagnarci i piedi così con con vba e l'idea di cominciare da una macro registrata è molto comoda perché imparare così ci permette di evitare di dover guardare tutta la documentazione per ogni
singola cosa io però vi esorto a guardare la documentazione vedete qua abbiamo la documentazione di vba è divisa per programmi vedete Axel Excel eccetera e qua dentro Avete poi tutta la Spiegazione di Excel vba Quindi fate sempre riferimento Se non capite qualcosa alla documentazione Ma al di là di quello un modo veloce per saltare tutta la curva di apprendimento e vedere cose che mai avreste visto è sfruttare le macro perché ho lasciato queste cose qua che abbiamo fatto l'episodio precedente per dimostrarvi che le cose fatte con le centro non sono annullabili se io provo a
fare control z Anzi prima scrivo qua qualcosa poi faccio control z Avete che posso tornare indietro ma le modifiche ad Excel generate con le macro non possono essere cancellate vedete L'unico modo è effettivamente togliere tutti i valori togliere la formattazione eccetera questa cosa è importante da tenere d'occhio e teneramente Perché Perché quando lavoreremo con vba se dobbiamo poi fare delle cose al foglio e tornare indietro L'unico modo è sovrascrivere quello che facciamo non possiamo tornare indietro Va bene quindi Questa parte ve la volevo appunto citare perché è importante detto questo torniamo indietro e faccio nessun
riempimento Allora la macro che andiamo a fare è molto semplice prendo un range scrivo delle cose eh vado a cambiare Magari il grassetto sottolineatura eccetera quindi cambio un po' la formattazione e poi vediamo che cosa viene generata Allora cominciamo subito sviluppo Facciamo partire macro Se volete utilizzare i riferimenti più Assoluta irrilevante a sto giro assoluti faccio partire macro la chiamiamo macro 8 va assolutamente bene non è un problema se aggiungiamo control e quant'altro Io lo faccio giusto per avere roba in più descrizione macro di mostrativa per l'episodio 4 e poi vedrete a cosa serve questa
descrizione io faccio ok E direi che noi possiamo partire qua vedete che sta andando io mi metto qua scrivo ancora Edoardo scrivo ancora Luca non ho tolto la Formattazione Mannaggia a me Scrivo Anna e magari anche Antonio Dopodiché vado su Edoardo e qua Metto Innanzitutto lo sfondo arancione e metto come colore arancione scuro Dopodiché vado qui metto magari blu e come colore metto blu scuro Anzi Blu chiaro non si legge niente ma pazienza poi vado qua cambio lo sfondo metto magari verde lascio vuoto vado qua su Antonio cambio metto giallo poi mettiamo corsivo e magari
sottolineato normale infine vado su Luca lo metto a Destra e direi che noi siamo a posto quindi mi sposto su sviluppo e annullo come vedete nel frattempo qua è uscito un po' di codice Questo perché è in tempo reale ora se noi andiamo ad analizzare il codice per riduciamo Questa finestra e andiamo ad analizzare il codice Non fate caso arresto del dell'editor quindi della finestra di Visual Basic perché lo vedremo in un video ad hoc per ora ci vogliamo concentrare esclusivamente su ciò che è Stato creato Innanzitutto abbiamo Sab Saab è la parola chiave delle
procedure o delle macro Ok quindi sono delle sotto procedure Saab prosidius in questo caso Saab è la parola chiave quindi abbiamo Sab il nome macro-8 e poi le parentesi tonde se io vado qua ad aprire macro vedete che abbiamo macrotto vedete non possiamo sbagliare qua sotto abbiamo la descrizione e tutti questi dati sono riportati qua quindi il nome è macro ovvio che ciò che noi effettivamente Vediamo a schermo dopodiché abbiamo qua sotto la descrizione vedete e poi abbiamo il tasto di scelta rapida quindi ci dice Qual è il tasto di scelta rapida e qua è
selezionato ora questi sono dei commenti sono dei commenti che non vengono effettivamente letti parleremo meglio dei commenti Quindi abbiamo la nostra apertura qua di Sab macro-8 dei commenti riguardo alla macro e sotto vedete end Sab come potete notare è un blocco di codice perché abbiamo Sab e And Sab questo qua è un classico blocco di codice tutto ciò che c'è dentro fa riferimento a questa macro capite se qua non ci fosse handsab come possiamo distinguere questa macro da un'altra macro quindi Sab macro-8 con le due parentesi è l'inizio di una macro e poi abbiamo enseb
per specificare la fine vedete che qua abbiamo anche endwave eccetera quindi capite che la parola chiave and ci permette di identificare uno specifico blocco di codice Lasciamo Perdere i commenti e cominciamo io che cosa ho fatto ho fatto range A1 Select il Range sarebbe un insieme di Celle Però in realtà con range possiamo identificare anche una singola cella Quindi ogni cella o più Celle viene identificato come range il Range È appunto un insieme di Celle però nessuno ci vieta che sia un'unica cella quindi range e questo è un oggetto Ma ne parleremo meglio nel prossimo
video della programmazione ad oggetti Io Prendo la cella 1 quindi A1 Select e quindi la selezione ho preso a uno che cosa ho fatto nella cella che ho Attiva sono andato a inserire Edoardo Dopodiché ho selezionato la A2 e nella cella Attiva avrete Active cell lasciate perdere un attimo questa parte che non ci interessa ho scritto Luca vi torni sono nato ho selezionato a uno e ho scritto Edoardo ho selezionato a 2 e ho scritto Luca ho selezionato a tre e ho scritto anno selezionato A4 e ho scritto Antonio dopodiché sono tornato su con Edoardo
vi ricordate quindi ho selezionato a uno a uno Select E che cosa ho fatto con questa selezione parleremo meglio di Wiz nel dettaglio Non preoccupatevi ma in A1 con la selezione corrente che cosa ho fatto Ho cambiato lo sfondo ho cambiato il colore ho fatto determinate cose in realtà io ho cambiato solo lo sfondo e il colore qua mi ha aggiunto righe aggiuntive perché in realtà io ho solo cambiato Sfondo e colore qua ad esempio vedete ho cambiato questo e questo li vedremo poi più avanti nel dettaglio Ma le altre cose io non le ho
selezionate Quindi quando dico che lavorare a mano ci permette di ottimizzare Excel è vero perché le macro generate automaticamente funzionano per carità vanno bene ma come vedete aggiungono del codice Perché Perché Excel facendo le cose in automatico deve dare per scontata alcune cose deve aiutarsi in qualche modo Mentre invece quando lo facciamo noi possiamo essere più specifici senza dover ripetere ogni cosa voi Mi direte Vabbè cosa vuoi che siano due righe di codice sono tre righe in più per ogni selezione che ho fatto noi abbiamo quattro Celle pensate su un file di 10.000 un milione
cioè ogni volta il computer legge ogni singola riga Vabbè che sono millisecondi Ma fate in millisecondi per ogni riga per un milione di Celle capite Come si Aggiungono velocemente è un po' Come l'esempio E vabbè è solo una brioche al cioccolato questa mattina certo una brioche al cioccolato La mattina non è un problema una brioche al cioccolato per ogni mattina si sente poi ok Quindi stesso discorso del dell'effetto composto sembra niente ma in realtà su larga scala è tanto quindi queste righe a noi in realtà non servirebbero Comunque quello che stiamo facendo nella nostra selezione
è fare una serie di Mosse all'interno della nostra cella in questo caso ho cambiato il colore che ho cambiato il colore di sfondo Io ho finito il mio Wave Quindi quello che c'era nella con la selezione A1 l'ho finito quindi con la selezione Attiva Quindi con questa selezione che ha 1 ho fatto una serie di cose dopo aver modificato lo sfondo ho modificato il Font andiamo avanti ho selezionato A2 e anche qua ho performato una modifica sulla selezione interiore quindi sul Background della Cella e poi ho performato delle modifiche al font font e ciò che
c'è scritto effettivamente Quindi quello che si vede a schermo lato testo ho selezionato a 3 e ho fatto delle cose Allo sfondo e basta vedete che poi non ho cambiato il testo Era già così in grassetto da prima ho selezionato a 4 ho modificato lo sfondo Dopodiché che cosa ho fatto ho preso la selezione attuale che è a 4 ho cambiato il Font in italic vi ricordate qua Ops Devo andare un pelino più qua vedete l'ho messo in italic è corsivo italic è il corsivo per chi non lo sapesse quindi corsivo True vero altrimenti false
è no Quindi molte cose sono Ovvero o falso il testo è sottolineato vero o falso il testo è in grassetto Vero o falso il testo è in corsivo o italic Vero o falso Mi raccomando l'inglese che qua è tutto inglese Excel qua davanti no ma Visual Basic È tutto in inglese quindi dovete Abituarvi all'inglese non ci potete fare niente underline è sottolineato in questo caso non abbiamo vero falso Ve l'ho fatto come esempio Vero o falso ma in questo caso non abbiamo solo vero falso perché perché può essere sottolineato in più modi vi faccio vedere
la sottolineatura non è solo vero falso ma può essere o sottolineato o sottolineato doppio di conseguenza mentre l'italic il corsivo è vero falso la sottolineatura è se non sapete in Inglese ve lo dico io XL vuol dire Excel underline sottolineatura Style singolo quindi ha preso un valore predefinito che ci mette a disposizione Visual Basic di Excel e ci dice che il valore che ho che ho selezionato per underline è il valore di Excel underline chiaramente lo stile è singolo se avessi messo Double doppio qua qua in alto io avrei avuto qua Double ok Al momento
non statevi a fasciare la testa per tutte ste cose Le impareremo durante il corso poi cosa ho Fatto ho preso ancora A2 Se vi ricordate E l'ho portato a destra quindi con la selezione attuale ho messo l'allenamento orizzontale a destra che è quello che in realtà ho fatto tutto il resto merge cell è questo dov'è che è scomparso è questo è un ic Celle io non l'ho fatto ma come vi ho detto Excel quando usa le macro automatiche lato utente va aggiungere una serie di cose successive la cosa utile dell'utilizzare queste macro è che ci
permette di vedere Già lato codice funzionalità che ci possono servire anziché andare su Google o sulla documentazione di Excel e cercare Excel Come spostare l'allenamento in vba ci basta prendere l'allineamento farlo con una macro e vedete che abbiamo orizzontale che è a destra di conseguenza ci sarà left e ci sarà Center allo stesso modo Adesso sappiamo che l'allineamento verticale si chiama Vertical Alliance e abbiamo bottom Center e top oppure Bottom andiamo qua Excel Center vedete abbiamo qua center quindi all'inizio Al di là dell'aver finito il corso più avanti continuate a sfruttare le macro qua della
Tabs sviluppo per velocizzare il tutto Certo alcune cose sono aggiuntive non sono neanche intuitive Eventualmente le togliete e le ritroverete quando vi capiterà effettivamente di utilizzarle Comunque una volta che io ho selezionato A2 e ho cambiato L'orientamento la mia macro è praticamente finita e finisce con enseb come abbiamo visto quindi questa è l'analisi iniziale vedete come molte cose anche se non le capiamo a fondo il Range Cos'è questo range perché non mi prende solo la A1 perché la A1 è tra virgolette Che cos'è questo punto oppure che cos'è questa formula R1 C1 oppure Che cos'è
pattern XL Solid molte cose non le capiamo ancora non sappiamo che cosa sono volete perché magari non Sappiamo l'inglese ma in aggiunta il fatto di avere il punto l'uguale alcune cose hanno le virgolette Questa è la sintassi Specifica e soprattutto questa è programmazione però a livello logico si capisce a uno Select ho messo Edoardo si capisce è intuitivo che poi non sappiamo riprodurlo però almeno un pochino sappiamo leggerlo ed è quello che mi interessava quindi farvi analizzare la struttura basica di una macro e questa è anche una macro Abbastanza larga non è super complessa però
è larga nel prossimo video parliamo di programmazione ad oggetti perché perché questa sintassi che vedete qua è un esempio Palese di programmazione ad oggetti non vi dico altro ma già avevo citato range lo vediamo nel prossimo video episodio 5 del corso di vba oggi ci prendiamo 10 minuti un quarto d'ora per parlare della programmazione ad oggetti perché è e sarà una costante della programmazione in vba se siete già Nel mondo della programmazione ve ne rendete conto dai puntini quindi scrivere quei puntini siamo nel mondo della programmazione ad oggetti per chi non sa di cosa sto
parlando che non ho mai programmato o non ha mai programmato ad oggetti non preoccupatevi perché adesso Entriamo nel dettaglio Allora l'idea di fondo della programmazione ad oggetti consiste nell'andare a riprodurre in modo logico degli elementi degli oggetti che sono nel mondo reale e Portarli all'interno della programmazione se chiaramente Facciamo riferimento con quelle cose altrimenti utilizzare la stessa mentalità per qualcosa che all'interno del nostro programma Mi spiego meglio partiamo con un semplice esempio poi facciamo un esempio un po' più articolato e poi vediamo in relazione a vba se ne abbiamo una persona sto scrivendo senza una
particolare sintassi di Viviana non preoccupatevi se ne abbiamo una persona Nel mondo reale non è un oggetto è più un'entità vediamo la comune entità Quindi quando programmiamo ad oggetti andiamo a creare Sì sono oggetti ma non oggetti come li intendiamo noi un telefono un mouse eccetera intendiamo più entità Se non vi piace il termine oggetto chiamate le entità Quindi abbiamo la nostra persona che è un'entità o un oggetto vogliamo riprodurla all'interno del nostro codice perché perché vogliamo Lavorare all'interno del nostro codice con delle persone Una persona che cosa avrà di conseguenza ragioniamo le persone fanno
cose e hanno cose quindi hanno dei nomi cognomi hanno un'età hanno cose che gli piacciono hanno degli hobby eccetera quindi Queste sono le proprietà di una persona e poi fanno cose una persona cammina studia parla gioca urla compra qualcosa eccetera quindi hanno delle azioni che in programmazione si chiamano metodi va Bene o funzioni per semplificare se vi torna più comodo con funzioni utilizziamo funzioni anche se non è il termine Giustissimo però chi se ne frega finché capite il discorso Guardate che proprio il termine corretto non mi interessa Quindi abbiamo proprietà e metodi ad esempio l'età
può essere 30 quindi una persona ha un'età una persona ha un nome che può essere Luca velocità in questo caso metto le virgolette perché è corretto però per ora non Guardo la sintassi perché non mi interessa ha un cognome infatti questo ve lo faccio senza virgolette che Rossi potrebbe avere magari un insieme di Hobby quindi un insieme di Hobby Uso una sintassi di altri linguaggi di programmazione Non preoccupatevi ma vi fa capire che gli Hobby rientrano in un'unica proprietà quindi gli hobby è unico Quali sono i tuoi hobby non è un'unica cosa sono multiple può
essere calcio ehm basket può essere disegno Eccetera Ok si capisce che sto parlando di tre cose che però fanno riferimento agli Hobby Perfetto Quindi una persona ha delle proprietà e ne può avere tante di proprietà se la persona non fosse una persona ma fosse uno studente avrebbe anche una classe in cui si trova non così ma avrebbe una classe ad esempio quinta A Ops mi sta dando problemi Vabbè chi se ne frega se mi dà problemi di sintassi potrebbe avere Secondo me una materia preferita Perfetto Quindi vedete Come abbiamo preso una un'entità reale e l'abbiamo
portata dentro il codice ora questa persona quindi torno su persona questa persona non solo ha delle proprietà ma anche dei metodi quindi vuol dire che fa qualcosa che cosa può fare ad esempio può parlare usiamo parla qua mi dà errore quindi non vado a capo eh studia mangia cucina eccetera quindi quello che abbiamo fatto è porca miseria Ste errori quindi quello che abbiamo fatto lo metto come commento perché Sennò mi darà sempre problemi perfetto quello che abbiamo fatto è rappresentare quella che è una persona a livello di codice Ok togliamo Magari il 30 eccetera Diciamo
solo che ha un'età ha un nome e ha un cognome in modo abbastanza generico Ok quindi questo qua diventa il nostro stampino per ogni persona che utilizziamo nel codice andremo ad assegnare nella nostra persona avrà un nome che è Luca avrà un cognome che è Rossi avrà Un'età che è 30 commentiamo allo stesso modo sotto Potremmo avere un'altra persona che ha come nome Anna che ha come cognome verdi e che ha come età 25 quindi capite che una volta in cui è stata impostata questa traccia possiamo utilizzarla per far riferimento a qualsiasi persona in questo
caso diventa un oggetto persona Ok non sappiamo ancora cosa sono le variabili Ma se noi avessimo persona 1 è uguale a una persona di nome Luca eccetera eccetera e Persona 2 io potrei far riferimento a quella che è la sua proprietà e quindi potrei dire persona 1 punto nome in questo caso mi verrebbe mandato a schermo quello che è il suo nome se io invece voglio riassegnare digli che ho cambiato nome e adesso non sono più Luca ma sono Orazio vedete persona 1 punto nome voglio fargli fare un'azione prendo persona 1 punto Mangia ok Quindi
che cosa stiamo facendo Stiamo prendendo quella che è la nostra persona uno che è Identificata come Luca Rossi età 30 che chiaramente essendo una persona ha queste proprietà e può fare queste cose e le stiamo richiamando all'interno del nostro codice va bene quindi questa è la programmazione ad oggetti utilizziamo uno stampino per creare facilmente degli oggetti all'interno del nostro codice che poi andiamo a richiamare quindi ricapitoliamo un attimo con così stiamo prendendo il nome Ok usiamo così per far differenza così riassegniamo la Proprietà del nome E così sto usando una sintassi di pseudo codice Non
preoccupatevi non è quella esatta ma così in non lo capisce da solo se è un metodo oppure una proprietà così invece stiamo dicendo persona 1 mangia Va bene Ora se non vi è molto chiaro questo concetto io vado leggermente su Ricordatevi questo persona 1 punto nome io vado su e improvvisamente Abbiamo la stessa sintassi che vi ho spiegato vedete Qualcosa punto qualcosa con tra l'altro le parentesi poi abbiamo qualcosa punto qualcosa uguale qualcos'altro vedete quindi la stessa sintassi che io ho utilizzato qua per rappresentare una persona e non stiamo lavorando con le persone ma era
solo un esempio la stessa sintassi che abbiamo usato qua Excel la usa qua dentro a dimostrazione che programmando io da letteralmente una vita questi concetti ormai ce li ho radicati perciò ragiono così per me è Facile e arriverà il momento anche per voi in cui prenderete con qualsiasi oggetto qualsiasi entità dal mondo reale che vi serve o può essere anche non reale perché questo range non esiste nel mondo effettivo Ok la cella Attiva Active cell non esiste nel mondo effettivo esiste solo in Excel vedete quindi non deve essere per forza sta roba che arriva dal
mondo reale come una persona ma la cella Attiva Qual è la cella Attiva è questa qual è l'attiva È Questa Qual è il Range A1 è questo è un oggetto che sia sul computer e programmatico non è un problema ma è un oggetto identificabile è una cella è una cella Attiva è la cella A1 capite allo stesso modo Questa è la persona 1 che è Luca Rossi età 30 questa qua è la cella A1 che ha nome a uno che ha colonna a riga 1 capite quindi utilizzando lo stesso tipo di sintassi lo stesso tipo
di ragionamento Excel VPA ci mette già a disposizione degli oggetti che oggetti Abbiamo ne parleremo meglio nel prossimo video vedremo il cosiddetto Excel object Model il modello degli oggetti di Excel quindi andiamo a capire Excel che oggetti ci dà con cui possiamo lavorare ma lo possiamo intuire colonne righe range Celle Celle attive fogli e quant'altro Non vado oltre perché altrimenti il video prossimo non serve assolutamente a niente e mi ripeto però dovreste aver capito l'andazzo cerchiamo di provare a tradurre quello che vediamo A schermo range A1 Quindi abbiamo questo oggetto che fa riferimento a range
A1 che è questa cella punto Select Questo è il metodo dell'oggetto range quindi sto dicendo ho l'oggetto range ma di range voglio solo A1 una volta che ho facciamo finta la mia persona a uno l'ho identificata cosa faccio Select ho trovato la cella e faccio punto Select si capisce perché Select vuol dire selezionare Quindi si capisce che Select è un metodo sto selezionando il Range A1 Se io facessi partire solo questa macro e fossi qua range ha uno Select andrebbe qua automaticamente perché in questa riga io gli ho detto range A1 Select selezionami il Range
A1 scendiamo sotto Active cell quindi la cella Attiva punto lasciate perdere questa proprietà è comunque una proprietà di cosa però della Cella attiva che è stata selezionata quindi la cella attiva in questo momento Qual è se ho selezionato A1 è A1 e ti dico che la Cella Attiva ha come valore uguale a cosa a Edoardo ed è esattamente come quando noi abbiamo preso il nome della persona vedete qua e l'abbiamo messo come Edoardo persona 1 punto nome è uguale a Edoardo cella attiva che in questo caso sarebbe potevamo scrivere come perché range A1 punto formula
r1c1 = Edoardo Ok range A2 Select me la selezioni e mi cambi il valore interno Ok stesso identico discorso se volessi provare a mandare a schermo il contenuto Della Cella vi faccio vedere faccio range A1 vado qua e poi parleremo di questa finestra punto Value Però in realtà qua è leggermente diverso vi spiegherò meglio Questa finestra più avanti visto che avendo Ehi mandami a schermo come se fosse una domanda Qual è il Range A1 di Value faccio invio mi dà Edoardo lasciate perdere il punto di domanda per ora chissenefrega ma il discorso è range A1
che è questa qua punto Value è una proprietà Qual è il Valore del range A1 e me lo sta rimandando quindi vuol dire che ogni cella cosa esattamente come la persona è come se la cella ha un valore non valore ma valore a magari routine colore di font a magari un colore di background ha Ad esempio la risposta se underline o meno sei italic o meno capite Quindi come l'oggetto cella ha tante proprietà allo stesso modo può essere selezionata Quindi potrebbe avere il cosiddetto Select va bene Quindi così dovrebbe Rendere molto di più l'idea andiamo
un attimo avanti sempre da qua range 1. Value mi ha dato il nome ma se io andassi a fare range A1 punto Value uguale a qwerty faccio così faccio invio Avete visto che è diventato qwerty perché perché qua non mi sono fatto mandare a schermo il valore ma lo riassegnato ho preso una proprietà e ho detto senti un po' questa proprietà adesso è uguale a qwerty è come se avesse preso persona uno nome e l'aria Segnata mentre invece quando ho fatto così col punto di domanda è come se io avessi fatto persona nome e l'avessi
mandata a schermo in questo caso nell'immediato scritto così ok Non concentratevi ancora sulla sintassi che sto usando qua che sto usando qua eccetera ci arriveremo quello che mi interessa è che imparate il concetto di oggetti il concetto di programmazione ad oggetti e il fatto che utilizziamo punto chiaramente per chiamare proprietà e Metodi di un oggetto un'altra cosa importante da far vedere quindi vi ho fatto vedere come richiamare un una proprietà vi ho fatto vedere come andare a sostituire una proprietà perfetto rifacciamolo vedete che qua è cambiato adesso vi faccio vedere come andare a chiamare un
valore Quindi se io vado qua in A1 faccio punto vedete che mi dà una serie di cose aggiuntive e alcune cose se sapete un po' l'inglese vi rendete conto subito che sono dei metodi perché Sono dei verbi ad esempio ad comment Quindi ad comment vuol dire Aggiungi un commento se io vado qua e posiziono il mio range su bypass vedete che sto strizzando questa cosa qua Ok vado qui invece e scrivo punto Select faccio invio vedete che me l'ha selezionato Quindi tutta la nostra programmazione ad oggetti in Excel vba si baserà letteralmente su oggetti già
presenti in Excel non li andremo a fare noi non abbiamo bisogno di crearci L'oggetto cella c'è già non avremo bisogno di Calci l'oggetto range Cioè già non abbiamo bisogno di crearci l'oggetto cella Attiva Cioè già non abbiamo bisogno di creare l'oggetto riga e colonna C'è già quello che dobbiamo imparare a fare è utilizzare e sapere quali sono le proprietà e i metodi quindi Ricordatevi Ci sono diversi tipi di oggetti a livello avanzati della programmazione ve li fate voi come ho fatto io persona ma qua in Excel essendo Excel già esistente non stiamo creando un programma
da zero ci stiamo lavorando quindi Excel ci fornisce già gli oggetti colonna riga cella foglio e quant'altro semplicemente noi andiamo a chiamare dei metodi andiamo a chiamare delle proprietà perché vogliamo sapere che cosa sono oppure le vogliamo sovrascrivere Questo è quello che faremo per tutto il tempo in vba va bene adesso che ve l'ho spiegato quello che leggete Qua dovrebbe essere molto più semplice Sto chiamando un metodo sto sovrascrivendo una proprietà metodo se fa schifo proprietà metodo proprietà ancora metodo poi cosa faccio Selection è la selezione quindi l'oggetto selezione prendo l'interior lì la parte interna
prendo il pattern e lo sovrascrivo prendo il pattern colon sovrascrivo stessa cosa sul font quindi prendo la proprietà font della selezione che ho fatto in questo caso range 1 vedete quindi il mio oggetto selezionato Ha un font e ne cambio il colore va bene quindi tutto quello che vediamo in questa macro Ma che vedrete anche nelle altre macro è esattamente la stessa cosa di cui abbiamo parlato su persona benissimo Io spero sia tutto chiaro nel prossimo video parliamo versione Excel object Model quindi vediamo un po' più nel dettaglio ciò che effettivamente Excel già ci fornisce
per lavorare in termini di oggetti Ci vediamo tra poco episodio 6 del corso di vba oggi Parliamo delle Excel object Model ovvero il modello degli oggetti di Excel abbiamo parlato degli oggetti abbiamo visto come Excel ci mette a disposizione una serie di oggetti Ma questi oggetti sono organizzati a livello gerarchico quelli che vedete in arancione sono ciò su cui ci concentreremo noi prevalentemente in questo corso e nell'episodio di oggi ce ne sarebbero altri qua sotto sotto worshit e sotto range In realtà abbiamo messi due Aggiuntivi solo a livello workbook giusto per darvi l'idea di quante
altre cose ci possono essere quindi per ora restate con questa parte arancione che vi spiego poi una volta che avete addosso qualche ora di Viba Se volete provare ad approfondire Vi basta scrivere Excel object model e riesce a documentazione ufficiale e B tantissime immagini che mostrano la gerarchia completa Allora se Noi cominciamo a vedere cosa sta in alto c'è L'applicazione è Excel vi faccio vedere vado qua nella finestra immediata metto il punto di domanda perché voglio che mi venga restituito un valore ok Quindi faccio application application punto name ricapitoliamo un attimo Intanto faccio invio application
è l'oggetto quindi come potrebbe essere una persona una macchina un libro quello che volete e sto chiedendo il nome dell'applicazione col punto di domanda nella finestra Immediata funziona solo qui Mi raccomando posso ottenere il valore parleremo meglio della finestra immediata nel prossimo video quando guarderemo l'interfaccia di vba editor va bene però restate così punto di domanda ottengo indietro un'informazione In questo caso vedete che è Microsoft Excel e Voi potreste dire eh Bravo Edo banana che che cosa ottengo da sta cosa qua Se vi ricordate nei primissimi episodi di questo corso io vi ho detto Che
Viba funziona per tutte le applicazioni Office 365 di conseguenza noi potremo andare a creare una macro che magari varia in base a dove ci troviamo Quindi in base all'applicazione oppure che potrebbe essere utilizzata su Multipla applicazioni Ma noi vogliamo che faccio il controllo Affinché si trovi solo su Excel o su Excel su Word giusto per fare un esempio quindi in certe casistiche magari un po' Al limite ci potrebbe interessare capire il nome Dell'applicazione e in questo caso ce l'abbiamo chiaramente non serve mandarlo a noi a schermo quello che ci interessa è che il nostro programma
sappia il nome e se è Excel faccio qualcos'altro non siamo ancora arrivati a quel punto di conoscenza della programmazione ma ci arriveremo quindi sotto l'applicazione che è tutta la schermata che vedete e anche di più ci sono sotto tre categorie e queste sono quelle complete nelle altre non le ho messe perché sono troppe Ma queste sono le categorie che effettivamente abbiamo application ed è workbooks quindi tutti i workbox aperti che sono i file Voi vedete che io qua sono su ex corso Excel vba Questo è un workbook va bene se andassi a aprire un altro
file lo chiamo Ciccio Pasticcio è un altro workbook quindi workbook Mi restituisce i World book aperti dopodiché abbiamo Windows Windows sono le finestre questo perché la finestra di Excel è una finestra ma anche la Finestra di Visual Basic è una finestra così come potremmo avere un'altra finestra se noi andiamo qua in Visualizza nuova finestra se io mi sposto vedete il workbook è uno vedete Ma le finestre sono due quindi workbook ne otterremo solo uno ovvero corse Excel vipa perché è l'unico aperto ma Windows ne otteniamo due va bene giusto per fare un esempio è tutto
fa parte dell'applicazione perché è l'applicazione di Excel che deve tener Traccia di tutta sta roba dopodiché abbiamo gli hard disk in realtà sono i componenti aggiuntivi vedete da qua Possiamo aggiungere dei componenti e chiaramente l'applicazione deve essere in grado di tenerne traccia Quindi come vedete l'applicazione gestisce tre cose andiamo però a prendere questi questi workbook Quindi abbiamo preso application name andiamo a prendere application work Books e da qua se io faccio partire ho un errore perché Perché quello che mi ritorna come potete vedere dalla S Se conoscete un pelino l'inglese ottengo qualcosa che è al
plurale quindi ottengo quella che si chiama una collection di workbooks va bene anche se dentro ce n'è uno solo è una collezione di workbox di conseguenza per andarlo a prendere e per chi programma questa cosa qua apro qua e tengo il tool Tip di suggerimento per chi programma questa cosa qua sarà un disastro perché Perché in vva molto Spesso tranne certi casi in cui vi andrò a notificare della cosa si parte a contare da uno ora le persone che non ho mai programmato mi direbbero Edo grazie a Sta cippa si parte contare da 1 in
realtà in programmazione come vedremo in altre situazioni si parte a contare da zero va bene quindi per chi programma questa cosa qua è un po' debilitante per chi non programma è assolutamente la norma quindi se noi vogliamo prendere il primo elemento dei workbox quale prendo Prendo l'uno vedete che qua mi chiede lindex quindi mi dice che workbooks default Index devo inserire l'indice se io ho una collezione di workbook fate caso che ho tre workbook aperti Voi capite che il primo aperto il primo è uno è l'indice 1 Il secondo è l'indice 2 e via discorrendo
E come ci tornano ci tornano come workbook come singolo workbook quindi application punto workbooks è una collezione di oggetti workbook va bene se io faccio così e Vado a fare su questo workbook quindi ne ottengo uno vedete ne sto tenendo uno ma se vado metto due non ne ottengo due sto tenendo il secondo workbook Quindi vado qui e faccio name vado di invio vedete o corse Excel Viba XL SM questa parte qua può essere un pelino tosta ricapitoliamo abbiamo l'oggetto application l'applicazione è può avere più workbook aperti ma Voi capite che i workbook sono tanti
singoli work che hanno tutti un nome noi con l'applicazione otteniamo un Insieme di warboku una collezione di workbook anche se è uno ma otteniamo una collezione prendo il primo che è l'unico prendo il nome e ottengo il nome Va bene quindi questo è warpus ma allo stesso modo potremo avere Windows e ad homs scendiamo nella piramide e quello che ci interessa Adesso sono i workshop shits Eccoli qua worksheet I work chips sono i fogli Quindi se il workbook era il nostro file la nostra cartella di lavoro in italiano diremo così i workshop sono I fogli
qua in basso come vedete foglio uno e foglio 2 quindi prendiamo il primo e mandiamo a schermo il name quindi stiamo aprendo il nome del World shit invio vedete che abbiamo foglio 1 vado a prendere il 2 ottengo foglio 2 ma io adesso vi prego vado a rinominarlo con qwerty e se faccio invio vado qua faccio invio vedete che ottengo questi qua non mi interessano sono i risultati di prima ricancello per dimostrarvelo vedete ottengo questi Quindi vedete come questa È una grande matriosca l'applicazione contiene i workbox i workbus contengono i workshop Cioè non è diverso
da ciò che noi effettivamente vediamo a schermo tutta l'applicazione si occupa di gestire le varie cartelle possiamo avere più cartelle aperte ogni cartella può avere più fogli ogni foglio ha più Celle e se andiamo a vedere da qua togliamo questi da qua posso andare a prendere il cosiddetto range che abbiamo già visto velocemente range se io prendo A1 Facciamo diciamo così proviamo a prendere il Value e ci dà vuoto Come mai ci dà vuoto perché siamo nel World shit 2 secondo su Word C1 e faccio invio ottengo application vedete Prova andare magari su A5 scrivo
qwertyssimo molto bene e se io vado qua su A5 e faccio invio improvvisamente ottengo qestissimo Quindi così stiamo accedendo alle proprietà dell'object Model Quindi questo è l'object Model ripeto può essere un pelo più complesso oltre a Workbooks abbiamo finestre e addon su workshit abbiamo altra roba nel workcit possiamo avere altre cose come i commenti possiamo avere le tabelle pivot e e quant'altro comunque alla fine è roba di logica perché se ci pensate quello che vedete a schermo lo traducete in codice e questo è il risultato però così col punto di domanda Abbiamo al momento fatto
riferimento abbiamo chiesto indietro dei dati ma se io volessi cambiare il valore di A5 vi Faccio vedere Value diventa da qua visto che è una stringa Ma poi ne parleremo cambio così Guardate sulla sinistra per favore faccio invio e vedete che ho scritto dentro quindi col punto di domanda stiamo chiedendo delle informazioni se togliamo il punto di domanda stiamo dicendo Ehi fammi questo Ehi Fammi quell'altro va bene chiaramente ogni parte di questo object Model Quindi ogni singolo oggetto ha più proprietà e metodi che possiamo Utilizzare al momento siamo andati diretti in questa matrioska ma vi
renderete conto che nel range possiamo fare più cose ad esempio se noi prendiamo il modulo 1 e torniamo su range vedete nessuno ci vieta qua di selezionare il Font quindi proviamo a farlo copiando da qua allora da A5 punto font punto film color Copiamo incollo faccio invio vedete che è stato colorato di arancione quindi che cosa abbiamo fatto abbiamo preso sempre la nostra Matrioska che vi ho spiegato Dopodiché che cosa ho fatto chiaramente siamo in una cella quindi la cella ha un font queste cose ripeto le vedremo pian piano ma se volete saltare il processo
vi Basta creare una macro che fa esattamente quello che vuoi vogliate faccia e studiate il codice anche quando sarete oltre questo corso andate avanti così se vi manca qualche proprietà Va bene comunque generalmente c'è l'intellissence che vi va a Suggerire quello che succede comunque font Abbiamo cambiato il colore e gli abbiamo messo il colore di 102 poi potremmo essere più specifici sul colore Però al di là di questo Avete visto il giro Ora Uno potrebbe dirmi giustamente intanto prendo un po' di spazio Uno potrebbe dirmi Ma Edo ma io per cambiare anche solo il valore
no o il Font o quell'altro che metto intanto Edoardo e faccio invio ma io per cambiare il valore di A5 devo ogni volta scrivere Tutto No perché Perché Excel è abbastanza capace di rendersi conto che in Che applicazione Siamo siamo in questa applicazione Noi siamo in Excel non dobbiamo scrivere ogni volta Perciò vi dimostro che se da Edoardo diventa Edoardo rerre faccio invio vedete che la sostituito allo stesso modo workbook siamo nel workbook aperto Quindi se io chiudo qua e metto qualcos'altro faccio invio vedete che è cambiato allo stesso modo in che work Ci siamo
Siamo in Questo workshop nel foglio 1 di conseguenza se vado sul range e cambio in numeri faccio i video vedete che cambia qua non lo cambia qui se adesso mi sposto faccio invio vedete che l'ha scritto qua Anzi magari facciamo qualcos'altro mettiamo solo punto esclamativo faccio invio non me l'ha messo sul foglio uno vedete quindi Excel è in grado di capire il contesto in cui ci troviamo mi dice ok In che applicazione sono Excel si vede è aperta Perfetto In che workbook sono nel workbook attivo Ne ho solo uno quindi il workbook attivo è questo
qua se avessi più cartella aperte chiaramente mi prenderebbe Quella su cui quali sono concentrato In che workshop sono beh qua sono su foglio 1 se mi sposto il World che diventa il qwerty va bene automaticamente il Range Beh a 5 a 5 non può sbagliare me lo prende così quindi Queste sono le super super super basi del Excel object Model adesso dovrebbe Essere un po' più chiaro come è costruito E perché utilizziamo gli oggetti per rappresentare qualcosa perché è un'applicazione è un oggetto applicazione è un'applicazione i fogli sono fogli la carta di lavoro è una
cartella di lavoro quindi non abbiamo altro modo per rappresentarlo questa idea di oggetti adesso dovrebbe essere un pelino più chiara Perché ci basta far riferimento all'oggetto e far riferimento alle sue proprietà e ai suoi Metodi per ottenere ciò che è vogliamo va bene prossimo video parliamo dell'editor episodio 7 del corso di vba oggi diamo velocemente uno sguardo al vivi editor Quindi questa finestra che abbiamo qua davanti e Che utilizzeremo di base per tutta la durata del corso Quindi come sempre quando abbiamo a che fare con software eccetera una delle primissime cose che faccio è cercare
di togliere quello che è l'impatto iniziale con una finestra che non sappiamo Esattamente cosa faccio abbiamo incominciato a lavorarci velocemente ma ci sono tante parti che ancora non abbiamo visto quindi velocemente vediamo un po' giusto per rendere il tutto più familiare e amichevole Allora innanzitutto abbiamo la nostra finestra dove scriviamo la macro qua scriviamo le nostre macro qua dentro c'è il codice che ci interessa vedete quindi questa è la cosa importante dopo perché sotto abbiamo la finestra immediata la Finestra immediata serve per come mi avete visto fare per eseguire righe di codice velocemente perché perché
la macro va fatta partire da qua quindi io devo scrivere il codice e poi farlo partire in certi casi come avete visto fare a livello dimostrativo è molto più comodo testare determinati comandi direttamente nella finestra immediata ottenere il risultato che ci interessa e poi eventualmente implementarlo nella macro perché questo alla fine è la macro Che effettivamente utilizziamo su Excel quindi poi bisogna farla partire o stopparla ci possono essere problemi eccetera qua non si può sbagliare abbiamo la nostra riga scriviamo quello che ci serve facciamo invio ad esempio andiamo qua come abbiamo già visto application punto
name faccio invio e ottengo il mio dato il punto di domanda indica che vogliamo ottenere indietro un dato Ma da cosa Da una proprietà quindi la proprietà in questo caso application Name mi viene restituita quando avevamo invece il Range se facciamo range A1 tranquillamente così range 1 punto Value faccio invio e non ottengo niente perché ho tolto tutto se torno qua faccio invio vedete che ottengo se invece tolgo il punto di domanda vuol dire che voglio assegnare un nuovo valore in questo caso valore che assegno È uno Ah sembra proprio il numero di telefono Facciamo
così in modo che nessuno che confonda invio vedete che ho cambiato il il Valore quindi punto di domanda per ottenere il valore senza appunto di domanda per modificare una proprietà oppure possiamo fare una cosa del genere andare proprio ad eseguire un metodo Come può essere Select vedete in questo caso l'ho selezionato direttamente riapriamo il nostro FB editor e questa è la finestra immediata se non l'avete da qua Visualizza finestra immediata ok altrimenti direttamente control G Perfetto Quindi abbiamo visto la Finestra Dove lavoriamo nelle macro e la finestra immediata dove vogliamo Testare le cose velocemente a
sinistra Abbiamo quello che è il nostro progetto vedete questo è tutto il nostro progetto corse Excel vba Appunto xlsm non potete sbagliare perché Perché il nome del progetto che abbiamo qua quindi questo vba Project è la nostra cartella di lavoro che è xlsm quindi con le macro di conseguenza possiamo scrivere in codice vba dentro Il vivi a Project abbiamo Microsoft Excel oggetti quindi i nostri oggetti abbiamo parlato dell'object model nel video precedente Queste sono gli oggetti che abbiamo all'interno abbiamo tutta la cartella di lavoro oppure abbiamo i vari fogli che cosa succede che quando premo
qua sotto compare qualcosa vedete in base a cosa sto premendo se è un modulo una cartella di lavoro o un foglio compaiono diverse proprietà che possiamo avere per ordine alfabetico o per Categoria è molto meglio averle per categoria perché se abbiamo veramente tanta roba qua ce le mette come varie tutte come varie ma in realtà in certe situazioni ce le dividerà effettivamente per categorie che hanno che hanno senso quindi per ora facciamolo alfabetico e queste proprietà sono le proprietà in questo caso della cartella di lavoro vedete che c'è il nome della cartella di lavoro che
è questo nome qua tasto destro Se ci fosse un rinomina lo farei Da qui in realtà lo posso fare solo qua dentro allo stesso modo il foglio vedete foglio 1 mi dà il nome del foglio qualcuno e poi abbiamo il nome del foglio 2 se io cambio qua il foglio 2 con foglio qwerty faccio io vedete come il nome qua del foglio è stato cambiato ma non il foglio effettivo che ho su Excel sono due cose totalmente diverse il quel nome là non è questo nome Dopodiché hanno tante altre cose come può essere esempio display
Right to left Quindi sapete che ci sono lingue e culture che Scrivono da destra a sinistra quindi possiamo abilitarlo con true Quindi ogni oggetto presenta una serie di proprietà che possiamo andare a modificare direttamente la quale Ad esempio se volete la password Se volete abilitarla la password se è salvato vedete Save può essere True o false eccetera eccetera e quindi questa è la zona delle proprietà abbiamo Poi ripeto il nostro singolo foglio quindi possiamo Scrivere le macro esclusivamente per questo foglio uno che è il foglio uno che vedete qua in basso Oppure possiamo scrivere solo
per il foglio qwerty Oppure possiamo scrivere macro che hanno effetto in tutta la cartella di lavoro va bene un'altra cosa che possiamo fare che è dove lavoreremo praticamente sempre è utilizzare i moduli Quindi questi moduli servono per dividere il codice perché noi potremmo mettere qua tutte le macro incartare di lavoro ma Sarebbe un disastro quindi utilizziamo i moduli per tra virgolette categorizzare le nostre macro pensate di avere tante macro ma veramente tante ma che avete costrizzato Modulo 1 e le macro che abbiamo creato prima la macro-8 che abbiamo creato tramite l'interfaccia Excel automaticamente finito nel
modulo e io qua posso cambiare il nome Se volete ho solo il nome che posso cambiare però il discorso è questo che di default le macro vengono inserite nel Modulo Poi noi possiamo cambiare la zona in cui devono avere effetto di conseguenza tutta la carta di lavoro solo il foglio qwerty solo il foglio 1 va bene però generalmente scriviamo nei moduli Perché Perché i moduli ci danno la possibilità di sotto dividere Quindi potremmo avere il modulo per la formattazione Quindi potremmo avere tante macro per la formattazione formattami la tabella formatemi la tabella in modo futuristico
formatemi la Tabella in modo classico oppure formattami il testo poi potremmo avere il modulo della pulizia dei dati Toglimi tutto ciò che è doppio Toglimi tutto ciò che è vuoto Toglimi eccetera eccetera Ok Quindi questi sono i discorsi dei moduli e di base buona parte del abbiamo visto credo siano i cinque Sesti se non di più dell'editor andiamo qua in alto lasciate perdere la barra qua in alto non ci interessa abbiamo la barra veloce barra veloce se faccio così vedete con questo Tastino si capisce c'è XL Visualizza XL Qua invece possiamo inserire un form se
premiamo qua Se invece premiamo sulla freccetta possiamo inserire un nuovo modulo Vedete un modulo di base o una routine direttamente la routine è la macro per intenderci Quindi tutte ste cose qua poi parleremo più avanti Qua abbiamo il tasto Salva quindi per salvare velocemente poi abbiamo copia incolla trova va indietro e avanti Esegui una macro Dei pompieri Ripristina e altre funzionalità che adesso saltiamo forse questo può essere interessante visualizzatore oggetti stiamo vedendo quella che è la documentazione si capisce veramente veramente poco però se scendiamo a prendere application vedete che ci dà tutti quelli che sono
le proprietà e i metodi di application da qua possiamo andare magari su worksheet work shit Eccolo qua worshit sepremo Abbiamo tutto ciò legato al worship Questo tipo di documentazione A me non piace è brutto È vecchio Non si capisce niente quando vi dicevo nei primi episodi che è o forse nel secondo che si tratta vedete di una finestra su cui non è stato veramente messo tanto amore chiaramente Excel effettivamente l'applicazione è utilizzata da molte più persone rispetto a vba di conseguenza danno sempre tanto peso qua investono sul design la grafica eccetera mentre invece la zona
VPA è lasciata un po' Stessa da un po' di tempo Ok quindi piuttosto che guardare qua Se non vi piace Guardate la documentazione online che sicuramente è molto più leggibile Torniamo sul codice premo qui e torno sul codice dopo che abbiamo il menù menù direi abbastanza semplice Andiamo su File Salvo che la stessa cosa che potevo fare qua sotto dopodiché abbiamo in porta esporta chi se ne frega posso rimuovere il modulo posso modificarla andare avanti e indietro incolla Eccetera eccetera Insomma son cose direi abbastanza abbastanza chiare Visualizza Dove possiamo visualizzare altre finestre quindi finestre immediata
Nel caso non Ce l'avessimo la Vado a chiudere io vado qua Visualizza finestra immediata vedete che mi compare allo stesso modo potrei far comparire variabili locali e pure anche espressioni di controllo al momento queste cose non ci servono però sapete che da Visualizza possiamo mostrare roba Aggiuntiva possiamo cambiare la barra degli strumenti e quant'altro su Inserisci le stesse cose che avevamo qua vicino ad Excel andiamo avanti formato vedete che è tutto ingrigento questo ci servirà per quando faremo roba grafica effettivamente bug al momento non ci interessa il debug però per fare i vari test Esegui
Esegui di base vogliamo eseguire un form o una macro possiamo interrompere o ripartire da capo quindi cose che abbiamo già qua Inutile passare da qua in alto Oltre al fatto che se vedete hanno anche le le Shortcut quindi le scorse hotel da tastiera strumenti la cosa che ci interessa possono essere le opzioni qua potete modificare l'editor potete formattare Quindi se non vedete bene cambiate il testo il grassetto eccetera le finestre che volete ancorate e poi l'editor se vogliamo la tabulazione la tabulazione sono gli spazi bianchi di rientro vedete quindi possiamo Modificare gli spazi possiamo chiedere
di controllare il codice in un certo modo vogliamo dichiarazioni delle variabili obbligatorie cose che vedremo più avanti comunque da qua possiamo gestire le opzioni del nostro editor eventuale aggiunte che non ci interessa e la finestra come le volete impostare al momento tutto così se volete sperimentare sperimentate ma per quello che dobbiamo fare noi direi che siamo a posto quindi questa era un introduzione All'editor adesso dovrebbe essere tutto molto più chiaro quindi quello che sembrava un brutto editor confusionario è un brutto editor un po' più chiaro va bene perché è brutto È brutto non possiamo dir
niente però adesso è un po' più chiaro sappiamo che cosa stiamo per fare anche se non sappiamo ancora come farlo noi proseguiamo e nel prossimo video scriviamo la nostra prima macro a mano Per ora abbiamo utilizzato l'aiuto prossimo giro lo facciamo a mano Episodio 8 del corso di vba oggi ci dedichiamo a creare la nostra prima macro a mano è importante perché non avremo sempre la possibilità Anzi Cioè abbiamo sempre la possibilità di registrare prima la macro però perché passare dalla macro registrarla e chiudere quando ci basta scrivere letteralmente due cosine per crearla per scrivere
queste due cosine dobbiamo essere in grado di sapere che cosa serve è molto più facile partiamo da Sab Mettiamo il nome della Macro in questo caso macro prova apriamo qua le due parentesi e chiudiamo vedete Automaticamente mi ha chiuso con ensab non ho dovuto fare niente Ho solo fatto invio adesso quello che vogliamo fare magari un bel Tab per rientrare di uno e leggere meglio Vogliamo fare qualcosa quello che andiamo a fare è banalmente selezionare una cella eh e inserire un valore e magari cambiare colore font e quant'altro non facciamo niente di che Ma è
giusto per prendere un po' dimestichezza comunque una macro tendenzialmente è questo se io salvo e vado a vedere la lista macro o macro di prova anche se non fa assolutamente niente Abbiamo già creato una macro dovete essere orgogliosi scrivendo due righe Anzi una perché l'altra ce l'ha completata lui abbiamo già creato una macro Quindi adesso cominciamo e partiamo molto semplicemente con un range a 1 visto che siamo lontani punto Select benissimo prima di passare oltre facciamo Facciamo partire e vedete che c'è la selezionata benissimo quindi prima parte funziona quello che stiamo facendo è un test
singolo singolo per ogni riga giusto per vedere se stiamo scrivendo bene ma in realtà molte cose tipo il Select lo potevate scrivere qua nell'immediata e vedere se funzionava quindi lo scrivevate qua facevate in via eravate apposta Invece qua dovete scrivere e poi dovete far partire qua ma Dovevate creare la macro eccetera Ok quindi partiamo dalla nostra Selection punto Value uguale e dentro mettiamo Edoardo chiudo faccio partire e vedete quindi che cosa ho fatto ho preso perché al momento non conosciamo le variabili né niente quindi non sappiamo come tenere traccia di questo per cambiare il valore
o passavo Direttamente da qua senza fare il Select vi faccio vedere avrei potuto fare così cancello e faccio ripartire vedete stesso discorso ma in Certe situazioni intanto sto facendo contro Z per tornare indietro vogliamo proprio selezionare cella per cella ci sarà una situazione in cui sappiamo effettivamente selezionare la cella Io sto facendo le cose un po' più ampie Giusto per tirare il tempo e permetterci di scrivere un po' più righe ok Al momento molti di queste cose le virgolette eccetera Sono cose che non sapete ancora però più Passiamo tempo a scriverle poi quando ve le
spiego Ah ok Ecco perché è così ma in realtà peggio è rimasto in memoria Comunque col nostro Selection punto Value abbiamo cambiato Ora potremo fare Selection punto font punto color uguale metto VB Red che impareremo più avanti a utilizzare i colori faccio partire vedete che mi ha cambiato quindi torno un attimo indietro mi riposiziono qua Faccio ripartire la Macro si è riposizionata su uno mi ha scritto dentro Edoardo e mi ha cambiato il colore del font in rosso Vorrei Aggiungere un'altra cosa Giusto perché per ora l'unica cosa che abbiamo fatto è selezionare Quindi abbiamo utilizzato
il metodo Seleziona ma il metodo Seleziona non richiede niente vorrei utilizzare un metodo un un pochino più difficile ed è il metodo ad comment Quindi riprendiamo la nostra Selection e voglio aggiungere un commento e vedrete subito Che cos'è un commento se non sapete che cosa sia faccio Selection punto ad comment punto e intcomment mi basta mettere dentro Quello che è il testo potete scriverlo così se arrivate dalla programmazione e mettere dentro il testo che volete Ciao sono un commento in realtà vi piace da anche la possibilità di non scrivere le parentesi averlo così se io
faccio invio vedete che è comparso qua un triangolino e questo è il nostro commento parliamo più nel dettaglio dei metodi con parametri eccetera quindi questa è la nostra prima macro proviamo a farne un'altra andiamo qua e facciamo sub eh Macro qwerty molto bene come facciamo molto semplice invio mela già chiusa intanto qua tolgo tutto commento compreso vado qua Elimina nota ho la mia macro qwerty e qua dentro voglio dobbiamo fare range sempre A1 sempre a 1 però a questo punto lavori in modo diverso anziché selezionarla faccio punto Value vado qua e metto Giacomo Dopodiché mi
sposto prendo ancora il Range magari copiamolo a sto giro vado qua Ranger 1 punto Vertical onlinement Uguale XL anziché Vertical facciamo orizzontal orizzontal aliment XL Right mi metto qua faccio partire e vedete Automaticamente mi ha cambiato il valore e mi ha messo l'allineamento a destra chiaramente Avete visto che mi ha eseguito questa e non questa perché perché ero qua dentro col cursore vedete ero qui e poi ho fatto partire se invece mi metto qua in alto e faccio partire vedete che mi ha cambiato il contenuto della Cella chiaramente non posso fare Contro Z Ve l'ho
già detto Quindi se utilizziamo le macro Ricordatevi che non possiamo possiamo andare a far contro Z dobbiamo tornare indietro a mano quindi dobbiamo ripulire ciò che abbiamo fatto io mi riposiziono qua sulla seconda faccio partire ed è partita la seconda macro quindi possiamo avere nel nostro file Quante macro vogliamo se vogliamo suddividerle per moduli logici possiamo farlo come vedete è molto semplice creare una macro ci basta ricapitoliamo Avere Sab che indica la macro è una parola chiave importante che indica il blocco della macro vedete che è tutto a blocchi praticamente Ops Ho fatto il danno
abbiamo Sab macro bellissima una volta che noi chiudiamo abbiamo già la nostra macro se io salvo vado a vedere come vi ho mostrato in precedenza vedete che ce l'ha già mostrata quindi la macro È già disponibile Poi ci saranno modi per nasconderla Se vogliamo che l'utente non possa visionarla eccetera Questo è Un altro paio di maniche quindi Così abbiamo la nostra macro da qua in poi Cominciate a scrivere codice al prossimo video parliamo dei commenti vi ricordate le righe Verdi le vediamo tra poco l'episodio 9 del corso di vba oggi parliamo dei commenti sembra stupido
l'idea di commentare il codice ma in realtà ci sono dietro una serie di motivazioni e ci soprattutto ci sono metodi diversi per farlo allora cominciamo dalla cosa più semplice che Cos'è un commento un commento è una riga di codice che non viene letta dal programma vi faccio vedere se io sono qui e scrivo range A1 Value faccio così punto Value uguale a Carlo Perfetto faccio partire questa bellissima macro sono a posto quindi tutto ciò che c'è scritto qua dentro viene eletto che cosa succede che se vado a mettere un commento e scrivo ad esempio sempre
range A1 chiudo virgolette punto velio uguale nonna e questa qua per ora la Togliamo vedete che è diventato verde fine perché Perché indica un commento Se io faccio partire mi metto proprio qua sulla riga faccio partire non succede niente continua a fare Play non succede niente quindi i commenti sono righe che vengono saltate dal da vba praticamente non le legge dice ok sono commenti non mi interessano allo stesso modo Fatemi commentare un attimo qua io posso scrivere ciao Sono Edo molto bene È un commento faccio partire non succede Niente ma se scrivo Ciao Sono Edo
qua dentro faccio partire ho un problema vedete perché perché qua dentro vi piace Ok è un commento sta scrivendo quello che vuole può anche dar di matto chissenefrega qua dentro mi dice Way io sta roba qua non la conosco cioè questa sarebbe una procedura A me non sembra quindi i commenti sono letteralmente righe che non vengono riconosciute dal programma cioè vengono riconosciute come commenti vengono saltati a cosa possono Servi i commenti Beh innanzitutto i commenti possono servire a noi stessi e a persone che lavorano con noi per dire sto facendo questo sto facendo quest'altro ad
esempio Innanzitutto diamo nomi seri alle macro macro bellissima è un nome osceno è ridicolo e ed è poco professionale quindi dovremmo avere il nome che spiega formattazione Heather tabella formattazione righe tabella già il nome deve essere di per sé eloquente di ciò che sta per Succedere in primis In secondo luogo Abbiamo comunque delle macro che possono essere abbastanza lunghe Oppure vogliamo spiegarla macro qua in alto quindi i commenti ci permettono di spiegare che cosa stiamo facendo poniamo il caso che questa non sia semplicemente un range non e un range Carlo Ma si tratta di qualcosa
di un po' più complesso e io dico qui vado a prendere i valori Dopodiché vado a capo o altre 10 righe e scrivo qua vado a Adattare vado a formattare di conseguenza quando poi tornerò a leggere il codice più avanti pensate tra una settimana tre mesi o quello che è anche se non mi ricordo più il progetto perché un conto è se ci lavorate tutti i giorni è facile Ricordarsi che cosa stiamo facendo se ci lavoriamo tutti i giorni ma una volta che con la mente siamo su altro e dobbiamo tornare non è così facile
ricordarsi riusciamo a leggere il codice Ma magari diciamo che ma perché Abbiamo fatto questo ma perché abbiamo fatto così poi magari siamo anche migliorati quindi il codice è anche cambiato nel frattempo scriviamo in modo diverso quindi uno col commento dice ok Questa è una macro che fa cose bellissime il nome dovrebbe essere sul pezzo Okay qua vado a prendere i valori in realtà li sto andando semplicemente a modificare Ma giusto per fare un esempio qua vado a formattare qua Faccio schifo eccetera eccetera quindi i commenti Servono a noi Innanzitutto per capire che cosa sta succedendo
se ci torniamo più avanti nel tempo per il futuro noi vedete i commenti come un qualcosa per il futuro noi se facciamo bene Ho fatto adesso quando ci torniamo uno dice Ah Bravo Edo come hai elaborato bene ti ringrazio ma se invece non scriviamo le cose giuste non mi sono a caso eccetera eccetera no commenti Uno torna dice Ma chi è che ha fatto sto lavoro qua da imbecille Ah Io bene Benissimo Bravo Edo Continua a lavorare così quindi sono due approcci totalmente diversi noi vogliamo semplifica cioè scrivere il commento adesso non ci costa niente
ma ci semplifica la vita di 10 20 30 minuti quando ci dovremo tornare non scrivere invece il commento adesso ci salva 10 secondi ma poi ce ne farà perdere 30 di minuti quando torneremo va bene quindi questo è per noi in secondo luogo il commento è per le altre persone quindi pensate se altra gente deve cambiare il Vostro codice o magari lavorate per qualcuno cambiate lavoro qualcuno entra al vostro posto Se avete fatto un buon lavoro la persona arriva e chiaramente una persona anche con un po' di skill arriva dice Ah ok macro che è
formata la le colonne tabella Perfetto Quindi so che è questa poi qua vado a prendere i valori eccellente Bravo quindi fa questo qui ok Certo poi qua vado a formattare Bene bravissimo Se invece voi lasciate il codice scritto a vanvera così che non Si capisce niente la persona avrà difficoltà quindi la stessa cosa che succedeva a voi può succedere all'altra persona la differenza che l'altra persona che arriva o chi collabora con voi non sa come ragionate voi voi scrivete il vostro codice o magari qualcuno scrive in modo diverso quindi non perde magari 30 minuti ma
perde il tuo o tre ore Capite Sono ore produttive quindi i commenti possono servire a questo come si fanno i commenti lo Vedete si fanno con il singolo Apice non importa dove io vada se metto il singolo Apice sto commentando vedete Bam ovunque io vada è un commento e Uno potrebbe dirmi Edo Ma se volessi commentare più righe insieme nessun problema non possiamo però farlo a mano cioè non possiamo prendere così e mettere questo vedete che non funziona come possiamo formattare velocemente Allora andiamo su modifica Visualizza bar degli strumenti Andiamo Su modifica e prendiamo rete
questa barra aggiuntiva e la piazziamo qua nella barra appunto degli strumenti e quello che ci interessa è commento e Rimuovi commento se vado qua e faccio commento Bam rimuovo commento Uno potrebbe dire a Ma se commento e poi ripremo me lo toglie No non funziona così più continua a premere prima aggiunge commenti quindi cioè commento e Rimuovi commento le sue vieta di commentare velocemente così e poi Commentare togliendo voi direttamente l'apice è solo per far vedere che se volete commentare più righe di codice Prendete tutto TAC commenta e siete a posto Altrimenti vi dovete mettere
voi a mano a fare Apice Apice Apice Apice ora che abbiamo visto cosa sono cosa servono e come si fanno vi do giusto un'altra piccola Chicca che se non avete mai programmato non potrete sicuramente sapere i commenti sono ottimi per rimuovere temporaneamente una riga di Codice dall'essere stata eseguita Mi spiego meglio poi vedete che io qua Faccio determinate cose giusto Ho il mio range inserisco il valore e quant'altro ma poniamo il caso che io vada a cambiare il Font Quindi anziché scrivere non e Carlo scrivo nonna e cambio il Font va bene quindi faccio partire
perfetto poniamo il caso che però quello che abbiamo scritto non è questa semplice riga è qualcosa di un po' più complesso e vogliamo testarla Ah mi dà Errore o non capisco cosa succede a livello logico sto impazzendo perché scrive nonno anziché nonna non si capisce va bene Qua è semplicemente un valore visibile perciò capiamo se abbiamo sbagliato ma voi pensate a tante righe di codice per andare ad ebaggare velocemente senza impazzire Uno potrebbe dire sai cosa c'è intanto qua cancello e cambio anche qui perché se no mi resta rosso sai cosa c'è Fammi un attimo
commentare questa riga e vedere se non Si spacca il codice da qua Faccio Play e vedete che ho cambiato il Range 3 quindi A3 mi ha scritto Nonna ma non mi ha commentato Ma non mi ha messo il cioccolato rosso va bene perché Perché il commento ha tolto questa riga dall'essere seguita Ok non era questa riga è tutto a posto Bon son così faccio ripartire la scritta No Nella messo in rosso Quindi il commento oltre che essere utile per noi stessi del futuro e altre persone che lavorano con noi o chi Verrà dopo di noi
sono anche utili per velocemente andare a togliere macro righe di codice eccetera eccetera va bene quindi questo è quanto nel prossimo video parliamo nel dettaglio dei metodi Ci vediamo tra poco episodio 10 del corso di vba oggi voglio prendere un po' di tempo per parlare nel dettaglio dei metodi che arriva dalla programmazione potrebbe dirmi Edo nemmeno abbiamo visto le variabili in vba e già mi parli dei metodi il discorso è molto semplice che Se ne apriamo il codice che abbiamo già scritto e vedete che di variabili al momento noi non abbiamo scritte non abbiamo creato
niente di nuovo abbiamo usato proprietà e metodi Quindi quello che voglio fare oggi è spiegarvi prima i metodi perché noi possiamo già usarli Adesso anche senza saperle variabili e possono essere abbastanza complessi Quindi prima Vediamo i metodi E poi cominceremo con la classica trafila che si fa quando si impara un nuovo Linguaggio di programmazione Però partiamo dai metodi Appunto perché già li abbiamo a disposizione quindi è diversa la cosa rispetto ad altri linguaggi perché già li possiamo utilizzare sono già presenti nelle macro che abbiamo fatto vado su foglio 1 giusto per non avere niente qua
e vi voglio spiegare i metodi Allora possiamo identificare diversi tipi di metodi possiamo identificare metodi senza parametri quindi metodi che li chiamiamo E fanno quello che devono fare e basta metodi con un parametro o metodi con più parametri Allora è importante perché per ognuna di queste casistiche c'è un tipo di sintassi diverse soprattutto quello su cui mi voglio concentrare è l'intellisenso ovvero i suggerimenti che Viba ci dà quindi la parte importante è quella una volta che sappiamo decifrare quella parte lì adesso La vedrete in realtà sapete gestire già tutti i metodi che vi possono può
capitare su Viba Quindi cominciamo Innanzitutto con un metodo vuoto quindi chiamiamo il metodo e fa la sua azione e basta In questo caso range di A1 molto bene Faccio punto Select se faccio così faccio invio vedete che mi ha selezionato A1 non mi ha chiesto niente Se faccio spazio vedete che non mi suggerisce niente a differenza di range guardate qua range faccio range apro vedete che mi suggerisce roba Questa è un'intellisense questo piccolo tool Tip giallo ci va a Descrivere quello che vuole Va bene quindi range e qua dentro ci chiede utilizziamo range che ci
aiuta tanto Più che altro perché ci dà tutte le basi per capire che cosa ci serve Allora vedete cell 1 e cell 2 questo perché un range è formato da una cella o più Celle Ma le celle in Excel cioè Il range da cosa parte parte dalla cella principale e arriva fino alla cella finale se io voglio prendere questo range qua da A1 a b13 Quindi vado qua e ve lo faccio Vedere da A1 a b13 vedete di conseguenza prende tutto se io faccio da A1 a 13 da A1 a D1 da A1 a D9
quindi la selezione sarà sempre rettangolare o eventualmente quadrata Dipende se prendete la giusta quantità di Celle Comunque al di là di questo discorso è che la selezione sarà sempre rettangolare con una cella iniziale e una cella finale di conseguenza voi potete capire bene che se io torno qui torno sul mio range ci chiede una cella obbligatoria Cioè tu Non puoi selezionare una cella E non dirmi la cella che vuoi quindi la prima cella vedete che non è tra parentesi cioè range parentesi e poi cell 1 virgola e tra parentesi quadra sia il 2 chiusa parentesi
tonda sicuramente si tonda l'abbiamo già visto è questa qua praticamente Ok ma Sell uno vedete che se è uno non è in parentesi vuol dire che è obbligatoria come cosa Essendo obbligatoria dobbiamo per forza metterla altrimenti ci darà errore quindi se io Faccio così ne faccio punto Select e faccio invio vedete che mi dà errore e mi dice argomento non facoltativa adesso dobbiamo parlare di argomenti e parametri argomento non facoltativo quindi devo inserire per forza almeno una cella a uno punto Select Ma se io torno qua e vi faccio vedere la cella 2 è facoltativa
perché è tra parentesi quadre facoltativo vuol dire che io possono mettere Avete visto che io ho scritto solo a uno e me l'ha data buona Ma se io vado a mettere cella A1 virgola vedete improvvisamente è diventato in grassetto cella 2 Allora posso dire B cos'è b13 facciamo B 13 benissimo andiamo di Select e se faccio invio vedete che mi ha preso tutto il Range quindi la parte fondamentale che dovete imparare a decifrare è questo tool Tip che vedete i parametri senza parentesi quadre Sono obbligatori va bene i parametri con le parentesi quadre sono opzionali
possono non esserci noi però Abbiamo parlato di parametri argomenti Cioè qua io ho detto parametro però quando poi emanato a schermo così punto Select metto che manca un argomento Allora lasciamo un attimo da parte questo discorso ma tenete a mente parametri e argomenti andiamo avanti Quindi abbiamo visto che c'è Select Select è un metodo vuoto perché io ho semplicemente indicato quello che voglio e lui me l'ha preso senza far storie vedete ora potrei farvi vedere un altro Metodo ad esempio ad comment che abbiamo già visto quindi ad comment io vado qua e vedete potrei anche
fare spazio non dovete per forza mettere in questo caso le parentesi potete anche fare solo spazio tutte le parentesi per chi arriva dalla programmazione che è una roba che noi facciamo io mi trovo meglio con le parentesi Ma qua di base non te le vuole far usare conseguenza alla lunga ci si abitua Comunque ormai vi ho insegnato Come leggere il tultip quindi dovreste capire che ad comment È un metodo perché è tra parentesi ed entro a una proprietà text che però essendo tra parentesi quadre è opzionale vedete quindi essendo opzionale Io posso anche non metterla
vi faccio vedere che guardate qua in alto per favore Ok tolgo la selezione Ma se io faccio ad comment come ho fatto Select e faccio invio vedete che me l'ha aggiunto il commento vuoto se io invece non commento vuoto ma aggiungo del testo E il testo va tra virgolette ormai dovreste averlo notato anche se non ve l'ho ancora spiegato scrivo Ciao sono un commento io faccio invio togliamo qua la nota riposizioniamoci faccio invio e vedete che abbiamo aggiunto un nuovo commento con Ciao sono un commento quindi che cosa abbiamo appena imparato Abbiamo appena imparato che
questo ad comment ci chiede un parametro che però è opzionale va bene quindi possiamo metterlo come Non metterlo perché perché tra parentesi quadre ritorniamo un attimo sul discorso di parametri e argomenti di base sono la stessa cosa parametri argomenti sono la stessa cosa Semplicemente cambia il verso in cui i parametri argomenti vengono intesi il parametro è ciò che ci viene indicato qua nel nell'intellisense nella documentazione quindi mi dice che ad comment vuole come parametro text va bene quindi ad comment è una funzione che accetta un parametro opzionale Vedete che è tra parentesi quadra Quindi è
un parametro ed è opzionale Quando io vado a fornire un valore per quel parametro sto fornendo un argomento Ok il parametro è un'idea l'argomento è la cosa effettiva esempio più banale poniamo il caso di avere una funzione range 1 fai pasta in questo caso non era ingiuno ma potrebbe essere una persona Va bene quindi anziché range facciamo persona Edo qualcuno mi dice Edo fai pasta io però vi chiedo due parametri va Bene che possa essere opzionali obbligatori fate quello che volete Quindi ve lo scrivo così io vi chiedo il tipo di pasta e poi vi
chiedo il sugo Okay di conseguenza io visto che rendo due parametri il parametro è il tipo di pasta e il sugo l'argomento quando una persona poi mi chiama e mi dà la roba mi darà come argomento fusilli e poi per il sugo mi dirà pomodoro banale Ok Quindi il parametro è la richiesta teorica l'argomento è Un valore effettivo che viene fornito ok È una distinzione che alla lunga si impara se programmate Cioè vi servirà perché comunque dobbiamo capire se Dobbiamo distinguere il parametro dagli argomenti per ora siete All'inizio se chiamate tutto parametri o tutto argomenti
a me non me ne frega niente Tanto alla lunga più lo utilizzate più si sedimenta come cosa in modo corretto perciò non non impazziteci Però in realtà secondo me con questo esempio ci Dovrebbe essere capito molto bene Andiamo avanti e parliamo di metodi con più parametri in questo caso vi ho fatto un esempio con più parametri non era vuoto anche se erano opzionali quindi uno Poteva dirmi fai i pasti e facevo quello che volevo oppure potevo semplicemente chiedervi un parametro come l'hardcomment in questo caso però con fai pasta abbiamo chiesto due quindi è un metodo
con più parametri andiamo a prendere però uno reale di di Excel ad Esempio range magari non Edo Scusatemi facciamo b10 e andiamo a mettere punto pasted Special Space Special altro non è che li incolla valori speciali vi faccio vedere se io vado qua e copio e incollo vedete che io posso scegliere una serie di valori che posso incollare solo i valori solo la formula solo la formattazione posso mettere solo il risultato della formula Insomma ci sono un po' di cose che io posso andare a fare ad esempio vado qua Su valori e vedete che mi
ha preso solo il valore Pest Special è ciò che succede dietro la tenda Quando faccio una cosa del genere effettivamente in Excel e se andiamo a vedere pace Special giustamente non me lo prende Perché Perché ho messo qua a persona Mannaggia a me non mi suggerisce niente taste Special vado qua e vedete ormai dovreste saperlo leggere ci dà una serie di parametri opzionali e le vite che sono tutti opzionali perché sono tutti tra Parentesi quadre e io vi dimostro che sono opzionali perché se io prendo b10 Ok vedete dov'è b10 qua Questo è b10 e
io copio Quindi ho fatto contro il c o tasto destro copia Ma io vado qua e faccio invio vedete che automaticamente me l'ha copiato questo perché Space Special prende quello che avete già copiato voi quello che già nella Clipboard del vostro computer e lo va a copiare quindi control c basta e avanza se vogliamo far di più In realtà Possiamo farlo utilizzando i parametri speciali Quindi da qua vedete che abbiamo pasted es e qua ci chiede un tipo di peste e qua ci dà le varie opzioni quindi il parametro è paste noi potremmo andare a
mettere i valori in sequenza come vi ho fatto vedere per la pasta che mi avete dato ad esempio fusilli e poi mi avete detto pomodoro Però in realtà così vuol dire mettere i parametri semplicemente in ordine ma se ci sono più parametri e andiamo in Ordine e uno lo vogliamo saltare Dobbiamo ricordarci di metterlo vuoto e non è questo modo la cosa migliore da fare quando si hanno più parametri vedete che sono tutti nominati vedete che abbiamo paste Operation abbiamo Skip planks e transpose possiamo fare direttamente riferimento a quei parametri vi faccio vedere Allora intanto
tolgo qui nessun riempimento e tolgo la nota io copio questo e vi faccio vedere che vado a chiamare il Parametro non mettendolo in ordine ma chiamandolo col proprio nome il parametro vediamolo insieme è palest quindi faccio pace vedete due punti Uguale nel momento in cui faccio due punti uguale mi compaiono tutte le alternative e io voglio copiare esclusivamente i commenti vedete peste Ho chiamato il parametro paste che è incolla e mi ha dato delle alternative prefissate da Excel ok Quindi questa alternativa è fanno parte di x-xl xl si Legge ex che guarda caso il programma
su cui stiamo lavorando Excel paste Type Che tipo di taste vuoi fare e abbiamo la lista e io ho scelto paste comment che se ci fate caso sono le opzioni che abbiamo quando incolliamo direttamente da Excel se io vado qua e faccio invio vedete che in b10 mi ha copiato esclusivamente il commento perché io ho preso il parametro pasted e come argomento e l'ho proprio nominato Non l'ho messo come abbiamo fatto per la Pasta giusto in ordine No gli ho detto pasted E gli ho messo quello che è il suo valore quindi questo vuol dire
che se li nominiamo possiamo anche invertirli perché se noi non avessimo nominato fusilli e pomodoro io davo per scontato che fusilli era il tipo di pasta e pomodori sugo ma se voi aveste fatto una cosa del genere pomodoro e fusilli senza nominarli e io fossi scemo come un computer io avrei pensato Ok tipo di pasta pomodoro e avrei detto poi Sugo fusilli di conseguenza io che sono stupido come un computer avrei cercato il tipo di pasta pomodoro ha ricercato il sugo fusilli quando poi tornate a casa a Edo Allora cosa si mangia oggi è tutto
pronto Eh no ma io la pasta di tipo pomodoro non l'ho trovata e neanche il sugo di tipo fusilli invece andando a nominare i parametri così poi mi ditego due punti uguale pomodoro e poi tipo di pasta due punti uguale fusilli non importa come me lo mettete Io capisco Ok Che poi noi siamo esseri umani e capisco che se mite pomodoro il sughero e la pasta è un altro paio di maniche Ma noi siamo più intelligenti dei computer è un calcolo che facciamo in mezzo secondo nella nostra testa I computer non sono così intelligenti Per
quanto possa sembrare sono veloce a fare i calcoli ma non sono bravi a interpretare di conseguenza utilizziamo questi parametri nominali per far capire in qualsiasi ordine a che cosa ci stiamo riferendo Quindi non importa se invertite l'ordine finché voi date il nome al parametro ve la cavate Quindi questa era l'i attenzione ai metodi adesso sapete cosa sono i metodi abbiamo metodi vuoti metodi con uno o più parametri i parametri possono essere obbligatori oppure opzionali e soprattutto sappiamo leggere l'intellisense qua la documentazione Perché lo stesso modo verrà utilizzato nella documentazione ufficiale quindi Una volta che sapete
leggere questa cosa qua Quantomeno per le parentesi e il nome dei parametri in realtà avete fatto il 90% del lavoro della documentazione di dvba quindi per oggi è tutto nel prossimo episodio Parliamo delle variabili si comincia effettivamente a programmare Ci vediamo tra poco episodio 11 del corso di vba oggi cominciamo la sezione dedicata effettivamente alla programmazione e Cominciamo dalle variabili Allora partiamo molto molto Semplice Innanzitutto creiamo la nostra Saab prova macro va assolutamente bene ed entro cominciamo a creare delle variabili e capire effettivamente cosa sono numero 1 Allora Cominciate a vedere una variabile come se
fosse una scatoletta di memoria in cui andiamo a inserire dentro un valore questo valore lo possiamo richiamare ovunque ci possa interessare mi spiego meglio io vado a creare la mia variabile cognome e la metto uguale a Rossi ad esempio Ok se Poi vado a fare debug Adesso ve lo spiego te bug punto Print di cognome faccio F5 vedete che qua sotto ottengo Rossi che cosa ho appena fatto Innanzitutto The Bug punto Print vuol dire debug Quindi dentro questa finestra punto Print Mi stampi mi mandi a schermo cognome ma cognome non mi manda a schermo la
parola cognome Se invece io avessi scritto una cosa del genere adesso ci arriviamo mi avrebbe scritto cognome ma avendo fatto riferimento io a Cognome esiste nella memoria di questo programma ed è questa scatoletta contenente Rossi va bene di conseguenza Lui dice Ah de suggerimento di cognome Io ho una scatoletta che si chiama cognome e dentro c'è Rossi Pensate ad un pacchetto Amazon che vi arriva il pacchetto si chiama cognome ed entro cioè Rossi va bene Quindi ogni volta che io faccio riferimento a questo cognome e ve lo dimostro non importa quante volte io faccio riferimento
se vado a fare F5 Vedete che me lo manda a schermo ok dovete guardare quest'ultima parte quindi la variabile è veramente quel qualcosa che ci può tornare utile quando vogliamo salvare un valore con cui abbiamo bisogno di lavorare nel tempo Pensate se avessimo una cosa del genere no facciamo diversi range abbiamo range A1 TAC chiudiamo qua punto Value uguale Rossi Ok facciamo così Rossi poi facciamo anche solo tre volte Giusto per non impazzire però per farvi Capire il concetto a uno eh B2 e C3 così compare in diagonale mi sposto qua a lato faccio partire
e vedete che è Maschito Rossi lo stesso risultato però io lo potrei ottenere chiaramente se faccio riferimento allo stesso valore parlando di cognome quindi fatemi cancellare vado qua e sostituisco con cognome TAC TAC TAC presupponendo che sia lo stesso valore che non è un caso che siano uguali va bene se io faccio invio vedete che mi compare rossi quindi Sto dicendo il valore di 1 2 3 deve far riferimento a questa scatolina cognome e qua dentro c'è Rossi E perché è una cosa buona il giorno in cui dobbiamo per caso cambiare può cambiare dinamicamente nel
programma vogliamo cambiarlo a mano non è più rossi ma è Verdi ok Devo solo andare qua Una volta sostituirlo far ripartire vedete che è tutto in check ok Quindi questo è il discorso delle variabili quella bellissima comodità voi pensate Eh magari state lavorando su Word sta lavorando ad una tesi un documento quello che è e magari dovete scrivere qualcosa riguardo a una persona Ciao Signor il Verdi La ringrazio La ringrazio e apprezzo che il suo cognome sia Verdi perfetto Per quanto possa fare schifo questo testo della mail o quello che volete Ecco Facciamo finta sia
una mail poi potete capire che Verdi fa riferimento al cognome e viene ripetuto due volte se io la mail voglio mandarla a averti Rossi Domenico voglio mandarla a qualsiasi cognome vi venga in mente chiaramente non posso farlo a mano ogni volta dovrà essere dinamico se io questo verde lo sostituisco con pseudoco la ricetta Attenzione Non è la sintassi giusta ma per farvi capire con cognome e con questo dollaro vi faccio capire che è una variabile quindi non è effettivamente del testo cognome improvvisamente non importa se io scrivo qua verdi rossi gialli eccetera ogni Email avrà
il giusto cognome Ciao Signor Gialli La ringrazio presso il suo cognome sia gialli metto Rossi stesso discorso bene quindi questo è il concetto delle variabili vogliamo ottenere a mente un valore che vogliamo riutilizzare nel tempo quindi Ecco come si utilizza le variabili la cosa bella è che le variabili possono essere tranquillamente riassegnate vi faccio vedere se io e cognome gialli ma durante il programma succede qualcosa facciamo Così coi puntini succede qualcosa nel programma e poi il mio valore cambia nessun problema io poi posso riassegnare la variabile Perché giustamente si chiama variabile Perché Può variare Altrimenti
se fosse sempre uguale sarebbe una costante di cui parleremo nel prossimo video io da qua gialli vado a scrivere così Perfetto mi sposto un pochino faccio Play e vedete che è cambiato quindi la variabile può essere tranquillamente Riassegnata l'esempio più facile che mi viene in mente è l'età l'età può partire partiamo da zero Ok Passa un passa un anno e uno l'aria a Segno passo a un anno e due ma non è che lo rifaccio qua da qua potrei dire ok età uguale 1 età uguale 2 e mi andrà a prendere sempre l'ultimo valore quindi
questa è la cosa bella delle variabili prima di concludere però vi voglio parlare di un'opzione che secondo me è molto importante che va a cambiare leggermente Il modo in cui scriviamo le variabili e si tratta di Option explicit Option explicit lo possiamo scrivere noi a mano optional explicit con lei maiuscola magari explicit Oppure possiamo andare ad attivare da strumenti opzioni e attivate dovete essere una cosa del genere vi spuntate questo che non ci interessa il controllo automatico e spuntate dichiarazioni di variabili obbligatoria facendo così adesso se faccio partire eh Faccio partire vedete che abbiamo un
problema la variabile non è definita quello che prima andava bene Adesso non va più bene che cosa vuole il programma il programma vuole che io vada a specificare questa variabile come posso dichiarare questa Variabile al programma perché lui vede che c'è cognome prima andava bene Adesso non va più bene è diventato un po' più Pigno comunque un Option explicit e io vi consiglio di metterlo adesso abbiamo messo a mano ma Per tutti gli altri moduli che create faccio vedere se avete già spuntato quella casella verrà messa automaticamente Modulo 1 visto che era già o lo
cancellate lo rimettete Oppure lo mettete a mano cosa facciamo noi andiamo a creare Dim Dim è la parola chiave di vba per variabile è molto vecchiotto Visual Basic perciò si fa riferimento a Team come dimensione dimensions in realtà giorni d'oggi si utilizza roba come Var oppure let Dipende da che linguaggio di programmazione arrivate molto probabilmente voi pensereste a Var anche se non programmate dimmi che è una variabile Ok Var o variable pensereste una cosa del genere variable varia Ball cognome pensereste una cosa del genere e non avete tutti i torti molto spesso si usavar in
questo caso andiamo di Dim quindi Dim cognome il nome lo scegliete voi dime deve esserci sempre il nome lo scegliete voi Mi raccomando che sia però Con logica ok sia con logica e soprattutto dobbiamo aggiungere es Dobbiamo dargli un tipo il tipo può essere qualsiasi cosa possa essere i tipi semplici o tipi oggetti parleremo meglio dei tipi nei video più avanti Quindi non preoccupatevi Però ad esempio sappiamo che possiamo avere un foglio Perché non possiamo salvarci un riferimento al foglio uno Quindi potremmo avere un work shit vedete il worshit è un oggetto quindi vuol dire
Che possiamo avere anche un oggetto possiamo dire al computer Tieniti in memoria il riferimento a questo foglio va bene quindi anche il foglio essendo un oggetto nel programma è utilizzabile questo è il bello della programmazione ad oggetti che anche queste cose che sembrano molto astratte in realtà trovano il loro posto in questo caso vedete che è del testo ne parleremo meglio più avanti ma il testo si chiama String in programmazione è una stringa Di caratteri immaginate una stringa di caratteri diventa del testo effettivo Quindi la nostra variabile di nome e cognome è una stringa è
del testo in questo modo se io faccio invio vedete che non mi dà più problemi e abbiamo detto al programma che abbiamo una variabile cognome che è di tipo stringa questa variabile cognome ha come valore gialli di conseguenza andiamo qua dentro e inseriamo gialli ovunque perfetto abbiamo anche la possibilità se vogliamo Di definire più variabili insieme Pensate ad esempio abbiamo TIM cognome TIM nome es String o magari Dim ehm età diciamo età così es integer Che vuol dire intero ci arriveremo Non preoccupatevi Però vedi quante righe di codice stiamo stiamo andando a prendere no E
può essere fastidioso solo per delle dichiarazioni andare giù ponete il caso di avere 10 20 30 variabili dovete cominciare a scorrere solo per leggere le variabili che avete Quindi noi Possiamo in realtà andare a specificare tutto su una riga come approcciamo una cosa del genere È molto facile mettiamo qua la virgola e andiamo a prendere la nostra riga e la incolliamo qua ci darà errore perché perché dobbiamo togliere Team vedete Quindi lui dà per scontato che tutto ciò che è su questa riga separato da virgola sia una dimensione vedete Quindi abbiamo TIM cognome estring nome
è String e età è integer va bene ma solo fatto che Dim Viene applicato a uno due e tre come se fosse immaginatela una cosa del genere vedete Dim vale per tutti e tre non pensiate però che es può valere per tutti quindi non pensate che io posso poi andare a fare così cognome nome ed età ad esempio as String perché in questo caso mi prende solo l'ultima Quindi vedete mi sta dando errore Dimme vale per tutti però S dobbiamo definirlo per ogni variabile quindi l'unica cosa che possiamo andare a mettere è il team Quindi
dimmi nome cognome estring virgola variabile S qualcos'altro età es integer Direi che per ora con le variabili intanto Facciamo partire qua vedete non ce l'ha per errore Direi che per ora con le variabili è tutto quello che ci serviva per cominciare ce l'abbiamo nel prossimo video Parliamo delle costanti che sono di base il loro contrario Ci vediamo tra poco episodio 12 del corso di vba oggi voglio parlarvi delle costanti abbiamo visto le Variabili che chiaramente sono una scatoletta che possiamo riutilizzare in giro per il nostro programma Ma variabile Nel senso che Durante l'esecuzione possiamo cambiarne
il valore Le costanti invece sono sempre una scatoletta che mantengono un valore che possiamo utilizzare dove vogliamo ma appunto capite che il valore è costante che cosa serve perché dovremmo farlo eccetera Allora domande giustamente lecite Innanzitutto cominciamo a Dichiarare una costante e lo facciamo utilizzando la parola chiave const con const stiamo dicendo a vba che non è variabile Ma appunto è costante per il mio background di sviluppo per dove arrivo io il nome che utilizzo per Le costanti è tutto in maiuscolo e separato da underscore Quindi anziché scrivere ad esempio cognome persona come potrei fare
cognome persona come farei magari per una variabile per una Dim in questo caso se dovessi scrivere una costante e Cognome persona lo farei così perché perché una volta che guardo il codice e vedo che è scritto così mi rendo subito conto che è una costante in altri linguaggi di programmazione è la norma utilizzare questo metodo di scrittura io arrivo da altri linguaggi non direttamente da Visual Basic non è il primo linguaggio che ho imparato Perciò ho assimilato questo metodo di scrittura era quello che io personalmente utilizzo voi potete fare quello che volete Io vi Presento
quella che è il mio metodo poi chiaramente va tutto bene comunque il discorso della costante è che abbiamo const il nome della costante es come sempre has String E mettiamo direttamente il valore non posso andare a capo vedete non mi dice Ah puoi dichiararla prima e dargli il valore dopo Quindi dichiarare prima e assegnare il valore dopo devi fare tutto subito devi inizializzarla Subito quindi me la devi dichiarare e assegnare subito Quindi l'ho dichiarata e adesso la assegno di conseguenza vi dico che cognome persona è uguale a ad esempio Rossi E giustamente io so che
cosa potreste chiedermi perché io dovrei utilizzare un valore e specificarlo come costante Innanzitutto è comodo perché lo posso riutilizzare come le variabili ma Uno potrebbe dirmi ok ho già le Dimension già le variabili perché non posso usare quello la risposta è molto semplice nella programmazione molte cose Che facciamo e che utilizziamo non è che servono per fare chissà cosa perché io Rossi lo posso utilizzare esattamente come una Dim cognome non c'è differenza la differenza sta nel fatto che io non posso riassegnare cognome persona vi faccio vedere se faccio se io faccio così il cognome e
persona uguale a Verdi la vedi va bene e faccio invio mi dà picche mi dice assegnazione alla costante non ammessa io non posso farlo perché perché la costante ha un unico Valore che gli diamo subito in fase di inizializzazione questa cosa non serve alla alla macro per funzionare meglio non serve all'utente per avere più funzionalità serve semplicemente a noi per assicurarci di non fare errori perché poniamo il caso che non sia il cognome persona a sto giro ma se qualcosa non può più importante const tasso di interesse Ok io non so quanto ve ne intendete
di economia Tasso interesse Sicuramente l'avete sentito però semplifichiamo il tutto e mettiamo un banale Scusatemi es integer E mettiamo un banale 10 ok Quindi anche se non sapete le implicazioni economiche del tasso di interesse mettiamo un banale 10 questo tasto di interesse è fisso oppure Ecco possiamo mettere IVA al 22 oppure IVA terzo Scaglione ci sono tre scaglioni di IVA al 4 al 10 mi pare e al 22 quindi IVA terzo Scaglione IVA terzo Scaglione Perfetto Quindi abbiamo una cosa del genere e sappiamo che è al 22%. noi non possiamo riassegnare il 22% perché perché
il 22% è fisso non può essere cambiato Ma se noi non l'abbiamo come costante e quindi ci segna errore nel caso proviamo a riassegnarlo se noi avessimo una banale variabile e per caso per sbaglio lo riassegniamo ci sballa tutto tutto il programma Ci sballa Quindi anziché applicare l'IVA questi due applichiamo l'IVA al 23 al 21 se Applichiamo meno dopo vengo Viene la Finanza a casa o in azienda dove siamo se applichiamo di più stiamo pagando più tasse del dovuto capite quindi ci sono certi valori che devono essere così punto perché se per caso durante il
programma riprendiamo un po' IVA terzo Scaglione se per caso noi li andiamo a riassegnare una cosa del genere il programma ce lo va a dire subito Vedete se invece ne avessimo una Dim Il programma dice ok è una variabile lo Stare assegnando per me non c'è alcun tipo di problema quindi la costante è serve più a noi e non dite non fate quello che potrebbe fare un principiante che faceva lì già Vabbè alla costante Osserva le messe se non incide sul programma chi se ne frega Poi però io gli errori li ho fatti e mi
sono ritrovato ad avere errori che non capivo quali fossero Perché Ah beh Questa è una variabile la storia assegnando Il problema non è che riassegnavo Riassumiamo un valore ad una variabile Il problema è che riassegnavo un generale ad una cosa che non doveva essere una variabile Ok quindi la costante serve a noi certi valori devono essere costanti voi mi dite è cambiano l'IVA la riportano indietro o la portano al 23 ok In quel caso riaprite il programma e cambiate semplicemente il valore lo cambiate Qual è il valore lo cambiate qua e a effetto su tutto
il programma così lo possiamo fare ma noi Vogliamo evitare che durante il programma magari abbiamo tante righe di codice vogliamo evitare che qualcuno o noi stessi possiamo pensare Ah fammi riassegnare e non ci dà errore Ah quindi vuol dire che è giusto capite Quindi questo è il discorso delle costanti detto ciò abbiamo delle costanti che sono già insite dentro Excel e l'abbiamo già viste Se vi ricordate ad esempio vbread vbread fa riferimento a quel colore non c'è altro legato a vbread Vibrate è quello vi faccio un altro esempio se noi prendiamo vediamo il World shit
che abbiamo premo il workshop facciamo workscix 1 punto page setup qua mi sta dando chiaramente errore togliamolo perfetto pensa setup punto orientation noi possiamo andare a mettere Excel ad esempio Portrait oppure Excel Landscape Che cosa vuol dire andiamo a vedere su Excel apro Excel e se andiamo su layout di pagina vedete che L'orientamento è verticale orizzontale Non ci sono altre alternative quindi vuol dire che qua dentro dentro Excel ci sono delle costanti valori che fanno riferimento a Landscape orizzontale o Portrait verticale anche queste sono costanti va bene però ripeto su cosa siano vedete XL lensscape
= 2 quindi abbiamo due alternative l'orientation l'orientamento del foglio può essere uno o due uno è verticale 2 è orizzontale vedete subito come questo X Landscape È Una costante e non la possiamo cambiare XL e Landscape Vorrà sempre dire due e due vuol dire che il foglio sarà in orizzontale Ok quindi Queste sono le costanti Ripeto le potete trovare in giro in vba questo è un chiaro esempio ma per noi invece servono per permetterci di Non commettere errori utilizzate questa logica e dovrebbe essere tutto un po' più semplice nel prossimo video cominciamo a parlare dei
dati dedicheremo qualche video ai dati Nel prossimo video facciamo la lista dei dati a tra poco episodio 13 del corso di vba oggi introduciamo i dati parandoli tutti quelli che abbiamo a disposizione in moto generale Poi nei prossimi video entreremo nel dettaglio dei singoli tipi di dati li vedremo a gruppi però Ne parleremo in modo singolo Oggi invece ci limitiamo a fare una grande introduzione ai tipi di dati che abbiamo Allora innanzitutto cominciamo a chiederci A cosa servono i limiti di dati perché li Utilizziamo E questa cosa rientra molto in quello che vi dicevo sulle
costanti il fatto di avere degli elementi all'interno del codice che ci aiutino a vedere quando stiamo facendo errori se noi non avessimo opzione explicit molti degli aiuti che abbiamo sulle variabili non ci sarebbero allo stesso modo andrebbe a mancare quel controllo sui sui tipi di dati quindi andandone a creare una variabile Dim prova as ad esempio integer ci permette di dire che Questa variabile contiene i numeri interi va bene mettiamo 73 tanto per gradire capite bene che se faccio F5 non ho alcun tipo di problema ma se improvvisamente riassegno a prova una stringa quindi del
testo faccio così F5 vedete che abbiamo un problema Il problema è tipo non corrispondente quindi l'idea che sta dietro al mettere i tipi che si chiama tipizzazione Stiamo andando a tipizzare Le nostre variabili stiamo dicendo che La variabile prova è un integer è un intero e poi vedremo cosa vuol dire cosa si intende per numeri interi in VPA quando parleremo appunto dei numeri però prova è un intero di conseguenza qua dentro possiamo avere solo numeri che fanno parte di questo tipo di dato va bene non possiamo avere una stringa non possiamo avere un oggetto non
possiamo avere una data dobbiamo limitarci ad avere interi Quindi tutta sta roba qua dei tipi di dati dati che i tipi di dati Che vedremo come Cosa vuol dire eccetera lo facciamo appunto per avere un controllo questo controllo l'avete visto se rifaccio F5 me lo dice e mi dice guarda hai un tipo non corrispondente E allora faccio poi debug e mi mostra dov'è il problema Quindi io so che qua ho messo una stringa su numero Scusatemi su una variabile che è integer quindi diventa facile risolvere il problema capite tutto sto giro che stiamo facendo dalle
costanti ai tipi eccetera serve a Noi perché l'utente finale che vuole ricevere 73 a schermo lui riceve 70 tra schermo e lui non interessa Certo c'è poi la formattazione delle Celle come numero o come data e quant'altro ma quello è un altro paio di maniche questa parte qua serve a noi quindi che tipi di dati possiamo avere all'interno di vba e vi faccio la lista Velocemente non entriamo nel discorso tecnico perché tanto le andiamo a vedere separati però cominciamo a parlarne Allora abbiamo Innanzitutto bite poi c'è integer single Long Double e per concludere per i
numeri deciml Ok decimale Quindi questi sono i tipi di dati legati ai numeri non preoccupatevi non ve li dovete ricordare tutti perché come Vedremo nel prossimo video molti rappresentati col tempo abbastanza obsoleti dopodiché abbiamo date Abbiamo currency currency sono le valute quindi capite che le date le utilizziamo le valute le utilizziamo soprattutto in un Programma come Excel abbiamo poi due tipi di stringhe abbiamo stringhe veriable quindi che Può variare come lunghezza oppure String fixte possiamo avere una lunghezza fissa dopodiché abbiamo il tipo Variant su cui andremo per forza parlarne perché così rende poco l'idea poi
abbiamo il boolean se arrivate della programmazione lo conoscete il classico vero falso e poi ne abbiamo già parlato abbiamo gli object D'altronde se ci fate caso è un Workbook è un object l'applicazione è un object una cella e un object quindi non pensate solo di avere i numeri date o stringhe dobbiamo avere anche la possibilità di utilizzare degli oggetti Ora potrebbe sorgere un'altra domanda col fatto che io ricordo che alcuni di questi ad esempio numerici non li useremo perché perché sono diventati abbastanza obsoleti per capire questa affermazione dobbiamo tornare indietro nel tempo e dobbiamo capire
perché sono Stati introdotti i tipi di dati Certo a noi nel 2023 o quando state guardando questo video ci aiutano prevalentemente per una questione sintattica Quindi per non trovarci in una variabile che dovrebbe essere un intero come l'età la mia età anziché trovarmi la mia età mi trovo dentro la scritta Pippo quindi sicuramente può aiutarci da questo punto di vista ma dovete sapere che i tipi di dati sono stati concepiti lo vedrete Soprattutto molto coi numeri perché Hanno diversi range di numeri che possiamo inserire i tipi di dati servivano all'epoca quindi parliamo di 30 anni
fa 20/30 anni fa e anche più quando i computer erano poco potenti servivano per gestire al meglio la memoria quindi bisognava essere molto specifici con il computer su cosa serviva ogni variabile perché è una variabile portava via memoria ma all'epoca la memoria non è come adesso che abbiamo 64 giga di RAM schede Grafiche da €2.000 con 28 giga eccetera abbiamo computer che sembrano astronavi nonostante son piccolini all'epoca i computer erano grossi e aveva un po' che a memoria di conseguenza il compito del programmatore quando andavamo ad identificare una variabile S qualcosa quindi una variabile S
ad esempio String stavamo dando uno specifico ordine al computer dicevamo Ehi guarda che qua dentro ci deve essere una stringa attrezzati a livelli di memoria per Contenere una stringa se io uso invece il bite come Vedremo nel prossimo video il bite richiede altri valori altri tipi di memoria Perciò il computer andava a tenere meno spazio rispetto ad una stringa a quei tempi gestire la memoria era importante come gestire le gocce d'acqua nel deserto va bene di conseguenza realtà era importante quando siamo nel deserto se abbiamo poche gocce d'acqua che è una goccia a me è
una goccia a te credo abbiate capito L'esempio allo stesso modo la memoria era poca ok questa variabile la creo ed è di stringa questa variabile Byte questa variabile è single questa variabile è log quindi i tipi di dati servivano per questo motivo adesso abbiamo computer che sono veramente potenti Quindi salvo applicazioni grosse grosse pesanti da milioni milioni di dati per le cose di media di tutti i giorni in realtà possiamo essere molto più tranquilli da questo punto di vista Però ripeto il fatto di avere i tipi di dati ormai non è più dal punto di
vista della memoria ma ci aiuta tanto per quanto riguarda la correzione degli errori ripeto perché se utilizziamo un po' più di memoria per una variabile rispetto a un'altra con la potenza che abbiamo attuale non è più un problema e andremo sempre più avanti chiaramente però da un certo punto di vista noi non vogliamo che dove ci deve essere una data ci sia magari una stringa Pippo Dove ci deve essere un nome ci sia un numero capite quindi l'utilizzo dei tipi di dati ci serve a noi prevalentemente per questo scopo che ormai è andato ben oltre
la semplice gestione della memoria prima di concludere però voglio farvi vedere un'altra funzione che può tornarci utile che è Type name Type name è molto utile perché ci permette di trovare il nome del tipo di dato di una particolare variabile vi faccio vedere se noi abbiamo qua Dim scriviamo prova Sbite e io vado a fare Magari prova uguale a 230 Ok mi metto qua poi scrivo debug punto eh Print E cosa voglio presentare voglio presentare Type name di prova perfetto F5 e vedete che ci ritorna effettivamente bite Ora noi lo sappiamo perché siamo qua dentro
abbiamo definito noi però ci saranno casistiche per cui vogliamo verificare Ad esempio se il tipo di dato che è inserito è una stringa fai così se il tipo di dato conquistò lavorando È una data fai Cos'ha va bene quindi Type name ci tornerà molto utile per fare questi controlli che saranno controlli dinamici quando il programma starà andando Ah allora l'utente ha inserito una data Come facciamo a capire che è una data dobbiamo prendere il valore che ci arriva dall'utente verifichiamo il suo Type name quindi vba in grado di prendere il valore e mi ritorna magari
date è una data oppure currency è una valuta va bene quindi abbiamo i nostri Tipi di dati abbiamo la il dovere di utilizzarlo per Non commettere errori e possiamo utilizzare tpename per risalire al tipo di dato di un qualsiasi valore che utilizziamo all'interno del nostro programma nel prossimo video cominciamo a parlare dei tipi numerici Quindi quelli che abbiamo visto qua in alto Ci vediamo tra poco episodio 2014 del corso di vba oggi parliamo dei tipi di dati numerici Allora non perdiamo tempo e andiamo a creare delle variabili ABCD vediamo un po' a b c d
e e per i cinque tipi di dati che andiamo a vedere Allora il primo Innanzitutto copio EAS su tutti molto bene allora il primo è il bite prima velluto tutti e poi ne parliamo Il secondo è l'integer dopodiché abbiamo il single Ecco qua abbiamo poi il long long così ed infine abbiamo il double Allora su cosa si differenziano si differenziano per il Range di valori che possiamo andare ad inserire all'interno perché diversi Rage Vuol dire numeri più grandi o più piccoli numeri più grandi o più piccoli vuol dire diversa capacità di memoria utilizzata e se
avete capito il discorso che ho fatto in precedenza all'epoca quindi 30 anni e più fa era importante andare ad ottimizzare l'utilizzo delle variabili ad esempio il bite ci permette di salvare valori compresi tra 0 e 255 quindi lo utilizzavamo solo in queste circostanze vi faccio vedere che se io provo a mettere a uguale a 25 Faccio F5 non è un problema se ci aggiungo qualche 0 faccio F5 vedete che abbiamo un overflow ovvero abbiamo un valore più grande di ciò che possiamo contenere quindi il concetto era questo il bug ci serviva per numeri tra 0
e 255 l'intercer invece sarò specifico su questi poi gli altri cominciò a diventare molto grandi va da meno Quindi l'altro il bite non è neanche i numeri negativi va da meno 32.768 a 32.000 767 voi Mi direte perché qua c'è 8 e qua c'è 7 Beh perché di mezzo c'è lo zero che è unico Se vi ricordate quindi di conseguenza velocità 68 067 praticamente dopodiché abbiamo il single di cui vi copio direttamente i valori dalla documentazione perché sono veramente indecenti quindi questo per i valori negativi metto quel commento Ecco qua e questo per i valori
positivi come vedete si tratta di numeri con la virgola con tante tante tante numeri Dopo la virgola dopodiché abbiamo il Long che va da sempre dalla documentazione Meno 2 miliardi fino a più 2 miliardi e passa e poi per concludere abbiamo il double che è la versione praticamente duplicata del single di conseguenza il double a questi range di valori vi metto solo quelli negativi vedete sono molto molto più grossi di quelli che abbiamo per il single di conseguenza capite bene che ogni tipo di dato ha i propri utilizzi In realtà come vi ho detto Siamo
in un mondo in cui i computer Ormai sono potenti di conseguenza il bite non ci serve più A meno che volete essere proprio specifici ad esempio 0 255 mi fa venire in mente i colori RGB quindi di conseguenza se capite cos'è l'rgp Colore eccetera Potete essere d'accordo con me che in questo caso usare il bite sulla RGB può aver senso perché perché almeno non incappiamo in errori ma questa circostanza a parte Possiamo toglierlo L'integer Sì può aver senso ma quando lavoriamo in Excel possiamo lavorare anche con numeri più alti di così soprattutto se abbiamo le
currency quindi il fatturato eccetera si sale facilmente oltre i 32.000 il single tanto vale se c'è il single c'è anche il double Quindi a sto punto restiamo con Long e Double Perfetto Quindi capite bene che i due effettivi tipi di dati che vengono dati Ormai sono Long e Double ripetiamo perché perché ormai ce Lo possiamo permettere 30 anni fa Se aveste lavorato con Visual Basic o anche vent'anni fa avresti dovuto fare sicuramente più economica di memoria Direi che per quanto riguarda i tipi di dati numerici è tutto ciò che voglio che vi ricordiate è Long
e Double Se volete essere più pignoli utilizzare gli altri potete farlo le possibilità le avete voi restate con Long e Double nel prossimo video andiamo a vedere quasi tutti gli altri tipi di dati che ci mancano perché Gli object invece li trattiamo in un video a parte ci vediamo tra poco episodio 15 del corso di vba oggi voglio parlarvi degli altri tipi di dati e li ho messi tutti insieme perché non hanno molte varianti tra di loro Perciò li possiamo mettere tutti insieme si tratta di stringhe fisse e stringhe variabili date currency che sono appunto
i valori monetari il tipo niente quindi variabile variante chiamiamolo così e il tipo bolian Partiamo dalle stringhe andando a definire quella che è una variabile a es String e una variabile BS String La differenza è che andiamo ad aggiungere qua il simbolo asterisco e gli mettiamo magari 5 come numero sembrano due variabili esattamente uguali Se non fosse che una è una stringa e la stringa come sappiamo È una collezione di caratteri una collezione di caratteri è del testo schermo è una frase è una parola intendetela Come volete ma dei Caratteri messi insieme compongono del testo
Mentre invece questa è una stringa di lunghezza 5 Va bene questa è variabile stiamo dicendo che possiamo avere da zero a miliardi di caratteri Qua invece diciamo Sono cinque caratteri al massimo e ve lo dimostro facendo a uguale mi serve Edoardo che ha 7 lettere perfetto e poi B uguale Edoardo l'ho scoperto elementale che Edoardo aveva 7 lettere e da lì non l'ho mai dimenticato detto questo facciamo The Bug punto Print e mandiamo a schermo a e allo stesso modo debug.print mandiamo B io faccio F5 e vedete che abbiamo qualcosa di differente qua dove c'è
String a che è una stringa variabile mia malata a schermo Edoardo mentre invece in stringbee mi ha mandato a schermo uno due tre quattro cinque caratteri Edoardo questo perché la stringa fissa di 5 caratteri contiene solo 5 caratteri vi faccio vedere un'altra cosa Vado a Mettere Magari uno spazietto qui perfetto e per qualcuno di voi Probabilmente per i principianti vi farò esplodere il cervello faccio Play anzi Cancelliamo tutto fatto l'errore faccio di nuovo Play E vedrete che non abbiamo neanche la R A sto giro qua abbiamo Edo spazio Ardo Qua abbiamo solo Edo a Dov'è
finita la R Beh lo spazio Pro è parte integrante del conteggio dei caratteri quindi uno due tre con Edo 4 con lo spazio 5 con a di conseguenza non c'è Più spazio per la R quindi le stringhe le dovete utilizzare per qualsiasi valore che è alfanumerico il codice fiscale è una stringa va bene il CAP Non può essere un numero perché alcuni CAP cominciano con zero zero alcuni numeri di telefono come alcuni numeri di telefono cominciano con 0 4 5 9 eccetera quindi tutte queste cose qua sono stringhe i numeri che abbiamo visto nell'episodio precedente
li usate esclusivamente per numeri Va bene poi Andiamo avanti e parliamo di date se noi andiamo a parlare di date andiamo a creare qua Una date perfetto e come andiamo a creare una data dobbiamo utilizzare cancelletto scriviamo la data che ci interessa cancelletto per chiudere ricordate che in programmazione si in inglese quindi come volete definire una data non pensate di scrivere giorno mese anno al contrario dovete scrivere mese giorno e anno come mai lo fanno Gli anglosassoni non ne ho Assolutamente idea fa schifo ma pazienza Proviamo a scrivere 27 febbraio 2023 chiudo faccio invio vedete
che automaticamente me l'ha girato in febbraio 27 e 2023 Fortunatamente vba è abbastanza intelligente da capire Ma se noi per caso scriviamo il 5 Anzi facciamo fare il Anzi facciamo il 6 maggio 06 maggio 2023 io faccio invio E qua mi ha messo 6 come Junior 5 come il giorno ed è un disastro per situazioni del genere che trucchetto faccio io per Evitare di incappare in errori perché poi non si capisce niente perché è un metodo di scrittura osceno Infatti sono quelli che utilizzano ancora i piedi e i pollici per contare detto questo questo io
scrivo così metto il giorno 27 metto il mese scritto effettivamente in lettere e poi l'hanno facendo così faccio invio automaticamente Vedi che ho messo cinque che al mese 27 Quindi mi raccomando il mio consiglio spassionato è mettete sempre il numero del giorno Mettete poi il mese che è in inglese quindi se non sapete in inglese sono 12 mesi da imparare Oh mio Dio che difficoltà andiamo con September e qua vado a mettere 2.022 faccio invio e me l'ha formattato Ok un'altra cosa che possiamo fare con le date è mettere anche il tempo in realtà possiamo
anche non limitarci solo alleate perciò 27 mail 2023 e aggiungiamo che è mezzogiorno e 35 12 35 minuti e 00 secondi mi raccomando è in inglese Quindi si parla con AM e PM quindi am sono mezzanotte livello 5 pm è mezzogiorno e 35 ne facciamo am faccio invio e vedete che siamo a posto me l'ha preso ok Quindi così possiamo fare le date la currency la curren si è diverso perché perché la currency la utilizziamo appunto per i valori numerici ma legati alla parte economica finanziaria io nell'episodio precedente vi ho parlato del Long per numeri
ho detto beh Togliamo questo perché Perché tanto Quando parliamo di fatturato eccetera andiamo per oltre 37.000 eccetera stavamo parlando del tipo di dato integer e vi ho consigliato il Long per qualsiasi situazione Tuttavia se dobbiamo effettivamente parlare di roba finanziaria ed economica ci serve un valore numerico ancora più grande che va fino a miliardi di miliardi che è la currency di conseguenza Noi andiamo qua e scriviamo es currency e da qua potete inserire il valore che volete da qua Vedete che automaticamente mi ha aggiunto l'asterisco finale per indicare che è una compensi è come se
avesse messo l'euro alla fine prendiamo il Range B3 molto bene punto Value uguale ad a spostiamoci faccio F5 vedete che ci sono troppi numeri ma si allargo abbiamo il nostro valore in formato currency Quindi non credo che sulla cura S ci sia molto da dire il numero che vi serve finché mettete currency automaticamente ve lo Formatta altrimenti ricordatevi di mettere l'asterisco finale ma finché mettete currency lo fa lui ed è questo il bello di utilizzare i tipi che vi piaccia aiuta tantissimo Altrimenti ogni volta vi dovete ricordare di mettere l'asterisco detto questo passiamo al veryent
Variant stiamo dicendo che è un tipo di dato variabile quindi non solo è una variabile nel suo valore Ma è una variabile nel suo tipo di dato e mi raccomando non abusate di questo genere Di tipo di dato perché perché non vi aiuta perché noi qua sappiamo che cura insicure se quindi sappiamo chiaro che questa a sarà sempre una cura in se andrà a indicare chiaramente il nome è un po' triste Non ci aiuta a capire ma se fosse profitto o magari reddito o altre cose o fatturato ha molto più senso sappiamo che è fatturato
ed è in formato currency Ma se noi utilizziamo veryent va bene il fatturato sappiamo che teoricamente ancora insieme magari Non l'abbiamo fatto magari abbia messo questo valore come Long Ok quindi cercate sempre di non abusare di Variant perché verrient deve essere usato in situazioni in cui non sapete che valore vi sta tornando ad esempio l'utente ha inserito in una cella un qualsiasi tipo di valore noi non lo sappiamo non abbiamo dato indicazioni su che tipo di valore inserire Allora lo prendiamo come Variant stiamo dicendo Io non so cosa aspettarmi Resto aperto a qualsiasi Possibilità ma
se siamo noi che gestiamo il flusso del programma cercate di essere il più specifici possibile questo video vi dimostro che non crasha parto qua da Variant così Dopodiché lo metto a stringa Dopodiché magari lo mettiamo come se fosse una date e scrivo appunto 27 mail 200023 chiudo vado a capo e se mando a schermo debug punto Print typename di a vediamo un po' puliamo qua sotto vado qua vediamo qua perfetto F5 e vedete che mi ha dato date quindi primo Soggetto Un long e nominato problemi Poi ho messo una stringa e non Melato problemi Poi
ho messo una data e non me lato problemi se io avessi messo qua un bite faccio F5 vedete che abbiamo chiaramente un problema quindi la cosa bella di Variant è che ci permette di essere un po' più flessibili sulla tipizzazione concludiamo parlando di boolean e boolean è banalmente vero falso Quindi la nostra a può essere True o false Mi raccomando con le maiuscole F5 vedete che mi ha dato boolean puliamo magari facciamo ripartire vedete boolean vero falso e Uno potrebbe dirmi sì Ma a cosa serve vero o falso in realtà l'abbiamo già visto Vero o
Falso quando stavamo dicendo è in grassetto True o false Ma pensate anche faccio sempre questo esempio una chat chiaramente quando stiamo lavorando con le chat ma vi fa capire quando voi avete una persona Mi fate la domanda è online Sì no il Programma si fa la stessa domanda è online se tu ti mette a schermo che è online e vi mette il pallino verde se è false o vi mette il pallino rosso non vi mette niente e vi dice ultima volta visto un mese fa Ok quindi questo tuo false sembra una vaccatina no che cosa
serve tuo false in realtà True Falls quindi il tipo boolean è alla base di tutte quelle condizioni che impareremo a fare nel nostro programma Quando dovremo sostituire ad un programma è così o è Cosa Se è così fai questo altrimenti fai quest'altro per capire la condizione Noi vorremmo sempre tu o false le cose sono True o false non sono True Falls e forse sono Ovvero o falso Quindi questa parte boolean lo capirete quando tra qualche video parleremo effettivamente delle comparazioni poi degli If I boolean sono fondamentali sembrano stupidi ma sono fondamentali Quindi direi che abbiamo
visto tutto quello che ci serve sugli altri tipi di dato prossimo video Lasciamo un piccolo spazietto per il tipo object questo perché object è molto generico e volevo prendermi del tempo ad hoc Ci vediamo tra poco episodio 16 del corso di vba oggi guardiamo il tipo object e ci parliamo un po' di tempo solo perché cambia leggermente la sintassi di come possiamo assegnare un valore ad una variabile object Quindi niente di che è più che altro perché object è un tipo abbastanza generico Ma che può di render veramente qualsiasi Cosa all'interno della nostra applicazione Allora
direi che possiamo cominciare subito con un Dim a Quindi la nostra variabile a es Cominciamo con un workshop ad esempio work shit Eccolo qui e sotto andiamo a mettere che a è uguale ad esempio Fatemi prendere XL al nostro foglio 1 vedete foglio 1 e foglio qwerty che onestamente andrà a rinominare in foglio 2 bello qwerty Però allora abbiamo foglio 1 e foglio 2 quindi io voglio dire che a è uguale a work shits Giustamente tutti I work chips che ho la mia Collection worksheet e voglio prendere l'uno Perfetto Quindi se io poi vado qua
e faccio un bel debug Print ci darà errore ve lo dico già quindi debug Print di a punto name F5 Abbiamo un problema cosa è successo È successo che per andare a dare un valore ad una variabile batterie che è di tipo object perché worshit è un object non ce la caviamo con a = all'oggetto che ci interessa dobbiamo aggiungere la parola Set un po' poco intuitivo Però una volta che lo imparate siete a posto Se faccio partire vedete che mi ha mandato a schermo foglio 1 Se invece vado a prendere work G2 mando a
schermo foglio 2 quindi così funziona Ricordatevi che l'unica cosa che cambia tra gli oggetti e gli altri tipi di dati è che ogni volta in cui vogliamo andare a settare Appunto una variabile usate il termine settare settare alla lunga vi resta cioè settare è all'italiano come diremmo noi Mangiare Se togliamo tare come diremmo in italiano se andassimo a rovinare la parola inglese resta Seth quindi in inglese tu set andare a mettere un valore quindi in questo caso rimettiamo a uguale a workcit 1 e vi faccio vedere che funziona comunque Tac 95 e vedete che abbiamo
foglio 1 Quindi ogni volta che dobbiamo andare a riassegnare un valore ad una variabile che è di tipo oggetto perché workship è un oggetto ci basta mettere set è L'unica grande differenza a livello sintattico però vi voglio far vedere un'altra cosa prima di farvi vedere altri tipi di oggetti è che possiamo utilizzare il tipo più generico object Quindi se non sappiamo che cosa ci aspetta possiamo utilizzare object io faccio Play e vedete che ottengo lo stesso valore vado qua Scusatemi Faccio così Faccio ripartire vedete che ho foglio uno perché ho preso work chips tutta la
Collection ho preso il primo il Primo è foglio 1 qua cosa ho fatto Ho definito la mia variabile a come un oggetto Ma stavolta non sono stato preciso non ho specificato nient'altro ho detto Guarda l'unica cosa che accetto è un object ma object è tutto nell'application è un worldcite è un workbook è un range è una colonna è una riga è un approfondimento qualsiasi cosa che noi possiamo prendere come oggetto lo possiamo accettare va bene perché qua se avessimo avuto workshop non avremmo Potuto accettare workbook giustamente se io mi aspetto un foglio di lavoro non
mi potete dare una cartella di lavoro non ci sta non riesce a entrarci Tornando a noi proviamo a aggiungere più variabili Perché giustamente Voi potreste dirmi Sì Edo però che cosa mi serve prendere riferimento a questi fogli Beh se più avanti dobbiamo lavorare con più fogli più Celle eccetera può tornare utile ad esempio io qua scrivo foglio 1 e magari Voglio andare a creare un'altra Variabile per foglio 2 quindi vado qui creo il mio foglio 2 devo andare a mettere un'altra Quindi qua foglio 1 Copiamo e poi mettiamo foglio 2 es work shit molto bene
abbiamo i nostri due fogli adesso vogliamo andare a prendere foglio 1 punto range di A1 e qua dentro trasmettere come Value ad esempio sono in foglio 1 e poi andiamo a duplicare la stessa cosa per il foglio 2 Eccolo qua scrivo sono in foglio 2 faccio F5 e vedete come Qua sono in foglio 1 e qua Sono in foglio 2 quindi senza andare ogni volta a prendere i riferimenti una volta che abbiamo il riferimento è qua dentro ci basta richiamarlo velocemente Ok allo stesso modo una volta che abbiamo il nostro range A1 potremmo fare una
variabile set A1 Allora set A1 che è uguale a range di A1 potremmo dire Guarda in A1 punto ad comment e qua dentro mettiamo Ciao Poi facciamo a 1. font punto color uguale vibi Red e poi magari a sono appunto Font.bold = True Facciamo partire e vedete come sempre prendendo riferimento al nostro range in questo caso abbiamo preso riferimento range A1 ma siamo dentro nel foglio attivo vedete come modificato tutto senza scrivere ogni volta range A1 una volta che lo sappiamo siamo a posto ok Se volessimo far riferimento direttamente alla 1 del nostro foglio potremmo
dire Guarda foglio 2 lo mettiamo qua e stiamo facendo riferimento direttamente alla 1 Del foglio 2 quindi in questo caso se mi sposto qua su foglio 2 e io faccio partire vedete come ha cambiato velocemente questo quindi la bellezza di utilizzare le variabili con gli oggetti risiede nel fatto che possiamo prendere i riferimenti alle cose che ci interessano molto più velocemente Certo utilizziamo le variabili per salvare del testo informazioni date eccetera ma possiamo anche salvare velocemente dei riferimenti Quindi direi che per i tipi Di dato è veramente tutto nel prossimo video parliamo degli operatori matematici
quindi per qualche video cominciamo a vedere un po' di funzioni e operatori che possiamo utilizzare effettivamente per fare qualche lavoro sui tipi di dato che abbiamo va bene Ci vediamo tra poco episodio 17 del corso di vba oggi voglio parlarvi degli operatori matematici Perché chiaramente su Excel lavoriamo quasi esclusivamente con numeri quindi andremo a fare Sottrazioni moltiplicazioni potenze e quant'altro dobbiamo saper lavorare Non solo lato Excel ma anche lato vba con gli operatori matematici molto semplici non sarà un video lungo però cominciamo subito allora abbiamo Dim a es integer giusto per semplificarci la vita Ecco
qua e andiamo a definire a come 5 per ora va bene se vado a fare debug Print prima partiamo dagli operatori poi utilizziamo qualche variabile insieme quest'altra E poi faccio una piccola Digressione per i programmatori io vado di debug Print e faccio a più 5 F5 magari debug.print F5 e vedete che ottengo 10 perché perché sto mandando schermo la mia variabile +5 Non credo sia difficile capire il concetto di 5 + 5 = 10 Però sto perdendo tempo perché perché qualcuno ha appena cominciato a programmare perciò non si rende subito conto che a in realtà
è 5 Va bene se io vado a mettere a uguale 6 così cosa Pensate che sia 11 perché Perché a viene sovrascritta ve lo dimostro Vedete se invece io metto debug Print e faccio una copia qua noterete due risultati ben distinti faccio F5 vedete che abbiamo 10 e 11 perché perché prima a è 5 e la vado a sommare poi a diventa 6 e la vado a sommare quindi questo per ribadire il discorso che avevo fatto sulle variabili che appunto cambiano nel tempo ed è una cosa assolutamente sensata plausibile E che succederà Spesso e volentieri
nei vostri programmi detto questo abbiamo ok A +5 così possiamo avere a -5 che farà chiaramente 0 pulisco ogni volta sennò non si capisce abbiamo a per 5 che fa 25 e poi a diviso 5 che nominato un po' a quanto possa fare fa uno Ok quindi Queste sono le super basi abbiamo due operatori aggiuntivi che sono quello per elevare un numero quindi proviamo a fare 5 alla seconda faccio Play vedete mi da 25 5 alla terza 125 ok Quindi questa è la Potenza e adesso c'è un altro operatore che tornerà molto molto utile vi
farò vedere un esempio adesso che è il modulo il modulo se arrivate dal linguaggio di programmazione lo conoscete come percentuale Ok se non avete mai programmato dimenticatevi di questo concetto Va bene se non programmato lo dovete conoscere semplicemente come Mod Quindi ve lo chiama vi ho detto che si chiama modulo modulo in inglese è modul quindi non fa assolutamente differenza Però noi sarebbe modulo così quindi si chiama Mod per chi programma lo conosce come modulo così però visto che in vba non c'è il modulo con il simbolo percentuale dobbiamo utilizzare mod è strano è brutto
lo so però è quello che è di conseguenza vi faccio vedere il risultato faccio invio e vedete che otteniamo un due Che cos'è questo due il 2 è il resto della divisione tra a e 3 questo perché il modulo ci restituisce il resto di una divisione se io faccio a Diviso 3 e ve lo mando a schermo vedete che ottengo 1, qualcos'altro ma se io volessi solo il resto Ve lo faccio vedere se io volessi solo il resto vado a prendere Mod e Mod È chiaramente perché perché vediamoli insieme 3 per 1 uguale 3 giustamente
e non ci sta più nel 5 perché nel 6 sarebbe per due quindi 3x2 6 ma 3 per 1 3 più 2 di resto uguale 5 Ok quindi questo Mod altro non è che il resto della divisione è perché è utile Io faccio sempre questo esempio perché se vogliamo trovare un numero pari e un numero dispari ci basta utilizzare il modulo ad esempio io prendo 5 modulo 2 se un numero è dispari mi darà resto uno faccio invio vedete metto 7 mi darà resto uno metto nove mi darà resto uno ma se improvvisamente metto due
mi darà resto 0 metto 4 mi darà resto 0 perché se non siete pratici di matematica facciamolo subito due per due uguale quattro Quindi quattro resto Zero sei Due per tre sei Mentre invece se abbiamo 5 Scusatemi se invece abbiamo sì Facciamo 5 quindi 2x2 fa 4 + 1 diretto uguale 5 Ok quindi modulo torna molto semplice soprattutto facile capire applicato a questo concetto Quindi se un numero pari e se un numero è dispari dove lo utilizzerete al momento non è importante comunque è una nuova freccia in più che avete nel vostro arco di operatori
detto questo facciamo delle semplici prove perché non Dobbiamo per forza utilizzare semplicemente i numeri possiamo rendere le cose un po' più complesse possiamo fare B uguale 10 possiamo avere C che è uguale ad A + B e possiamo mandare a schermo semplicemente ci giustamente prima di fare una cosa del genere sarebbe meglio dichiararle B es integer e CS integer facciamo invio e vedete che abbiamo a schermo 14 Quindi in realtà le operazioni matematiche non le dovete Capire qua dentro per forza potete eseguirle dove volete chiamare variabili spostarle quindi limitarvi solo a sommare fare operazioni con
variabili oppure prendere effettivamente dei numeri vedetela qua posso fare magari un bel diviso 2 faccio invio vedete ottengo il mio risultato e non è assolutamente un problema detto questo voglio parlare un attimo in generale del operatore di incremento e decremento se non avete mai programmato Provate a seguirmi ma è Prevalentemente per gli sviluppatori che potrebbero trovare problemi come sapete incremento e decremento vuol dire andare ad aggiungere più una variabile e parlo anche per chi non programma poniamo il caso che noi vogliamo passare da a da 4 a 5 ma senza farlo noi a mano Quindi
senza dire a = 5 vogliamo dire a Ovunque tu sei più uno Ok Me lo incrementi di uno non mi interessa cos'è al momento è 99 Vai a 100 e 100 101 non mi complessa stessa cosa decremento Ovunque tu sia Vai -1 va bene Quindi questi sono queste incremento E decremento qual è il discorso e soprattutto dove potrebbe interessare quando magari passiamo di una riga siamo sulla riga 100 vogliamo continuare a scendere fino alla 106 quindi 100 incrementa di uno 101 incremento di uno 102 e via discorrendo in altri linguaggi di programmazione in quasi tutti
abbiamo il più più così oppure più più davanti è rilevante dove lo conoscete Comunque è la variabile più Più i linguaggi di programmazione capisce che vuole prendere la variabile a col doppio più vuole andare ad aggiungere uno allo stesso modo se andiamo a mettere il meno da una parte o dall'altra è rilevante sa che deve andare a togliere uno Qual è il discorso che non c'è un operatore del genere quindi l'unico modo che abbiamo per sommare ad A1 è a uguale a + 1 non possiamo fare altrimenti non c'è nemmeno a più uguale 1 non
lo prende quindi Nella versione ridotta né la versione super super rido realtà esistono in vibia vedete che mi dà rosso per chi non programma vediamo un attimo cosa stiamo facendo questi due equivalgono A questo quindi quando noi incrementiamo di uno a siamo incrementando se stesso più uno quindi vedete che AA è uguale a se stesso più uno un modo veloce per farlo vedete anziché ripetersi Consiste nel togliere AA e dire mettere il più davanti si fa così vedete che ho Ottenuto la stessa sintassi qua sotto ok Se invece vogliamo essere ancora più veloci possiamo direttamente
togliere questa parte vedete così e aggiungiamo un più e abbiamo esattamente la sintassi qua sotto se non programmate e utilizzate solo vba non preoccupatevi di queste cose qua il concetto è questo incrementare una variabile di uno lo si fa così allo stesso modo lo potete fare di due di tre di quattro ma generalmente si fa di uno perché perché questa Sintassi rappresenta l'incremento o il decremento di uno Bam Direi che per gli operatori matematici è tutto Ci sono anche delle funzioni matematiche come Absolute logaritmo e altre cose che però al momento non vediamo perché non
ci interessano Diciamo che roba un po' più specifica per chi lavora nel settore matematico forse statistico altre cose per ora ci limitiamo a capire come lavorare con i numeri e basta prossimo video vediamo come lavorare invece con Le stringhe che è un'altra parte importante della della programmazione Ci vediamo tra poco episodio 18 del corso di vba oggi vediamo come possiamo lavorare con le stringhe c'è un po' di roba da vedere me la sono segnata e la vedete anche voi a schermo per non dimenticarmi niente sono solo alcune delle funzioni che abbiamo forse di più utili
perciò direi di non perdere tempo e cominciare subito la prima è comparare stringhe con stringhe lo vedete che è String Praticamente con per Perfetto Quindi str che sta per String Comp che è con per andiamo a prendere una stringa metto qua nella variabile per E mettiamo Abc e voglio comparare questa stringa con un'altra stringa Perciò vado di St punto comp a pro e qua dentro abbiamo una sintassi che conosciamo Innanzitutto facciamo a che è la nostra prima stringa ABC maiuscolo e lo compariamo con ABC minuscolo abbiamo poi un'opzione aggiuntiva che possiamo utilizzare che Vi faccio
vedere che è VB text compare a sto giro Cominciamo con questa chiudo faccio partire vedete che otteniamo 0 0 vuol dire True mentre uno vuol dire Falls quindi torniamo con il cosiddetto tipo boolean che abbiamo già visto che cosa vuol dire texcompere Fatemi però sostituire qua perché a non rende per niente l'idea Scusatemi Abc e ABC vuol dire che stiamo comparando la stringa lato testuale Qua c'è a b c a b c Il case non importa il casel maiuscolo o il Minuscolo Se invece io vado a fare binary con per l'interfaccia F5 vedete che abbiamo
meno 1 in questo caso perché perché non c'è un match perché a sto giro viene guardata la parte binaria e a maiuscolo non corrisponde a da minuscolo sono due caratteri ben distinti quindi lato text con VB text Compare stiamo semplicemente comparando i caratteri come li come li intendiamo noi come esseri umani a b indipendentemente da maiuscole e minuscolo mentre invece con Binari con per andiamo a valutare le due stringhe lato computer quindi a maiuscolo non è a minuscolo possiamo eventualmente anche togliere il tutto tolgo qua faccio partire vedete che di default mi dà meno 1
quindi stringomper senza un valore mi dà di default il binary proseguiamo e vediamo come possiamo concatenare le stringhe per concatenare stringhe intendo mettere più stringhe insieme poniamo il caso che abbiamo diciamo una classica frase ad Esempio Ciao sono però il nome può essere variabile Quindi qua in a Potremmo avere Ad esempio Edoardo ma potremmo prendere a ad esempio o anziché ascriviamo nome potremo prendere il nome da cosa Da un input di un utente di conseguenza può cambiare Edoardo Luca Marco eccetera Oppure potrebbe essere un dato che abbiamo e vogliamo mandare una mail o cose del
genere giusto per renderli l'idea Come facciamo a cambiare il nome e agganciarlo qua è molto Semplice utilizziamo and facendo così stiamo andando ad unire vi faccio vedere le due stringhe qual è il problema che in questo momento non abbiamo messo lo spazietto qua quindi vado aggiungere uno spazio qui perché perché altrimenti viene attaccato subito F5 vedete Ciao sono Edoardo staccato questa cosa la potete fare anche con più stringa ad esempio Oppure possiamo aggiungere da qua possiamo mettere uno spazietto vuoto e poi possiamo aggiungere and vi faccio Vedere che posso mettere più stringhe collegate non è
un problema metto del testo Se faccio F5 vedete che malato lo spazio perché perché ho collegato qua dello spazio Quindi finché avete end potete mettere come stringhe variabili quello che volete e quindi questa è la concatenazione vediamo come possiamo prendere invece parti di stringa Quindi se abbiamo bisogno di sotto stringhe utilizzando left right e Mid cominciamo subito andiamo qua mettiamo left e Vedete che mi chiede la stringa che voglio prendere nome e mi chiede quanto devo prendere della stringa in questo caso metto 3 faccio F5 Ops Scusatemi un disastro faccio F5 vedete che mi ha
preso solo Edo perché è partito da left che è a sinistra e mi ha preso tre uno due tre se ve lo dall'altra parte e faccio Right F5 vedete mi ha preso 1 2 e 3 Altrimenti possiamo utilizzare Mid e Mid ci dà la facoltà di cominciare dove vogliamo Quindi se io volessi prendere Solo AR Che cosa posso fare Devo partire da a Quindi 1 2 3 4 e ne voglio due quindi mi metto qua sul 4 e voglio due parti faccio F5 vedete che ottengoar se invece io parto solo dal 4 in poi dovrebbe
darmi Ardo Quindi qual è la differenza la differenza che con left parto da qua parto sempre da 1 e voglio uno prendo e voglio tre prendo Edo la stessa cosa sulla destra parte da qua e voglio uno parto da qua e voglio tre mentre invece Mid posso partire da qua Posso partire da qua posso partire da qua non è assolutamente un problema e non voglio tutto il resto voglio Magari solo una sola porzione Mentre invece su left se io parto da 4 vi faccio vedere se io parto Left 4 vedete che mi dà Edo a
perché io penso di partire da 4 in realtà quello che gli sto dicendo è che voglio Left 4 di conseguenza a parte sempre da qui e mi darà sempre 4 va bene mentre invece con Mid questo valore è dove parto parto da 4 se non specifico Nient'altro voglio tutto altrimenti posso specificare voglio solo due caratteri ok Quindi questo è Mid vediamo come possiamo cercare in una stringa con in String E se io vado con in String prendo sempre nome e voglio vedere se dentro qua c'è ad esempio Leo F5 e ottengo 0 a questo punto
lo zero non è più come lo 0 1 di straincomper che ci dava un boolean ma mi dice proprio Qual è il numero di partenza di Leo Se non fosse che qua dentro Leo non c'è è ve lo Dimostro perché se io metto Edo e faccio F5 vedete che mi dà uno vuol dire che Edo parte già dal primo carattere se metto Ardo ad esempio Ardo così faccio F5 mi da 4 perché effettivamente Uno due tre e quattro Ok Metto solo a è la stessa cosa perché le altre tre dopo non contano nel calcolo vedete
sempre 4 mentre invece andando a mettere qualcos'altro ottengo zero perché perché non c'è una posizione chiaramente per gli sviluppatori ve lo dico dovete Abituarvi al fatto che qua si parte a contare da uno non ci si può non ci si può far niente ma così possiamo cercare andiamo avanti e vediamo come possiamo rimuovere gli spazi con el Trim Anzi Cominciamo con Trim che si capisce meglio quindi Trim Che cosa fa va a tagliare gli spazi bianchi vi faccio vedere Edoardo e cominciamo andare a schermo solo nome senza Trim F5 vedete che c'ho lo spazio qua
vi faccio vedere vado un po' più in là tolgo qua tutto F5 Vedete Quanto è lontano quindi con Trim posso andare a togliere gli spazi vedete allo stesso modo se volessi andare a togliere solo lo spazio a sinistra posso utilizzare stream e lo spazio a destra Right Trim poi potreste chiedermi perché dovrei fare una cosa del genere perché magari l'utente sbaglia a cliccare ad esempio potrebbe essere una cosa abbastanza normale e Volete togliere gli spazi altrimenti Eh va tutto in malora e non è Assolutamente buono per il nostro programma dopodiché abbiamo la lunghezza della stringa
con len possiamo modificare quanto è lunga una stringa vi faccio un esempio pratico di situazioni classiche pensate a una password abbiamo inserito la password la password deve essere almeno 6 caratteri quindi dobbiamo andare a vedere la lunghezza la len di nome Fatemi togliere tutti sti spazi che non mi interessano abbiamo detto che Edoardo è lungo sette Caratteri se faccio F5 vedete abbiamo 7 mettiamo magari un due tre dovrebbe essere 10 F5 vedete 10 Perfetto Quindi poi abbiamo il contrario con String Reverse quindi Edoardo diventa odraode F5 molto bene e poi vediamo come sostituire parti di
stringa con replace quindi possiamo che tende a replace prendo la stringa e voglio sostituire vedete che qua Ci dice tutto quello che ci ci può servire e io dico replace Edoardo voglio togliere la o quindi Tolgo la o e la sostituisco con una k F5 e vedete che la o È diventata K direi niente di incredibile sono un po' di funzioni che però possono aiutare una volta che le imparate non è niente di fantascientifico si tratta solo di qualche nome da ricordare eventualmente Cercate solo documentazione se non vi ricordate dopo un po' vi resteranno in
testa assolutamente niente di che per oggi è tutto ne proseguiamo col prossimo video episodio 19 del corso di pba oggi Vediamo come possiamo lavorare con le date altro formato che è maledettamente comune su Excel abbiamo un po' di roba che dobbiamo vedere quindi cominciamo subito allora innanzitutto noi sappiamo creare la data scrivendo così ad esempio 17 settembre 2022 se vado a capo vedete che me l'ha convertita in data e ho la mia data abbiamo però un altro metodo per creare date in modo dinamico quindi Mentre qua Sono nato io a specificare cosa voglio qua invece
io potrei partire semplicemente date i numeri che mi vengono passati Esatto così dei serial e qua dentro potrei avere vediamoli insieme hanno in questo caso mettiamo 2022 mese perciò mettiamo 4 aprile e giorno 27 aprile Quindi andiamo a fare 27 aprile 2022 che cosa succede e Voi potreste Qual è la differenza la differenza è che io qua ho una data e ve la dimostro mando a schermo B e vedete Che ho una data e se mandassi a schermo A O comunque un'altra data la differenza che io qua posso andare a generarla dinamicamente tramite altre variabili
quindi se faccio una cosa del genere hanno uguale 2022 Fatemi mettere anno integer Partiamo da qua io posso sostituire hanno qua dentro se mando a schermo B F5 vedete che ottengo lo stesso risultato di cosa stiamo parlando stiamo parlando di una situazione in cui non abbiamo la data diretta Ma magari Stiamo cambiando qualcosa quindi ci può arrivare una variabile che è solo l'anno In che anno ti sei laureato ti arriva l'anno giusto un esempio oppure da qua potete capire bene che possiamo andare a sommare Ne parleremo qua sotto però vi fa capire bene l'idea F5
vedete che otteniamo 2025 quindi ecco come e perché possiamo creare date in modo dinamico Dopodiché possiamo ottenere date particolare ad esempio se io faccio date qui F5 Ops Perfetto pulisco tanto che ci sono Vado qua F5 vedete che ottengo la data di oggi il 30 marzo 2023 non solo posso andare a prendere Now e ottengo la data completa questa qua più l'ora in cui sto registrando e poi posso fare di più e andare a prendere Time Vedete posso far così e ottengo informazioni importanti oggi praticamente qui anziché andare a creare la data di oggi Automaticamente
il sistema me la va a prendere di queste date in realtà noi possiamo andare a Prendere hanno un mese e giorno il nome del mese e quant'altro e vi faccio vedere subito mi basta andare qua e mettere howar attorno a time faccio F5 e vedete che malato solo l'ora che sono le 15 proviamo magari da B a prendere here F5 vedete mi ha dato l'anno proviamo a prendere Magari il mese TAC il 4 proviamo magari a prendere il giorno e vedete che otteniamo 27 quindi ci sono un po' di funzioni che ci danno la possibilità
di estrapolare da una data Direttamente ciò che ci può servire andiamo avanti e vediamo come possiamo raggiungere sottrarre due date oppure da una data da una data è molto semplice ci basta riprendere la data che abbiamo quindi questa è andata qua prendiamo a e voglio farlo diventare il 17 settembre 2025 come possiamo fare andiamo a creare magari questo anno qui facciamo tre giusto per riutilizzarlo e qua dentro potremmo fare dei serial di cosa di Year di a + anno virgola il resto lo Mettiamo uguale andiamo a mettere moms di a e poi dei ta F5
e vedete che otteniamo il 17/9/2025 che cosa ho appena fatto questo è un costrutto un po' più complesso se avete cominciato a programmare non molto tempo fa allora abbiamo la nostra data sappiamo che vogliamo aggiungere tre anni ok La dobbiamo Convertire da qua in una data in cui possiamo aggiungere roba quindi ci serve un date serial quindi date serial e dobbiamo mettere dentro hanno Mese giorno numerico Ma quando l'abbiamo diviso quindi prendiamo ciò che vi ho fatto vedere prima anno mezzogiorno e vado a mettere anno di a mese di a e dei di a teoricamente
o tre esattamente lo stesso risultato Se non fosse che qua su anno vado a fare più hanno e hanno è uguale a 3 quindi vedete come le variabili vedete come ciò che vi ho spiegato adesso vedete ciò che vi ho detto sugli operatori numerici tutto ciò che abbiamo già visto si va a fondere Insieme per aiutarci a creare qualcosa di un po' più complesso allo stesso modo possiamo andare a sommare diverse date vi faccio un esempio dal 17 qua giusto per vederci meglio Eh niente di incredibile mettiamo 27 e ci basta fare B meno a
F5 e otteniamo 10 quindi 10 giorni di differenza e abbiamo visto anche questo Oppure possiamo anche imparare date possiamo dire B è maggiore di a F5 Ops F5 Innanzitutto tengo vero se vado a mettere anziché il 27 vado a Mettere il 7 e basta faccio F5 ottengo falso perché il 7 settembre è minore e non maggiore del 17 un'altra cosa che possiamo utilizzare è seadate che sta per convert date per convertire una data partendo però da una stringa quindi mentre questa effettivamente una data un utente Potrebbe inserirci una stringa data Quindi potrebbe metterci una cosa
del genere andiamo qua su B e andiamo a scrivere magari uno Allora gennaio chiaramente Ricordatevi che ce lo deve Passare così quindi gennaio 17 2023 chiudo la stringa E io qua potrei fare un bel Sì date di B perfetto posso l'espressione togliamo qua F5 e vedete che ottengo il 17 gennaio 2023 Quindi con converte date possiamo passare da una stringa Mi raccomando andiamo a sostituire di prova F5 ve la converte anche così volendo Il problema è se cominciate poi a utilizzare una formattazione che è confusionaria e potreste rischiare come abbiamo visto Nei primi episodi potreste
rischiare di avere col formato date strano eccetera potreste rischiare di avere dei problemi soprattutto se il programma non prende il fatto che siete in Italia quindi che la vostra data locale scrive in un certo modo e quant'altro quindi attenzione su questa formattazione da stringa a seat prestata attenzione prestata attenzione se il vostro computer c'è ad esempio se siete a lavorare Un attimo negli Stati Uniti o senza lavorare nel Regno Unito eccetera potrebbe prendervi le impostazioni del paese di conseguenza pensare che anche voi Siete inglesi e ve lo converte se avete sistema operativi in inglese potrebbe
fare una cosa del genere Ok quindi attenzione se vi terrore ha possibili soluzioni in quel genere quindi direi che per le date è veramente tutto nel prossimo video parliamo dello scope delle variabili quindi cose Cominciano a essere un po' interessanti ci vediamo tra poco Episodio 20 del corso di vba oggi parliamo dello scoop delle variabili e per scope intendiamo la posizione delle variabili e del loro effetto Finora abbiamo sempre visto le variabili all'interno di una macro ad esempio avevamo Dim a es integer perfetto andavamo poi a dire che a era 10 e andiamo a fare
un bel debuggino debug punto eh Print di a F5 ottenevamo 10 Qual è il discorso che a esiste solo qua dentro e io ve lo dimostro perché se Vado qui e vado a fare debug Print a molto bene Faccio F5 vedete che ho un problema variabile non definita Questo è lo scoop locale un po' più di spazio Questo è lo scopo locale nel senso che la variabile esiste semplicemente dentro la Macro in cui è stata definita e ve lo dimostro Perché se io vado qua e creo un'altra a ma stavolta gli metto 11 F5 vedete
che ottengo 11 quindi questo è lo scopo locale ed è la base assoluta Tuttavia Potremmo avere uno scoop legata Al modulo Quindi tutte le macro all'interno del modulo possono utilizzare tale variabile andiamo subito a farlo andando letteralmente a copiare Dim es integer togliamo un attimo questa dichiarazione che non ci serve qua e anche qua e se io vado su F5 vedete che mi da 10 F5 mi dà 11 Qual è il discorso che adesso vanno semplicemente a richiamare questa variabile Quindi adesso la variabile a è disponibile in tutto il modulo chiunque può chiamarla Chiunque può
lavorarci Qual è il discorso è che adesso si va a concatenare quella che la modifica di Avi faccio vedere se io parto con Sab prova 2 F5 ottengo zero perché non è mai stata dichiarata questa variabile perciò di default è 0 Ma se io vado su prova e faccio F5 ottengo 10 se poi torno su prova 2 dove non vado a modificare a e faccio F5 ottengo ancora 10 quindi vuol dire che ogni modifica che andiamo a fare all'interno di ogni macro però di Una variabile chiamiamola così globale all'interno del modulo conta e vale anche
per tutte le altre macro Va bene Ora però Voi potreste rivedo Ma perché non vai a definirla qua magari perché è tratto Zero all'inizio è molto semplice perché noi non possiamo andare a definire una variabile qua in alto se tolgo qui faccio F5 vedete che mi dà errore Qual è il lo svantaggio di questa cosa che non possiamo dichiarare variabili e poi andare a segnare valore Al di fuori delle procedure le procedure sono le uniche zone in cui una variabile effettivamente cambiare il proprio valore la stessa cosa però non si può dire per Le costanti
Le costanti tornano molto utili in questo caso Perché io posso fare const B as integer molto bene e posso andare a mettere 5 e a questo punto posso richiamare const in giro F5 F5 e vedete che me lo dà perché perché la costante chiaramente abbia detto che deve essere subito assegnata sulla Stessa riga in cui viene dichiarata Ok Mentre invece per le variabili dobbiamo farlo Successivamente e non possiamo farlo fuori da una macro Ok quindi scope locale scope globale legato al modulo e poi abbiamo uno scope tra moduli Perciò se io vado in modulo 2
e vado a creare qua in modulo 2 vado a creare una prova 3 e provo a richiamare B faccio F5 vedete che ho un problema perché ho un problema perché qua non c'è nessuna Variabile o costante di tipo qui e Soprattutto non ho reso disponibile né questa variabile né questa costante nell'altro modulo Come posso fare per avere variabile costanti utilizzabili in moduli diversi utilizziamo quella che è la parola chiave Public con Public stiamo rendendo disponibile a qualsiasi modulo la nostra costante variabile vedete fatemi un attimo togliere qua mettiamo un numero diverso per far vedere che
lo stiamo cambiando aggiorniamo vado su modulo 2 mi metto Qui F5 e vedete che ottengo 52 Quindi con Public stiamo dando la possibilità a qualsiasi modulo di utilizzare questa costante oppure questa variabile non fa assolutamente differenza però dobbiamo dirlo chiaramente per ciascuna variabile e o costante quindi ricapitoliamo abbiamo lo scope locale di una singola macro abbiamo lo scope globale o chiamiamolo modulare all'interno del modulo e poi abbiamo effettivamente lo scopo globale o Public in cui una Variabile o costante Può essere utilizzata anche in un altro modulo generalmente partite da questo punto di vista Innanzitutto le
variabili cercate di tenerle il più possibile legate a ciascuna macro qualora vi servisse una variabile modulare quindi disponibile in tutto il modulo non è assolutamente un problema lo potete fare può diventare un problema quando utilizzate Public per utilizzare in altri moduli perché perché diventa un casino come hai fatto a Sapere che B Adesso dovete andare a pescare da un'altra parte perché qua non ve lo dice di conseguenza può diventare problematico perché questo modifica a parte la costante però stiamo modificando la variabile a però poi viene ripresa di qua e può essere problematica quindi cercate sempre
di tenere la mente dentro la macro il più possibile dentro il modulo quasi mai tra moduli Solo in casi di vera vera necessità e direi che con lo scope Abbiamo finito nel prossimo video facciamo il primo passo verso i condizionali e parliamo delle espressioni booleane ci vediamo tra poco episodio 21 del corso di fipa prima di arrivare ai condizionali voglio prendermi questo video per spiegarvi le espressioni booleane se siete già programmatori io so se vedete Ah ma questo video non mi serve da un certo punto di vista si da un altro punto di vista No
perché Perché alcune cose della Sintassi di vba sono ben diverse era ciò a cui siete abituati già qui siamo abituati perché rispetto alla maggior parte dei linguaggi di programmazione ha delle differenze quindi casomai Anche se già sapete programmare Andate a vedere le parti specifiche di sintassi questo è più un video per persone che non sanno programmare e dobbiamo portarle al prossimo step Il prossimo step sarà quello di far capire al programma Se è qualcosa fai così altrimenti fai in un Altro modo l'esempio era se una persona online Scrivi la persona è online se non è
online Scrivi non è online oppure se è online metti il pallino verde se non online metti il pallino rosso uso questo discorso dell'online anche se siamo su Excel perché perché la logica è la stessa il computer capisce solo questa logica praticamente di conseguenza è uguale in qualsiasi linguaggio di programmazione e soprattutto si presta bene come esempio prima però di arrivare A parlare al programma di fare questo o quest'altro dobbiamo dirgli le condizioni dobbiamo imparare a creare delle condizioni e le condizioni non sono semplici perché ci sono tanti operatori logici che entrano in gioco Cominciamo dalle
super basi Allora io adesso non lavorerò con variabili prevalentemente uso numeri così chiaramente voi fate riferimento che potrebbe essere variabili potrebbero essere valori contenuti in Celle Eccetera eccetera Cerchiamo di tenere le cose più semplici possibile allora innanzitutto vado a fare il debug Print e vado a mettere quella che è un'espressione booleana in questo momento sto dicendo 5 è uguale a 5 in altri linguaggi di programmazione di solito si dice che è uguale ma in vba è 5 = 5 voi pensereste ma questo uguale non lo usavamo per la variabile Sì è del motivo per cui
negli altri linguaggi di programmazione una variabile si Identifica Così mentre invece un'espressione booleana sull'uguale si identifica così IBM invece è diverso perciò usa solo l'uguale per qualche principiante potrebbe essere un sollievo per qualcun altro può essere un disastro Comunque 5 uguale a 5 io faccio F5 vedete che ottengo vero se vado a fare 5 uguale 6 faccia F5 ottengo falso chiaramente Stiamo dicendo è 5 uguale a 6 non è assolutamente vero allo stesso modo possiamo vedere se è diverso in Altri linguaggi sarebbe così Mentre invece su vba è così quindi questo indica diverso e se
io vi dico 5 diverso da 6 Provate a indovinare io faccio F5 e ottengo vero cos'è che sta succedendo che in questo Print Sto eseguendo questa espressione booleana sto andando a fare questa comparazione la comparazione chiaramente mi porta solo due giocatori Ovvero o falso non ci sono alternative come la domanda sei online o sei online o non sei online non puoi essere a metà 5 diverso da 6 vero 5 è veramente diverso da 6 va bene dopo perché abbiamo maggiore e minore è 5 maggiore di 6 falso Infatti vedete che è falso è 5 minore
di 6 vero e5 minore uguale a 6 vero è 6 minore uguale a 6 vero Perché Perché accettiamo sia uguale a 6 che minore di 6 allo stesso modo abbiamo maggiore e uguale e con questi abbiamo concluso quelle che sono le comparazioni semplici Dopodiché cominciano a entrare in discussione quelli che sono gli Operatori logici Quindi al momento abbiamo una sola condizione stiamo valutando che sei sia maggiore uguale a 6 ma se ne volessimo valutare che il numero che quando arriva sia pari e minore di 6 come possiamo fare Allora innanzitutto andiamo che era una variabile
per semplificarci la vita a sto giro di integer e vado a mettere a uguale a 6 Quindi qua utilizziamo a e noi vogliamo chiederci prima del pari che non abbiamo Ancora visto cerchiamo di chiederci è a maggiore di zero e minore di 10 quindi come possiamo fare è a maggiore di 0 end a minore di 10 io faccio F5 Scusatemi c'è un po' di pulizia faccio F5 e ottengo vero Perché Perché sei è maggiore di zero e 6 è minore di 10 va bene se vi piace di più potevate scrivere 0 di qua e invertirlo
io preferisco sempre mettere la variabile prima quindi a è maggiore di 0 si e a e minore di 10 successiva da fare 11 Improvvisamente io ottengo falso perché 11 è maggiore di zero ma non è minore di 10 quindi La difficoltà delle condizioni arriva adesso bisogna capire che commento quando utilizziamo Land Stiamo chiedendo che questa condizione sia vera e questa condizione sia vera Quindi se la prima condizione è vera e la seconda condizione è vera il risultato è vero Anzi anziché vera vera facciamo vero vero va bene quindi con end divido con end la prima
condizione è vero la Seconda condizione è vero Di conseguenza abbiamo vero ma in questo caso vedete a uguale 11 è 11 maggiore di 0 vero è 11 minore di 10 falso di conseguenza vero più falso con Land fa falso pensate a quando andate a comprare una maglietta voi volete una maglietta che sia del colore che piace a voi ad esempio nero e della taglia che serve a voi ad esempio m è nera la maglietta vero è m la maglietta vero e la comprate altrimenti è nera la maglietta vero e è della mia Taglia la maglietta
falso Allora non la comprate perché non è della vostra taglia ok Quindi questo è il discorso dell'end dopodiché abbiamo Lor Che vuol dire oppure oppure diverso perché oppure come potete capire dall'italiano accetta una delle due condizioni Nel senso che noi ci accontentiamo di una maglietta che è nera oppure Rossa quindi Proviamo così facciamo or e 11 maggiori di 0 vero Oppure è a 11 minore di 10 falso Eppure il risultato vi faccio vedere F5 Otteniamo vero Avete visto perché perché Lor accetta o una cosa o l'altra facciamo un altro esempio noi vogliamo andare a mangiare
in un ristorante e diciamo io vengo a mangiare in questo ristorante oppure in questo ristorante non mi interessa quale scegli entrambi vanno bene non possiamo andare a tutte e due quindi dobbiamo accontentarci di uno almeno uno deve andar bene ok mentre invece con Land il ristorante deve essere questo e magari deve essere anche Vegano oppure deve essere questo ristorante E deve essere di carne Va bene se con Land una delle due è falso è falso mentre invece con Lor la maggior parte delle volte è vero perché è vero più falso fa vero falso più vero
fa Vero vero più vero fa vero falso più falso fa falso Ok questa è la parte edificio è quella la programmazione per i principianti diventa difficile su queste cose logiche in realtà non è la sintassi è la logica di queste cose bene Quindi cercate di essere tranquilli approcciatela per quello che è una cosa nuova Ci vuole un po' di logica dovete abituarvi a questa mentalità sono cose che nella nostra mente facciamo proprio di default così o una cosa o l'altra devono essere entrambe giuste eccetera non ci pensiamo Ma quando dobbiamo parlare con una macchina improvvisamente
quello che noi facciamo in modo inconscio pensarlo da un punto di vista conscio è un disastro Dopodichè abbiamo Un altro operatore logico che si chiama not not è una negazione nel senso che è a maggiore di zero Io tolgo qua tutto vado a far partire è vero perché 11 è maggiore di zero ma se io metto not davanti sto negando non è 11 maggiore di zero Quindi io faccio partire e vedete che ottengo falso perché perché sto negando la condizione giusto è come se io chiedessi a una persona ehm Luca non è online vero Se
vi avessi chiesto è online vero Non è online è falso ma se vi chiedo non è online vero ma mi dite vero Ok quindi quando noi utilizziamo not andiamo a negare ciò che abbiamo qua anziché fare un esempio così vi faccio l'esempio con cinque uguale a 5 quindi torniamo qua indietro F5 è vero Quindi 5 è uguale a 5 perfetto ma se vi dico non è 5 uguale a 5 e metto qua Faccio F5 e ottengo falso perché Perché 5 uguale a 5 è vero ma io sto negando capite quindi sto facendo il contrario di
ciò che otterrei va bene Sto chiedendo il contrario di ciò che ottengo Mentre invece se io qua ho not di 5 = 6 otterrò vero Quindi 5 non è uguale a 6 ed effettivamente è vero perché 5 non not è uguale a 6 Ok Quindi il Not può essere forse un po' più complesso da capire rispetto a end o or sono un po' più intuitivi Il latte è un po' più fastidioso detto questo concludiamo dicendo che possiamo avere molte più condizioni e le possiamo raggruppare Insieme nel senso che mi faccio vedere possiamo avere 5 è
uguale a 5 and5 è maggiore di 0 e fin qua è vero Ma noi poi possiamo prendere questa condizione e trattarla come se fosse un'unica condizione vedete Quindi abbiamo 5 uguale a 5 è una condizione cinque maggiori di 0 è un'altra condizione in questo caso è vero ma poi questa condizione Se la mettiamo tra parentesi risulta un'altra condizione a sé stante che andiamo a verificare con Cosa andiamo a verificare con e ad esempio possiamo mettere un altro end andiamo a mettere che 5 è minore di 10 se io vado a fare F5 ottengo vero Se
invece vado a fare 5 maggiore di 10 F5 ottengo falso come è possibile quando andiamo a mettere la parentesi Stiamo andando a creare una macro condizione Quindi immaginatela così prima ci andiamo a giocare la parentesi 5 = 5 vero end e cinque maggiori di 0 vero Di conseguenza essendo un end che risultato Ci dà vero è vero fa vero questo vero poi va Comparato insieme a 5 è maggiore di 10 che è falso di conseguenza vero e falso danno falso va bene quindi il risultato di questa va poi aggiunto a questa va bene se qua
è vero tutta quella lì e qua è falso o tengo falso e via discorrendo Quindi con le parentesi andiamo a creare macro condizioni per fare un esempio sulla maglietta ricapitoliamo Io voglio che la mia maglietta sia nera e taglia M ok Oppure Potrei usare un or oppure la mia maglietta può essere bianca e taglia S perché magari è un altro modello va bene facendo così se questa è vera e queste falsa non è un problema Me ne torno a casa con la maglietta nera m oppure posso tornare con quella bianca S ok Quindi mi raccomando
questa Secondo me è la parte più complessa davvero dal punto di vista logico perché una volta che capite Come fare le condizioni andare poi a dire al programma se questa Condizione vera fai così eccetera è veramente semplice quindi ci vediamo nel prossimo episodio per un altro step verso i condizionali episodio 22 del corso di vba oggi voglio approfondire il discorso di valori booleani parlandovi di alcune funzioni is sono delle funzioni che fanno parte di una piccola famiglia di funzioni che sono tutte con is e se avete un minimo di conoscenza all'inglese capite che is vuol
dire è e fa ad esempio molto riferimento a quando Vi dicevo is online che possiamo tradurre come è online e ottenevamo Vero o falso Quindi potete capire bene che questo tipo di funzioni in qualsiasi linguaggio di programmazione se c'è un ins davanti stiamo creando se qualcosa è di qualche tipo va bene Stiamo cercando di ottenere una risposta Vero o falso ce ne sono tipo 7-8 se non mi sbaglio invidia oggi parliamo di 5 ne vediamo cinque a grandi spanne Però in realtà quelle che ci interessano sono Prevalentemente tre Allora innanzitutto cominciamo dalla più semplice andando
a creare una Dim a es integer e voglio andare a mettere che a e11 e sotto voglio mandare a schermo debug punto Print is numerick quindi is numeric di a perfetto F5 vedete che ottengo vero quindi is numerick ci sta dicendo se il valore qua dentro in questo caso fa riferimento ad a che è 11 è un valore numerico quindi possiamo ottenere vero Oppure falso lo stesso modo potremo Mettere 11.5 otteniamo comunque vero possiamo mettere un valore Long possiamo mettere un valore è irrilevante Cosa andiamo a mettere F5 vedete che otteniamo sempre vero potremmo invece
andare a mettere magari con Renzi andiamo qua Asterisco finale e se vado mettere a F5 ottengo comunque vero perché alla fine della fiera currency è comunque un valore numerico Quindi questo è isnomarik un altro tipo di check che possiamo fare ad Esempio sulle date Quindi potremmo dire is date F5 otteniamo falso perché stiamo controllando se è una data in questo caso se io vado qui e faccio date così magari vado a mettere 11 marce 23 magari asterisco finali invio e vado comunque qui F5 ottengo comunque vero quindi isdate ci serve per verificare se si tratta
di una data allo stesso modo facciamo magari le 12 000000 am faccio invio in modo che automaticamente me lo formati vediamo Qua F5 ottengo comunque vero perché perché sappiamo che dentro date date in realtà tiene dentro date Time quindi sia una data che l'ora perciò anche l'ora rientra nella categoria date quindi Ricordatevi che date è sia data che ora Dopodiché andiamo avanti su quello che secondo me è il più importante di questo di questo video che è is Empty is Empty Se conoscete l'inglese Sapete bene che vuol dire è vuoto io faccio F5 e ottengo
Falso perché come vedete a In realtà ha un valore Ma se improvvisamente vado a fare riferimento ad una cella cerchiamola insieme Magari ha due dovrebbe esser libera diciamo a due perfetto vedete che ha due è libera nel momento in cui io vado qua puliamo tutto io Faccio F5 e ottengo vero perché effettivamente A2 è questa qua Ed è vuota capite bene quindi perché secondo me isempty è tra queste funzioni che vi faccio vedere la più importante perché Ok le altre ci permettono di capire se il valore numerico meno se è data o quant'altro ma questo
qua ci permette di capire tra le tante cose non solo una variabile che può essere Empty ma soprattutto una cella quindi l'esempio più pratico è andiamo a cancellare tutte quelle Celle che risultano ismpty vero quindi pensate quando più avanti passeremo in rassegna a Top Celle e diciamo che se questa Cella è Empty anziché lasciare lo spazio vuoto mi Scrivi dato mancante o mi Rimuovi tutta la riga Ok quindi questo può essere il discorso allo stesso modo ripeto come lo Applicate a una variabile qualsiasi lo potete anche applicare chiaramente ad un valore di una cella detto
questo proseguiamo e vi faccio vedere is object quindi is object andiamo qua mettiamo dentro a F5 ottengo falso perché Perché date è un tipo di dato chiamiamolo primitivo è basico tra quelli che abbiamo visto String Float Long Double Eccetera Mentre invece per object intendiamo qualcos'altro ad esempio i subject potrebbe essere work shits 1 quindi il primo workshop F5 vedete è vero perché Perché work cheat è di tipo work shit se vado a creare una Team W es workbook vado a mettere W qua dentro devo togliere qua Dim Scusatemi F5 vedete che è vero perché Perché
workbook worksheet application comment e quant'altro tutto sono tutti object l'abbiamo già visto quindi questo può Essere interessante per capire se durante una funzione eccetera Magari l'utente deve selezionare qualcosa mettere qualcosa anziché selezionare una cella ha messo Magari un valore numerico o altre cose quindi se noi non riusciamo a tirarne fuori un oggetto lo possiamo verificare così infine vorrei parlarvi di is Array sugli Array non ci siamo ancora arrivati e ci arriveremo a breve però voglio solo farvi vedere quindi ci arriveremo perciò non preoccupatevi ma Mi serve solo per accennarvila così poi sarà già nel retro
della vostra mente quando parleremo degli Array sapete già che esiste is Array Quindi io vado a creare a da 1 ad esempio tu 5S integer e poi magari creiamo anche B es integer senza andare ad assegnare niente Ho solo creato le variabili A e B se io vado a mettere a Is Array vero Mentre invece B is arra falso al momento questa sintassi non vi dice niente non vi spiego nemmeno cosa sono gli Array ci Arriveremo tra Credo una decina di video sarà tutto più chiaro però sapete anche che c'è questa funzione is Array Quindi
come può essere numerica date object Empty abbiamo anche is Array come capite bene QS funzioni possiamo benissimo utilizzarle nelle varie condizioni che abbiamo già cominciato a creare Quindi perché non avere lasciamo solo magari BS integer e possiamo fare B uguale ad 11 e potremmo dire B is numerick b and b è minore di 12 se faccio F5 ottengo vero Se però invece vado a mettere magari chiaramente 13 l'abbiamo già fatto F5 tengo falso oppure verifichiamo che una cella non sia vuota l'abbiamo già provato a fare il Not potremmo dire not is Empty e andiamo a
mettere a 1 perché sappiamo che non è vuota vedete A1 non è vuota Quindi io faccio F5 e ottengo vero quindi non è vuota ed effettivamente non è vuota perché c'è un valore se io andassi a togliere il Not e che ad essi isempty è vuota otterrei falso perché Effettivamente non è vuota se vado a mettere il non sto chiedendo non è vuota vero e quindi ottengo vero perché non è vuota Quindi questi sono alcuni degli esempi in cui possiamo applicare questo genere di funzioni nel prossimo video è finalmente ora di parlare dei condizionali Quindi
abbiamo creato le condizioni dobbiamo far capire al pc che se succede qualcosa devi fare così ci vediamo tra poco episodio 23 del corso di vba arriviamo finalmente a parlare Dei condizionali Quindi abbiamo creato le condizioni abbiamo visto cosa serve per verificare delle condizioni problemi adesso dobbiamo dire al computer che se una condizione si avvera deve fare qualcosa altrimenti deve fare qualcos'altro Questo costrutto si chiama if Hells che tradotto all'inglese vuol dire se Altrimenti se succede qualcosa fai questo altrimenti Fai qualcos'altro nel suo livello più becero ve lo faccio vedere è if B uguale 13 Den
fai qualcosa Quindi stiamo andando a creare un piccolo blocco di codice e cosa mettiamo dentro posso mettere magari un classico debug Print Ciao e non basta perché se faccio F5 ottengo un errore vedete blocco if senza Andy fecero suggerisce Quindi mettiamo andyf come vedete Questo è un piccolo blocco di codice legato ad un if Quindi io sono qua F5 vedete if B uguale 13 Den fai qualcosa ricapitoliamo se B è uguale a 13 che è vero Quindi se questa condizione è vera fai questa riga Sotto chiaramente dobbiamo dirgli Ten ten vuol dire allora e poi
and gif quindi if and deaf bloccano il codice fanno il blocco di codice come Sab e and Sab Serve a far capire alla macchina che è questo blocco è tutto deve leggerlo come Un'unica cosa va bene esattamente come Sab quindi if B uguale 13 Allora fai questo ok dovete tradurlo letteralmente così e come vedete io posso andare avanti poi posso fare altri altri valori ehm B uguale 14 ehm debug Punto Print e mando a schermo B F5 vedete non c'è alcun tipo di problema gif possono esistere nel corso del del programma non sono l'ultima cosa
che il PC può fare ok allo stesso modo se vado qua vado qui perfetto if B = 13 lo faccio diventare 14 F5 vedete che ottengo 14 se io invece metto qua 12 F5 ottengo 12 perché è B 2013 No allora non faccio niente e vado avanti ok Quindi questa è la versione più batcher degli if potete averne di più non è Assolutamente un problema Abbiamo poi l'alternativa perché Potremmo dire non mi basta fare questa cosa qua vorrei dirti Guarda se è così fai così Altrimenti Fai qualcos'altro perciò sempre tenendo le condizioni semplici tanto abbiamo
già in parte a fare le condizioni con end or Not non le vado a mettere qua dentro nel gif le sappiamo fare prendete esattamente la stessa condizione che abbiamo imparato a fare la piazzate qua dentro e poi gli fate Fare qualcos'altro ok Ho diviso apposta i video affinché le grandi informazioni venissero separate e ci fosse il tempo per digerirle perché se vi avessi fatto imparare adesso come far le condizioni e come applicare agli if e Leaf Hells e quant'altro sarebbe stato un disastro quindi mi permette i video che ho fatto in precedenza mi permetto di
tenere questo video dal punto di vista delle condizioni molto basico molto invece ero ma facilmente comprensibile Quindi Abbiamo detto if B = 13 andiamo a mandare a schermo qua anziché Print mettiamo sempre Ciao perfetto altrimenti come facciamo a fare altrimenti altrimenti si fa con Els io vado qua e metto sempre un debug Print ma scrivo Hell's Perfetto Quindi anziché Ciao Magari mettiamo if io faccio F5 vedete che ottengo if Perché B = 13 Se B uguale a 13 Allora mi mandi a schermo if altrimenti mi mandi a schermo Hells chiaramente virgola 13 perciò entra qua
Dentro di questa parte qua se ne frega allo stesso modo se vedo qua e faccio B = 14 F5 ottengo Hell's vedete perché è B uguale a 13 falso Allora questo lo salto e visto che ho un'alternativa va nell'alternativa quando prima non avevamo un'alternativa ma usciva da Leaf e basta continuava col programma Adesso ha un'alternativa manda a schermo lalternativa e poi prosegue con la macro se c'è altro Ok Però ne Potremmo avere più varianti ad esempio Potremmo dire valuta se un numero è negativo valuta se un numero è positivo oppure valuta sul numero 0 abbiamo
tre casistiche in questo caso come facciamo avendo solo noi due possibilità una cosa o tutto il resto allora facciamo così se B è maggiore di 0 mi mandi a schermo Positivo positivo e poi dobbiamo utilizzare un altro costrutto che si chiama El sif Altrimenti se adesso ci arriviamo è il Safe B minore di zero Den mandi a schermo Print negativo hels se Non è positivo e non è negativo che cosa può essere può essere solo zero Quindi verifichiamo insieme Poi spieghiamolo nel dettaglio Allora mettiamo 14 F5 positivo b-14 negativo B uguale a zero zero Quindi
ricapitoliamo insieme abbiamo b = 0 se B è maggiore di 0 mi scrivi positivo Quindi quando prima era 14 arrivava qua e usciva se B era meno 14 qua è maggiore no heels if questo Health ci permette di dare un'altra condizione Vedete con Les non lo possiamo fare l'elsa è l'ultima spiaggia mentre invece è il sif stiamo dicendo Ah non è maggiore di zero Allora prova se ma se è minore di zero no Quindi -14 invece lo era perciò mi andava a schermo negativo con lo 0 dice è maggiore di zero No è il sif
è minore di zero No allora non ci sono altre alternative O sei minore o sei maggiore o sei uguale a zero potevamo fare L'alternativa è il CB = 0 Ma perché mettere un'altra condizione Specifica quando si va per esclusione capite poniamo il caso che un negozio vende tre magliette nera bianca e rossa e io vi dico se se la maglietta nera c'è della mia taglia Prendila Altrimenti se questa non c'è ma c'è il melo Bianca Prendila Altrimenti prendi la prima cosa della mia taglia che trovi Ok è inutile specificare il colore si va per esclusione
Questo è il costrutto non è finita però perché è possiamo avere dentro Leaf altri if è una cosa che Molto spesso i principianti fanno fatica a capire il concetto che tutti i blocchi di codice che noi impariamo funzioni variabili Vedremo Poi cicli i condizionali eccetera finché lo scrivete nel modo corretto voi potete avere sotto parti di codice dentro if dentro cicli e quant'altro vi faccio vedere if e cerchiamo di essere maledettamente semplici Ok facciamo così if B maggiore di 0 Anzi facciamo maggiore uguale a zero altrimenti mettiamo negativo Seguite Facciamo così togliamo tutto b =
0 F5 positivo che è uguale a zero superiore se vado a mettere meno 10 mi dà chiaramente negativo o due alternative Però una volta che io sono qua dentro o qua dentro Voglio sapere se un numero è pari o dispari ci sono modi migliori per farlo più efficienti eccetera non concentratevi sul Ah ma avresti potuto scriverlo così è rilevante Al momento quello che mi interessa è farvi capire che possiamo Avere if dentro if Ok adesso che sappiamo che è positivo vogliamo sapere se è pari o dispari Quindi qua dentro faccio un po' di spazio possiamo
avere un altro if if B Mod 2 uguale 0 l'abbiamo già imparato Den che cosa mandiamo a schermo Ma andiamo a schermo pari Els Ma andiamo a schermo e mettiamo anche un andyf Ma andiamo a schermo dispari che cosa stiamo facendo ma adesso mandiamo lo schermo e vediamo abbiamo qua 10 io faccio Innanzitutto Pulisco faccio F5 ottengo pari metto 11 ottengo dispari che cosa abbiamo appena fatto e faccio un po' di sana in tentazione che non lo fa automaticamente mi urta Allora come vedete Questo è un unico blocco if giusto ma qua dentro c'è un
altro blocco if cerchiamo di capire il ragionamento Noi abbiamo B uguale 11 Innanzitutto vogliamo sapere se un numero è uguale a zero o Maggiore oppure Sei negativo Quindi abbiamo il nostro grande if per sapere se è maggiore Uguale a zero e poi abbiamo il nostro else dove è negativo Magari lo vogliamo gestire magari lo vogliamo solo mandare a schermo è totalmente irrilevante ma una volta che sappiamo che il nostro numero è positivo vogliamo sapere se è pari o dispari quindi applichiamo lo stesso concetto di If in questo if non è sbagliato Si può fare capite
questa cosa qua vi apre tante alternative Certo ci saranno situazioni in cui anziché fare degli Fanni dati potreste fare se è così End Ok avrei potuto farlo qua Però avrei dovuto gestirlo in modo diverso quindi qui Avrei potuto fare se è positivo e pari eh altrimenti devi controllare se è dispari Els è negativo ma in questo caso mi serve solo per farvi vedere che è annidato dentro questo if ho un altro if ricapitoliamo questa parte che può essere confusionare per molti se B quindi 11 modulo 2 è uguale a zero Quindi il resto della divisione
di B e 2 È 0 sappiamo che può esser pari perché 2x2 4 col resto Zero due per tre sei resto Zero 2x48 resto 0 però 2x48 se abbiamo 9 resto 1 quindi va bene 9 - 8 fare sto uno se il resto della divisione tra B e 2 è uguale a 0 Allora è pari Els è dispari lo stesso discorso che abbiamo fatto con elsef eccetera lo potete applicare qua dentro le stesse condizioni con and not Or le stesse condizioni istruzioni con uguale diverso qua dentro Potreste avere altri eccetera Potete andare avanti all'infinito non
è assolutamente un problema Quindi io spero che if Hells e helsif adesso siano Chiari Mi raccomando soprattutto alla sintassi if condizione Danny Els chiudete con andyf se non c'è l'hells lasciate solo andy's Altrimenti andate a mettere poi elsif condizione Den fate un po' di pratica perché vi deve solo entrare in testa è un meccanismo che in un'ora di pratica vi dovrebbe restare in testa Poi quando comincerete a lavorarci Magari ve ne dimenticate un attimino si tratta di lavorarci un pochino Poi vi giuro che sono quei costrutti che diventano talmente logica dentro di voi cioè una
volta che capite la logica Non avete modo di sbagliare perché ve lo ricordate poi se andrete a lavorare con più linguaggi di programmazione potresti dimenticarmi la sintassi perché in alcuni si usa il Den alcuni si usa le parentesi alcuni non si mette niente alcuni solo il punto e virgola Insomma Ci sono tantissime situazioni diverse La sintassi ve la potete dimenticare ma la logica è trasversale su ogni linguaggio direi che nel prossimo video noi possiamo andare avanti e parliamo del Select case non vi dico niente Ci vediamo tra poco episodio 24 del corso di vba oggi
parliamo del Select case il Select case se arrivate da altri linguaggi di programmazione lo conoscete come switch per chi invece è nuovo lo possiamo definire come una valida Alternativa a if elseif El Safe El sif Si appunto avete un'unica espressione che vi dà un valore quindi avete una condizione che vi può dare tanti valori diversi Ma le possibilità sono tante Quindi anziché scrivere if helsi Felci felsi Sì felsifell sif hels c'è un modo migliore che è il Select case quindi vi faccio vedere Giusto due esempi in cui potremmo utilizzarlo chiaramente sono esempi dimostrativi Però una
volta che imparate il Select sapete che ce l'avete A disposizione vi tornerà in mente quando effettivamente ci sarà la necessità di utilizzarlo voi Cominciate a scrivere codice a un certo punto direte Ma non è che si può scrivere meglio non c'è un modo migliore per farlo ed effettivamente avrete il Select come freccia al vostro Arco chiaramente non è un problema se utilizzate è il sì Felci però a un certo punto vi renderete conto che forse anziché fare 10 casistiche così ha più senso utilizzare Il Select case Ok quindi Cominciamo con Select case prendiamo B e
vogliamo aggiungerci diverse casistiche ad esempio possiamo verificare che il numero case è zero se Zero possiamo andare a scrivere un bel debug punto Print È 0 Nel caso invece sia magari compreso tra 1 tu 5 quindi compreso tra 1 e 5 andiamo a copiare c'è un po' di spazio e possiamo scrivere compreso tra 1 e 5 Oppure vogliamo andare a vedere se magari non compreso Ma è una serie di numeri specifica quindi case potrebbe essere 6 7 9 15 e allora in questo caso possiamo dire debug Print È un numero tra e andiamo a pescare
questi e siamo a posto ok giusto un esempio vedete Quant'è più veloce da scrivere rispetto a il if elsea con condizione Dan eccetera mettiamo solo i valori che ci interessano e andiamo a capo niente Den niente di niente Ok semplicemente poi chiudiamo con end Select faccio invio Avrete che automaticamente Me lo chiude una volta che siamo qua F5 e però non succede niente perché ho tralasciato una cosa importante che adesso vediamo quindi andiamo a mettere un valore che abbiamo ottenuto in considerazione vedete è zero andiamo a mettere due è compreso tra 1 e 5 oppure
devo mettere 7 TAC vedete è compreso tra 6 7 9 è un numero tra 6 7 9 e 15 nel caso di casistiche che non abbiamo effettivamente controllato perché Potremmo controllare numeri infiniti range infiniti eccetera C'è un'ultima casistica che già conosciamo che si chiama Case Hells il case Els è proprio l'ultima spiaggia Se tutta sta roba Scusatemi ho copiato la cosa sbagliata Se tutta sta roba qua sopra non è niente allora è qualcos'altro è un numero non trattato mettiamola così qua dentro mettiamo 74 io vado qui F5 vedete che ha un numero non trattato e
soprattutto vedete come è ben pulita Anzi dovevamo Entrare un pochino qua avete come ben pulita la sintassi Select case B so che dobbiamo tenere in considerazione un valore Oppure potrebbe essere anche B più ricordarci meno 5 io faccio F5 numero non trattato perché 74 Anzi facciamo 74 meno 70 fa 4 + 5 fa 9 F5 al numero tra 6 7 9 e 15 questo gli fa capire come non importa cosa ci sia qui L'importante è che alla fine ci torna un valore Ok una stringa una data quello che volete deve Essere un unico valore finale
e questo valore lo andiamo a verificare mentre invece cosa succede che con if Hells eccetera andiamo a verificare subito la condizione Qua invece prendiamo un'espressione e dopo verifichiamo è questo sì no è questo sì no mentre invece con il sif ogni volta dovremmo verificare che questa condizione o dobbiamo farla altrove è questa condizione è risultato uguale a zero Sì no è questa condizione compreso tra 1 e 5 no Invece qua è molto più diretto e come vedete lo utilizziamo per espressioni o comunque per casistiche abbastanza lunghe un esempio palese che potremmo utilizzare ad esempio sulla
stringa andando a mettere il giorno della settimana quindi lo lascio come B Però potremmo mettere banalmente qua lunedì e quindi potremmo fare che case B e nel primo case mettiamo lune di Però magari lo prendiamo dal dall'italiano all'inglese Quindi potremmo scrivere Monday ad esempio così oppure Fatemi copiare velocemente poi vi faccio vedere Perfetto Ci siamo quasi vedete ho messo lunedì martedì mercoledì poniamo il caso che noi lavoriamo veramente tre giorni a settimana Els anziché monday tuesday Wes Day mettiamo weekend perfetto poteva mettere tutti i giorni della settimana però andavamo troppo lunghi per nessun motivo perciò
teniamola così E se io vado qua mi darà che vedete Monday Magari mettiamo Venerdì venerdì giusto un esempio TAC chiaramente mi darà weekend ovviamente è gestito male da questo punto di vista perché non prende in considerazione effettivamente i giorni se io scrivo qualsiasi cosa mi darà è weekend però mi serve per farvi capire giusto un esempio chiaro di come potremmo utilizzarlo in relazione alle stringhe Ok quindi questo era il Select case nel prossimo video cominciamo a parlare dei cicli Ci vediamo tra poco episodio 25 del corso Di vba oggi introduciamo i loop o cicli ci
sarà qualche video in cui ne parleremo perché ce ne sono diversi e soprattutto ci sono tante regole che possono essere collegate oggi parliamo del for loop ovvero il ciclo for Che cos'è un ciclo A cosa serve perché li utilizziamo immaginate i cicli come dei blocchi di codice che ci aiutano a ripetere un'azione da fare Finché una condizione è verificata quindi mentre prima con i davamo una condizione e la Macchina andava a fare quella cosa e basta Non gli possiamo dire finché questa condizione vera continua a fare qualcosa ad esempio se io prendo quale Celle potrei
dire prendendo questo range mi prendi tutto il Range Anzi magari facciamo così finché non c'è niente continua a scrivere oppure da 1 a 8 contiene a scrivere quindi fai uno e scrivi fai due e scrivi fai tre e scrivi Oppure prendiamo un range dove ci sono tanti dati e per tutto il Range Ad Esempio può essere da 1 a 15 finché non finisci il Range mi togli le celle vuote o me le riempi con qualcosa quindi capite che dei tipi di approcci del genere che sono meccanici ripetitivi rientrano bene in un ciclo perché perché una
volta che diamo una condizione la macchina andrà ad eseguire qualcosa ad esempio Vi potrei dire giusto per fare un esempio un po' più a subito da qui a 16 alla riga 16 mi scrivi magari quello che è il nome effettivo della Cella Quindi A1 A2 A3 quindi ci mettiamo qua da 1 a 16 1 è compreso tra 1 e 16 sì quindi scrivo a uno due è compreso tra 1 e 16 sì scrivo A2 andiamo avanti così arrivo fino a 14 Perfetto poi 15 è compreso tra 1 e 16 sì a 15 16 è compreso
Sì dopodiché il nostro cervello è bravo perché perché vede Ah non devo andare sotto però mentre invece il computer arriva qua e dice 17 17 compreso no allora mi fermo vedete quindi la condizione era che la riga Fosse compresa tra 1 e 16 il computer poi è andato sotto e ha detto vado sotto 17 no 17 è maggiore di 16 mi fermo Ok ripeto il nostro cervello fa questo calcolo in modo intuitivo lo vediamo ci fermiamo il computer deve passare a 17 effettivamente accorgersene e fermarsi però vedete che questo genere di approccio è un approccio
ciclico è un approccio dove andiamo a fare la stessa cosa più volte allo stesso modo potrei dirvi da 1 a 16 Tutti i numeri pari me li fate di sfondo rosso va bene quindi ci mettiamo qua ragioniamo come una macchina perché noi potremmo fare così TAC TAC TAC TAC mettere tutto rosso Ok ma una macchina lavora c'è la percella quindi uno è pari No due è pari Sì tre è pari No 4 è pari Sì vedete cosa sto facendo ad ogni fase che chiameremo iterazione del ciclo quindi il ciclo è tutto da 1 a 16
perché il ciclo è una ripetizione di qualcosa da fare l'iterazione è quella cosa da Fare ogni singola volta quindi la prima volta Cosa faccio Mi posiziono su uno guardo il numero qualcuno e cerco di capire è pari noi lo sappiamo fare così guardandolo ma nel nostro cervello Anzi Scusatemi nel computer il computer dice Uno fratto 2 modulo resto 0 no Quindi vuol dire che uno non è pari scendo di uno e adesso ho due anzi non è che scendo incremento di uno quindi da uno finisco a 2 2 modulo 2 = 0 è pari Sì
allora vado a colorare la Cella di giallo incremento di uno arrivo a tre tre modulo 2 è pari No non faccio niente incremento di uno va bene se avete capito Questo discorso allora avete già capito i cicli perché io adesso vado qua e vi faccio vedere come possiamo creare un ciclo for quindi mi metto qui e faccio form Potete chiamarlo number Potete chiamarlo i tiratore iterato generalmente si chiama i in tutti i linguaggi di programmazione si chiama i has integer oppure Long Dipende Quanto mangiare lunghi uguale scegliete un numero di partenza generalmente si comincia a
programmare da zero ma qua vedete che cominciamo da uno perciò ripeto in Excel molto spesso si comincia da 1 quindi for i is integer uguale 1 ma potevate scrivere anche la stessa cosa così qua in alto eh Dim is integer Scusate faccio così e poi mettevate qua i = 1 dovete dire Fin dove volete arrivare Tu ad esempio Vogliamo arrivare a 16 Ok Che cosa facciamo Vogliamo fare Qualcosa in questo caso mandiamo un debug punto Print di I E poi qua dentro dobbiamo chiamare Next è un costrutto leggermente diverso rispetto aif però vedete che è
comunque un blocco di codice che cosa fa questo blocco di codice Allora innanzitutto parte da uno come partiremo noi da qua vedete partiamo da uno Ok se vincete qua Glielo dobbiamo dire noi se il discorso è sempre questo sono molto più bravi di un computer Quindi noi glielo dobbiamo dire che parti da uno mentre invece noi lo sappiamo che partiamo da uno quindi gli stiamo dicendo parto da uno tu vuol dire fino a da 1 a 16 ogni volta che cosa fai Mi mandi a schermo il contatore l'iteratore qua sotto anziché avere and for come
potreste pensare in realtà c'è Next Next vuol dire semplicemente vai al prossimo quindi incrementa di uno Ok vuol dire semplicemente questo esattamente quello che abbiamo fatto Prima uno è pari No Next diventa Due Due è pari Sì riempio Next arriva Tre Tre è pari no e via discorrendo se avete capito Questo discorso Avete già capito il for loop Io vi faccio vedere pulisco tutto per bene F5 e vedete che ci ha mandato a schermo da 1 a 16 un po' infelice come scelta potevo fare 5 per tenere le cose un po' più semplici vedete da
1 a 5 quindi questa è la base del for loop Voi potreste dirmi ok Edo però bellissimo Eh cosa mi serve vi Faccio un esempio un pochino più pratico ad esempio prendiamo Magari sels andiamo a prendere una cella particolare in questo caso voglio prendere la cella della riga che cambia quindi riga 1 2 3 sappiamo che l'unica cosa che cambia qua è la i quindi la riga la identifichiamo con la I e la colonna la identifichiamo con la 1 se al momento non mi seguite su sta cosa adesso ve la spiego un attimino ma non
preoccupatevi Perché Perché tanto Arriveremo più avanti a parlare di ste Cose Intanto non è cell ma è seltz più avanti Vi ho già detto nella terza parte ci dedicheremo a lavorare direttamente con Excel al momento vi sto spiegando Come programmare nella terza parte lavoriamo con sels range e quant'altro li stiamo solo accennando giusto per prendere familiarità col fatto che esistono Però ne parleremo meglio dopo intanto a fianco Eccoci qua e voglio dire che cartella i1 ha come valore i io vado qui Faccio così tolgo questo F5 e vedete chiamiamo latto a schermo un 2 3
4 5 qua il fatto è che abbiamo la formattazione errata prendiamo il formato Celle tasto destro formato Celle e mettiamo tutto come numero semplice Ok così ha senso vedete Perfetto Adesso vedete che quello che ha scritto è esattamente ciò che succedeva qua Ok cambiava solo la formattazione delle Celle ma non faceva alcun tipo di differenza che cosa abbiamo detto abbiamo detto che Prendiamo la cella che è colonna 1 perché questa è riga e colonna ma lo spiegheremo meglio più avanti La colonna è sempre la 1 quindi la a e la cella cambia che diventa uno
due tre quattro ultimo Next 5 Ok scrive 5 Next 6 arriva qui 6 È tra 1 e 5 no vado avanti Ok se qua ci fosse un debug Print manderebbe a schermo perché servirebbe a seguire il corso della macro Ok quindi già così abbiamo fatto qualcosa in un po' più realistico Semplice però vi fa capire come possiamo utilizzare i for loop collegati effettivamente ad Excel Possiamo aggiungere un'altra cosa che si chiama step Non siamo obbligati ad andare di uno in uno se vogliamo possiamo utilizzare lo step quando si dice andare a step vuol dire fare
le cose passo passo ma nessuno ci vieta di cambiare la larghezza di questo passo di default È uno ma perché non avere un passo di due Ad esempio se io vado qua e faccio un Passo di due magari aumentiamolo a 10 io pulisco e se adesso faccio F5 vedete che partendo da 1 mi ha messo dentro uno dopo perché ha fatto Next ma il Next è di due vedete quindi questo step vuol dire che mi vai di due in due partendo da uno se invece avessi messo due vado a pulire F5 vedete parte da due
va avanti di due sei livello 8 e 10 ma se ne volessimo andare al contrario se ne volessimo partire da 10 e andare a ritroso lo possiamo assolutamente fare Utilizzando step negativi Quindi partiamo da 10 e andiamo qua anziché due andiamo a -2 se io faccio F5 ho sbagliato 10 tu 10 Scusatemi 10 tu uno Facciamo partire vedete che è andato al contrario quindi utilizzando step possiamo andare sia avanti che indietro Va bene Anche perché quando andremo a cancellare le righe Generalmente per cancellare le righe si passa dal basso verso l'alto perché ne parliamo meglio
più avanti Ma se io sono qua e ho la 3 e Cancello faccio elimina vedete che scalano adesso la Tre c'è un valore quindi per cancellare le righe in modo sicuro si passa dal basso verso l'alto si passa dall'ultima poi si va qua poi non mi interessa se questa scala super che tanto vado sopra eccetera è un discorso che vedremo più avanti quando lavoreremo effettivamente dentro Excel però presu abbiate capito oltre questo possiamo utilizzare for addidati così come potremmo avere degli if ad esempio Vi faccio vedere facciamo da uno 10 lo step è uno e
possiamo mettere che If I = 5 cosa facciamo Den qua dentro nella cella mi metti Ciao Sono cinque perfetto oppure Els prendiamo sempre la nostra cella così e qua dentro ci limitiamo a mettere i assicuratevi di chiudere and if perfetto E se io faccio partire vedete che Ciao Sono cinque me l'ha preso perché ho utilizzato un if all'interno allo stesso modo Potreste avere if con dentro i for Potreste avere Forcon dentro i for quindi se ne volessimo andare in diagonale far prima le righe poi le colonne potremo utilizzare un for dentro un for quindi form
mettiamo così tac Copiamo andiamo mettiamo dentro ne mettiamo un altro dobbiamo mettere però un altro Next Eccoci qua togliamo tutta sta roba e dentro andiamo a mettere cell non i a sto giro ma dobbiamo usare qualcos'altro Anzi mettiamo riga per intenderci quindi questa è riga quindi riga es integer e Colonna S integer abbiamo poi colonna la usiamo qua e qua mettiamo colonna qui mettiamo riga e qua dentro andiamo a mettere riga due punti spazio end riga Adesso vedete cosa sta succedendo spazio colonna due punti spazio end colonna colonna perfetto che cosa ho appena fatto Innanzitutto
possiamo anche andare a capo vi faccio vedere una cosa molto divertente underscore andiamo a capo e non mi dà errore mettendo l'under Score stiamo dicendo a vba e guarda che Scarica qua troppo lunga Non riesco a leggerla faccio fatica di conseguenza è un po' come la capo quando andavamo a capo sui libri di scuola con cos'era la stanghetta e doppie stagno non mi ricordo come si andava a capo a scuola so che sembra forse era l'uguale non mi ricordo quando dicevamo alla maestra e stiamo andando a capo perché stiamo tagliando la la parola a metà
va bene possiamo fare la stessa cosa così ora se io vado a pulire dobbiamo arrivare a 5 Quindi devo fare un po' di spazio qui diciamo così facciamo così 1 2 3 4 5 arriviamo alla e io faccio F5 e vedete allarghiamo un pelino facciamo TAC TAC TAC TAC non le guardiamo tutte Vabbè riusciamo a vederle tutte che cosa abbiamo riga 1 giusto colonna 1 giusto riga 1 Colonna 2 riga 1 colonna 3 riga 4 con la 4 5 Dopodiché scende riga 2 colonna 1 vedete assolutamente senso come l'abbiamo fatto l'abbiamo fatto facendo un doppio
for un for annidato Quindi col primo for siamo passati su una riga facciamoli insieme perché qua ha senso su Excel si vede grafico il nostro cervello riesce a calcolarlo ma qua no allora il primo for prende la riga 1 da 1 a 5 Va bene lo step è uno in realtà potevamo togliere anche lo step Scusatemi Perfetto Era inutile Quindi dice riga 1 da 1 a 5 entro nella prima e sono a uno da qua colonna da 1 a 5 quindi lui è sempre nella riga 1 mi vedete riga 1 colonna 1 Colonna 2 va
Avanti colonna 3 4 5 arriva la Sesta Colonna dice Eh ma io ho solo colonna da 1 a 6 E allora cosa fa scende qua nello spazio bianco scende sul Next e questa diventa la riga 2 vedete riga 2 e poi si fa colonna 1 2 3 4 5 arriva la 6 No io ho finito vado avanti riga 3 e via discorrendo quando ha finito anche le righe esce prosegue Ok Io mi ritengo molto soddisfatto di questo video Spero sia tutto chiaro abbiamo visto veramente Veramente tanto e il Four come Leaf sono costrutti Che utilizzeremo
durante tutto il corso della programmazione veramente come vi dicevo in tutti i linguaggi di programmazione ci sono nel prossimo video parliamo del freach è un modo diverso di andare a ciclare qualcosa ci vediamo tra poco episodio 26 del corso di vba oggi voglio parlarvi di un altro ciclo for questa volta parliamo del forich il fuoric non è molto complesso come concetto l'altra volta che abbiamo Capito il for il fuoriche in sé non è molto complicato ma differisce nel modo in cui la andiamo ad applicare perché mentre prima utilizzavamo il contatore adesso anziché usare noi un
contatore passare in rassegna a cose Ci limitiamo a fornire a questo frecce una collezione di cose Ok È come se noi dessimo già direttamente una collezione di libri ad esempio e finché hai libri Vai avanti nel senso che prima io ti dicevo vai dal libro uno al libro 16 qua adesso anche Se ti do 16 libri non ho bisogno di dirtelo perché automaticamente passa in rassegna a tutti Dovrebbe risultare un po' più facile adesso che vi faccio vedere Innanzitutto partiamo dal presupposto che è fuori X vuol dire per ciascuno ok Quindi vuol dire che mentre
noi prima col for andavamo a dare un intervallo e applicavamo quell'intervallo a qualcos'altro adesso per ciascun per ciascun per ciascun elemento di qualcosa mi fai questa cosa Va bene quindi dovrebbe avere un po' più senso soprattutto perché adesso ve lo propongo in ottica range workshop e quant'altro Allora cominciamo a creare magari una Dimension work shit vs as work shit progetto quindi sto prendendo la mia variabile vs che è un workshop Dopodiché faccio fuoris in work shits vado a capo mi limito a fare un bel debug punto printer di cosa dvs vado qua e faccio Next
prima Di far Play andiamo a mettere magari name F5 e come vedete ottengo ogni foglio che ho che cosa abbiamo appena fatto lo vedete che non è niente di complicato una volta che capite quello che abbiamo fatto qua lo potete applicare a qualsiasi operazione che volete fare Allora innanzitutto abbiamo creato una variabile che utilizziamo come contatore va bene è la classica variabile del singolo elemento perché perché noi tiamo impasto work shits Works lo sapete è un insieme di fogli ovvero va a prendere tutti i fogli del nostro workbook foglio 1 foglio 2 posso aggiungere foglio
3 foglio 4 nostro foglio 5 e stiamo dicendo per ogni foglio in fogli quindi per ciascun foglio 1 foglio 2 eccetera mi mandi a schermo il loro nome questo Next lo conoscete quindi passa a prendere il primo prende tutti i workt e ha una Collection ragioniamo come se stessimo guardando noi ne facessimo il calcolo Nella nostra mente vediamo che abbiamo una serie di fogli è più di uno quello che noi vediamo qua come più fogli lui lo vede come worships quello che noi vediamo come singolo foglio lui lo vede come vs quindi ne abbiamo qua
i nostri worket mi vedete qua in basso Noi abbiamo qua più fogli Questo è un vs faccio Next altro vs ok e sto prendendo il nome foglio 2 quindi for Reach vuol dire per ciascun elemento in ciò che ti mando che cosa fai Mi mandi a schermo il Loro nome l'elemento non è casuale è una variabile che abbiamo dichiarato come worksho perché se io improvvisamente la vado a chiamare workbook e faccio F5 Abbiamo un problema quindi capite che la variabile qua dentro l'elemento deve corrispondere effettivamente a ciò che la nostra Collection ci manda i worksheets
sono una collezione di worship quindi i fogli sono una collezione di foglio foglio foglio foglio foglio foglio foglio eccetera Allo stesso modo possiamo fare ad esempio range proviamo a prendere range e andiamo a prendere il Range proprio una sintassi diversa anziché cella 1 virgola cella 2 vi faccio vedere un'altra sintassi e facciamo magari da A1 due punti B 10 Facciamo così ho sbagliato Scusatemi questa parte qua devo copiarla sotto quindi ricapitoliamo Dim vs chiamiamolo vs oppure B Se non volete confondervi Dim B es range può essere singolo o più Dopodiché passiamo Per ogni un commento
in range A1 b10 che cosa sarà questo B B range ma ogni singolo range è una cella quindi uno due tre quattro cinque sei sette otto nove dieci che cosa facciamo per ciascun elemento vogliamo magari questo debug che non ci interessa e possiamo andare a mettere B punto Value uguale Ciao Guardate sulla sinistra F5 e vedete chiaramente qua è questione di formattazione abbiamo giocato per tutto il corso Ovvio che la Formattazione è diversa Non preoccupatevi però vedete che da A1 ab10 per ciascuna cella in questo range è andato a mettere ciao ciao ciao ciao ciao
la stessa cosa ci possiamo buttare dentro if se sono pari Fai questo se sono dispari fai questo if is Empty mettici dentro qualcosa va bene quindi capite come adesso possiamo andare a mettere insieme tutto ciò che abbiamo imparato in precedenza per concludere Voglio farvi vedere come possiamo Utilizzare il però collegato alla selezione dell'utente Quindi anziché andare a prendere noi a mano qua potremmo collegarci alla selezione attuale dell'utente una cosa tipo quando parte la macro se hai già roba selezionata Vai a mettermi dentro Ciao Quindi cosa potremmo fare Dim anziché B andiamo a mettere cella for
each cella in anziché range facciamo Selection vedete facendo così io vado a selezionare queste vado qua F5 ho un Errore perché Perché chiaramente sto facendo bi Value facciamo ripartire vedete Ciao Mi metto Qui prendo queste F5 preso tutto questo per dimostrarvi come si possiamo utilizzare le collezioni che abbiamo già come i fogli i workbox Sì possiamo utilizzare un range che andiamo a mettere noi a tavolino Ma possiamo anche utilizzare una Selection di conseguenza possiamo andare a prendere direttamente ciò che è la selezione dell'utente Questo è il Forich il fuorich automaticamente Guarda che cosa abbiamo selezionato
o guarda già tutti I work it eccetera e si occupa per ciascun elemento di fare qualcos'altro mentre invece il for Siamo noi che andiamo a fare un'interazione a mano e gli diciamo Prendimi la cella vi ricordate che abbiamo fatto seltz riga virgola colonna vi ricordate perché perché facevamo noi il ciclo fuori e andavamo a prendere i singoli indici Ok mentre invece qua se ne occupa Lui automaticamente Se noi li andiamo a fornire una collezione di oggetti lui automaticamente passa in rassegna e sa cosa deve fare in base a ciò che abbiamo messo qua dentro Direi
che è tutto nel prossimo video parliamo di web che abbiamo già visto all'inizio inizio del corso e sarà tutto molto più chiaro Ci vediamo tra poco episodio 27 del corso di vba oggi voglio parlarvi del costrutto weff il costruttore web ci serve per andare a Risparmiare tanto tempo quando andiamo a mettere una serie abbastanza lunga di proprietà su quello che può essere uno stesso Oggetto forse definita così può sembrare strana In realtà lo abbiamo già visto ad inizio corso quando abbiamo provato a cambiare tante cose sul font l'abbiamo visto Wells Selection Però all'epoca non sapevamo
cosa fosse per arrivare voglio mostrarvi Però qual è il nostro problema perché se abbiamo il problema capite perché lo utilizziamo Quindi prendiamo una cella qualsiasi e andiamo a mettere ad esempio qua range Oppure possiamo usare Selection Fate come volete Selection oppure range selection.font.name devo mettere Magari abody poi possiamo mettere Selection Fatemi copiare perché sennò ci stiamo qua veramente una vita ed è ciò che che non mi piace Selection punto font Size andiamo a mettere uguale a 25 punto color uguale vibi Red possiamo mettere Selection font punto Normalik uguale a con la I maiuscola uguale a
true quindi lo vogliamo in corsivo andiamo a mettere magari anche del Bold uguale True e tanto per gradire facciamo anche un underline va bene Abbiamo fatto un po' di cose e vedete che se io vado qua e scrivo del testo magari non qua che è già rosso andiamo Qui scrivo nel testo selezioniamo mi posiziono sulla macro F5 vedete che è stato cambiato quindi quello che abbiamo fatto è andare a Cambiare letteralmente sei proprietà di una cella ma potremmo avere anche più Cella è una cosa che si può fare abbastanza spesso Qual è il discorso mi
sposto su foglio 2 che dovrebbe esserci meno formattazione e al largo un filino a parte la cella A1 Qual è il discorso che una cosa del genere vedete quanto tempo porta via dobbiamo copiare incollare copiare e incollare Insomma diventa abbastanza lungo e oltre al fatto che da vedere È abbastanza Bruttino però non è niente di incredibile Perché se ci pensate io scrivo qua magari faccio tasto destro e comincio cambio da calibri ad abody poi qua mi metto in 26 tolgo il corsivo metto questo vado a cambiare il colore facciamo blu Insomma posso andare a fare
tante cose con il Font perciò non è niente di astratto non è una cosa che stiamo facendo giusto per pura pratica per dimostrarvi il Web è una cosa che succede spesso magari non su una sola Cella ma può succedere su più Celle Come possiamo andare a sostituire questo codice Voi potreste pensare Beh andiamo di variabili No Edo ci ha insegnato che con una variabile possiamo andare a racchiudere una stessa parte di codice E riutilizzarla facciamolo Dim B magari S range Proviamo così B uguale a Selection perché no E allora noi andiamo di B e mettiamo
qua B B B B B B in realtà potremmo fare anche B è uguale a font e andare a fare B Appunto Selection.font io mi posiziono qua scrivo scrivo faccio F5 e vedete che abbiamo un problema che cosa dice dice che vuole il blocco web che è esattamente ciò di cui dobbiamo parlare adesso quindi con le variabili non funziona dobbiamo passare per forza per il Web il web è un costrutto di codice un blocco di codice esattamente come if for ecc Quindi comincia con Welt e finisce con end perciò ci mettiamo qua e facciamo weff
perfetto e sotto andiamo a Chiudere con end Qual è il discorso che utilizziamo con web la variabile che ci interessa Quindi anziché avere la variabile qua fuori e richiamarla qui andiamo a fare una cosa del genere Guardate prendiamo questa parte tutto il resto a capo e soprattutto senza Selection TAC TAC TAC TAC sposto quindi che cosa abbiamo abbiamo il blocco Ue che ci dà una variabile ed entro possiamo andare ad appendere vedete selection.font Name.fon size.font color in realtà Scusatemi ho tenuto font ma non dovevo Ecco qua così è corretto mi sono distratto Quindi selection.font la
nostra variabile poi abbiamo name Size color italic gold underline e facciamo la stessa cosa che abbiamo fatto prima se adesso metto qua e faccio F5 non succede niente perché ve lo dico subito perché ci manca and weff E allora mi riposizione F5 vedete che è cambiato tutto e Uno potrebbe dirmi malware lo Posso utilizzare solo col font Assolutamente no potete andare a creare un altro web per un altro tipo di oggetto Quindi se dovete utilizzare qualche funzionalità qualche proprietà in Comune fate un altro web Perché chiaramente se qua dobbiamo chiamare qualcosa per l'interior ad esempio
per il background Selection punto interior non lo possiamo fare perché noi siamo qua e facciamo Selection punto interior uguale v b Red Fatemi fare F5 Giustamente questo punto color F5 vedete che l'ho colorato ma da qua con selection.font non posso chiamarlo perché vedete che io ho solo Selection come potrei fare per utilizzare l'interior qua dentro dovrei togliere il Font da qua vedete dovrei togliere il Font da qua e metto punto font Copiamo E allora vado qui avendo poi solo la Selection selezionata posso fare così molto bene e magari andiamo a cambiare il colore mettiamo RGB
e passiamo a 0,255,0 Togliamo questo io mi posiziono qua sotto scrivo il testo dimostrativo e se adesso vado qua F5 vedete così mi ha messo sia l'interior che tutte le varie proprietà del font perché perché la variabile Questa è la variabile del Wave ha tralasciato il Font quindi a Selection posso agganciare font e interior e ogni e il Font ha le sue proprietà interior ha le sue proprietà quindi più indietro state con la Variabile del web più riuscite a mettere sotto l'ombrello maggiori elementi maggiori proprietà da cambiare più siete specifici ad esempio punto font Voi
capite che punto font non ha punto interrogativo perciò non potete farlo Dipende come ve la volete gestire Ok quindi Dipenderà in base a livello logico con cui andate a scrivere il codice non c'è un modo giusto per farlo c'è il modo in cui torna comodo a voi e direi che con i costruttori web abbiamo Finito ehm ci vediamo nel prossimo video episodio 28 del corso di vba oggi voglio parlarvi di due barra tre parole chiave importanti che possiamo utilizzare si tratta della parola chiave Exit applicata a Saab Exit applicato a Forre e poi della possibilità
di skippare un'interazione di saltare un'interazione del ciclo for Chi ha già programmato Probabilmente sa già cosa intendo per chi invece un'esperienza Non preoccupatevi ci arriveremo si tratta di Quello che sarebbe il continuum quindi continuare che però vediamo in modo diverso utilizzando go to quindi go to vuol dire Vai a va bene quindi Queste sono le due parole chiavi exit e go to però vedete che sono due applicazioni diverse per exit e poi go to Allora cominciamo Innanzitutto molto semplicemente dal Exit Sab se avete visto abbiamo quasab enseb che cosa sarà mai Exit Sab Exit Innanzitutto
vuol dire uscire di conseguenza se io dico esci Sab sto dicendo non mi interessa quello che succede dopo tu esci a prescindere vi faccio vedere Allora innanzitutto andiamo a creare un bel debug punto Print e io scrivo Ciao Vado di F5 e vedete che ho Ciao Il discorso è che se io vado a mettere Davanti a questa riga Exit Saab e Quindi vado a fare F5 vedete che non succede niente per dimostrarvi che sta effettivamente funzionando prima di Exit Sab io scrivo qualcos'altro F5 mi avrete che io tengo solo anziché Ciao Quindi questo è l'utilizzo
basico cioè l'effetto che ha se io vado a mettere Exit Sab non importa Cosa c'è dopo Exit Sab vuol dire Esci dalla macro Ok una situazione in cui potrebbe succedere è dietro un if chiaramente quindi succedono diverse cose ci potrebbe essere un errore o qualsiasi altra situazione in cui Noi decidiamo se succede questa cosa esci dalla macro non continuare va bene quindi è molto più probabile che noi potremmo avere un if Quindi allora togliamo qua questo e andiamo a mettere che x è uguale a 10 vado qua ifx uguale 5 Den e poi qua sotto
and Leaf io 5 vedete che arriva il Ciao Se però vado qua a mettere x = 10 Ed effettivamente X uguale a 10 F5 non succede niente perché Perché chiaramente if = 10 Sì Exit Sab e non ci arriva nemmeno qua a Ciao Quindi questo è il modo più becero e basico per spiegarvi exitsab poi chiaramente sta a voi capire quando vi serve utilizzarlo Però funziona così una volta che c'è Exit Sab tutto ciò che c'è dietro o sotto non è più importante va bene allo stesso modo applichiamo lo stesso concetto con il for però
il for è leggermente diverso rispetto ad exitsab vi faccio vedere for tolgo qua x x uguale a 1 to 10 vado a capo mettiamo col nostro debug Print come al solito debug Print di X andiamo di next X F5 ho scritto the pub Porca miseria F5 perfetto vedete che abbiamo il nostro Forre che manda schermo da 1 a 10 e poi c'è il debug Print Ciao Fin qua tutto bene roba classica che abbiamo già visto ora Cosa succede se io vado a mettere in questore un Exit for e faccio F5 vedete che ottengo solo ciao
perché chiaramente perché in questo caso che cosa ho fatto già la prima iterazione ho fatto Exit for quindi è arrivato x = 1 Exit Poor è uscito non ha fatto neanche il debug Print non ha fatto Next mi ha messo solo Ciao la differenza sostanziale con Exitsab ed Exit for è che Exit pour esce esclusivamente dal for quindi se noi diciamo exit poll esci dal ciclo for non uscire da Exit Sab Tuttavia se io dovessi mettere una cosa del genere Exit Saab cancello qua sotto F5 giustamente lo stesso effetto Exit Sab esce sempre a prescindere
dalla macro mentre invece Exit for esce esclusivamente dal ciclo for e continua con ciò che c'è dietro allo stesso modo vi faccio vedere un funzionamento di Exit for Quindi Potremmo avere un andiamo qua ifx uguale a 5 Ten ci mettiamo qua Exit for Hand if Facciamo così per leggermente diamo un po' di spazio e vedete che abbiamo il nostro for e se x è uguale a 5 e prima o poi lo sarà facciamo Exit for di conseguenza ci prenderà da 1 a 4 e poi ci prenderà Ciao provare per credere F5 Vedete un due tre
quattro cinque Scusatemi x = 5 sì allora esci dal for continua e mi fai un debug Print di ciao Come vi ho già detto tutti questi concetti li potete mischiare quindi if Four eccetera eccetera non è assolutamente un alcun problema la cosa un po' più complessa o innovativa per quello che abbiamo fatto è il cosiddetto continuo nel programmatore lo conosciamo come continuum in realtà qua è leggermente diverso il discorso che sta dietro a continue è molto semplice pensate che x è uguale a 5 giusto Ma anziché x è uguale a 5 uscire dal for Io
Voglio semplicemente saltarlo Ok quindi pensate una situazione in cui potremmo avere un for in cui passiamo in rassegna a delle righe se la cella è vuota Non ha alcun valore saltala ad esempio non non formattarla non fare niente allo stesso modo potremmo dire che se x è uguale a 5 devi semplicemente saltarla non mi devi uscire da tutto il ciclo vedete che qua arriva fino a 4 e non va oltre quello che vogliamo fare noi è se trovi 5 o in Una situazione più realistica se trovi una cella vuota saltala quindi fai un 2 3
4 6 7 8 9 10 va bene questo è il risultato a cui vogliamo ambire come possiamo fare utilizziamo quella che è la parola chiave go to che non vedremo nel dettaglio in questo corso perché ci serve in modo ristretto qua è un qualcosa Un po' più avanzata però per citarvela in questa lezione in modo che sapete che esiste Se poi volete approfondirla per altre circostanze Potete assolutamente farlo perché già adesso avete un'idea di cosa sia in grado di fare ora go to deve andare direttamente al Next Quindi io vado qua e faccio go to
Next vedete che mi dà rosso non posso farlo quindi devo andare anzi provo con F5 vedete mi dà un errore di sintassi il mio obiettivo è dire go to go to vuol dire Vai a e noi vogliamo indicare di andare qui a next ma scritta così il programma non è in grado di capirlo Quindi Cosa facciamo Andiamo a Creare un costrutto nuovo andiamo a dare quella che è una baseball un'etichetta ad una riga vi faccio vedere questo Next noi ci mettiamo qua davanti e scriviamo Next line potrete scrivere quello che volete perché l'etichetta è praticamente
vostra ok vedete nextline fa riferimento a questa riga se vado qua e scrivo magari copia incollo go to nextline cosa succede Innanzitutto Facciamo partire vado qua F5 Vedete un due tre quattro salta al 5 6 7 8 9 10 e poi Ciao finale A dimostrazione che ha fatto il for quando X è diventata 5 x = 5 sì vai a nextline il programma ha cercato un'etichetta di una riga che si chiama nextline la trovata è questa e il due punti indica che questa etichetta fa riferimento a questo di conseguenza dice Ah vado a next line
Eccola qua che cosa mi dice questa Riga non questa l'etichetta ma fa riferimento a questa riga di codice che cosa mi dice questa riga di codice Questa riga di codice mi Dice vai avanti di conseguenza Avete visto come da qua ho saltato questa parte sono andato direttamente qui ho fatto un incremento e quindi il 5 si è perso nell'etere e abbiamo avuto la possibilità di continuare il nostro ciclo va bene è un metodo per chi programma leggermente diverso rispetto a ciò che potreste essere abituati ad usare nella maggior parte dei linguaggi di programmazione però non
è neanche così Confusionario è solo un pelino più lungo a ciò a cui siamo abituati rispetto al continuum Però diciamo che per le persone che arrivano per la prima volta sul linguaggio di programmazione può essere sicuramente qualcosa di intuitivo perché alla fine il programma va dall'alto al basso col forfait poi ricomincia dall'alto e scende poi ricomincia dall'alto e scende io ti dico vai a che riga a questa riga la esegue e riparte da capo sicuramente Praticamente Ha una sua logica altrimenti non sarebbe stato inserito Comunque questo è il discorso abbiamo visto Exit Sab Exit pour
e go to per andare avanti nel ciclo nel prossimo episodio voglio introdurre il concetto degli Array abbiamo due episodi sugli Array partiamo prima dei fissi e poi dai dinamici Ci vediamo tra poco episodio 29 del corso di vba oggi voglio parlarvi degli Array cominciamo parlando degli Array fissi e poi nel prossimo episodio parleremo degli Array Dinamici la prima domanda che dobbiamo porci è Cosa sono gli Array vedete gli Array come delle variabili okay adesso faccio semicori Cioè non è correttissimo vedete gli Array come delle variabili che possono contenere anziché un unico valore un insieme di
valori ok Quindi passiamo da una scatola che è in grado di contenere solo un paio di scarpe ad una scatola che è in grado di contenere più paia di scarpe Ora Voi potreste dirmi perché dovrei fare una cosa del Genere cerchiamo di cercare prima una metafora e poi qualcosa di un po' più pratico Se dovessimo fare la nostra variabile X con la lista della spesa e magari faccio stringa come faremo a fare la lista della spesa per ora faremo tipo X uguale a Pane poi faremo Ypsilon uguale a formaggio e via discorrendo no avremmo un
po' di roba Qual è il discorso che da qua se volessi un mandar la schermo Dobbiamo ricordarci tutte le variabili che abbiamo è un disastro Mentre invece qui immaginate come se fossero tanti fogliettini diversi ognuno per formaggio il pane eccetera invece utilizzando gli Array Abbiamo la possibilità uso pseudo codice Mi raccomando abbiamo la possibilità di avere sotto un'unica variabile pane formaggio Quindi come se usassimo la lista della spesa effettivamente su un unico fogliettino che ha decisamente più senso Perciò quando io poi passo il rassegni dico Ok X Voglio il primo Elemento che drone X voglio
Secondo elemento che è il formaggio vedete che ha molto più senso rispetto ad andare a dover vedere come vediamo quali sono le variabili disponibili come cosa come chiediamo al programma Dammi tutte le variabili disponibili che hai e devi capire se questa variabile è un numero oppure effettivamente qualcosa che ci serve No Abbiamo qua la nostra variabile x o lista della spesa o lista o quello che volete e dentro ci mettiamo un Insieme di valori Quindi vedete come gli Array possono aiutarci a contenere più valori in un'unica variabile la variabile è lista della spesa ed entro
Abbiamo tutto ciò che ci serve una cosa simile potrebbe essere se in Excel ad esempio dobbiamo andare a inserire sempre gli stessi valori ad esempio ponete il caso che utilizzate questa variabile per andare a creare automaticamente i nomi delle colonne facendo riferimento ai mesi quindi avete Diversi fogli e avete creato una macro che su ogni foglio va presentarvi il prospettino da gennaio a dicembre ora se noi utilizzassimo un Array Voi capite che abbiamo un Array con dentro Gennaio febbraio marzo aprile e quindi possiamo far riferimento così Quindi non dobbiamo scriverle a mano non dobbiamo avere
la variabile Gennaio febbraio marzo aprile abbiamo la nostra variabile mesi e quando dobbiamo inserire gennaio Facciamo riferimento al primo elemento Di x o di mesi va bene Quindi così dovrebbe avere un po' più senso come possiamo creare un un Array Allora partiamo dal presupposto che per ora in questo video Gli Array saranno fissi quindi gli Array quando li andiamo a specificare dobbiamo già dare il numero di elementi che dovranno contenere quindi dobbiamo dire Quanti elementi conterrà questo Array questa lista di valori in certe situazioni ha senso Perché Perché andando a porre un limite Evitiamo poi
di andare ad aggiungere elementi che non servono ad esempio se dovessimo avere una variabile per i giorni della settimana che sono 7 se noi andiamo a fissare che qua dentro ce ne stanno 7 punto e basta e non facciamo una redinamico non si può cioè non possiamo andarlo a sbagliare Certo potremmo sovrascrivere dentro gli elementi ma quello è un altro paio di maniche sicuramente non avremo da lunedì a domenica più un altro elemento che è Gennaio prova qwerty o quello che volete in altre situazioni invece sarà più sensato avere degli Array che sono dinamici non
sappiamo Quanti elementi possono avere Perciò ne accetto potenzialmente infiniti sono situazioni diverse ripeto poi le cose diventano chiare quando effettivamente avete il problema quindi proviamo a creare il nostro primo Array e la Array che faccio è una Array magari in classe creiamo la classe quarta a nella classe quarta a Siamo in una classe di montagna di un paesino di 4 anime perciò ci son dentro Magari tre alunni come Come si fa a creare questo Array dopo il nome della variabile andiamo a mettere le tue parentesi e qua dentro andiamo a mettere il numero dell'indice finale
Cosa vuol dire che ogni Array è una lista di elementi giusto l'elemento 1 2 3 4 5 6 Tuttavia in programmazione ve l'ho detto già da inizio corso si comincia a contare da zero e finalmente qua Cominciamo a contare da zero Quindi vi dovete ricordare che gli Array in questo caso solo invidia sono per gli arredi invece negli altri linguaggi di programmazione è in qualsiasi caso in vba gli Array cominciano a contare da zero potremmo andare a modificare il tutto con un'opzione qua in alto e metterlo come base 1 ma non ve lo consiglio personalmente
non ve lo consiglio si può fare non ve lo consiglio possiamo poi modificarlo e vi Farò vedere per ciascun Array però generalmente si parte da zero Quindi se io qua vado a mettere 3 3 è l'indice dell'ultimo elemento che Cos'è l'indice l'indice è un po' come il numero civico se io riprendo classe quarta a faccio così chiaramente pseudo codice e metto Anna Marco Luca Antonio vi ho detto che l'indice è un po' come il numero civico quindi Anna se dobbiamo pescare Anna in base al suo numero civico il numero civico sarà Zero Qua abbiamo uno
qua Abbiamo due e Qua abbiamo tre esattamente come ho specificato qua quindi vedete come mettendo 3 il numero di elementi in realtà è 4 è l'ultimo indice più 1 Va bene perché partendo da zero è 0 1 2 3 e son quattro elementi Ok per chi già programma questa cosa qua è Una ventata d'aria fresca Dopo aver cominciato a contare da uno in altre situazioni per chi non programma può essere un disastro un'altra metafora può essere i numeri civici appunto delle Delle case anziché cominciare a raccontare da zero Pensate se una via avesse come primo
numero 0 quindi vuol dire che se ci sono cinque case e Cominciamo a contare da Zero l'ultima casa non avrà come numero 5 Ma avrà come numero 4 Ok lo so che può sembrare poco intuitiva questa cosa perché è il quinto elemento dovrebbe essere il numero 5 ma se ne cominciamo da zero capite che il quinto elemento in realtà è il numero 4 Ok sono cose che adesso vi fanno Esplodere il cervello molto probabilmente se invece riuscite a capirlo Buon per voi Per tutti gli altri è un attimo questione di tempo e di logica Non
chiedetemi perché si fa così si fa così punto e diventerà la norma ok Quindi quando noi andiamo a dire classe A 3 stiamo dicendo che l'ultimo elemento l'ultimo indice è l'indice 3 partendo da zero son quattro elementi come possiamo assegnare gli elementi lo facciamo così Classe A quarta a È uguale a Luca in questo caso ho creato un Array di quattro elementi stringhe Ok quindi Accetta solo stringhe qua dentro mi raccomando conosciamo anche il tipo veriant però in questo caso vogliamo creare un Array di stringhe quindi sappiate che al Ray applicate le stesse regole degli
altri tipi di dati che abbiamo già visto poi classe 1 andiamo a mettere Anna classe 2 Marco classe 3 andiamo a mettere Luigi se io vado qua debug punto printer e vado a mettere Classe 2 che otterrò classe 2 è qua ottengo Marco F5 e vedete che ottengo Marco quindi capite bene che per andare a settare i valori e per richiamarli facciamo sempre riferimento all'indice e come quando facciamo riferimento ad una casa in una via quindi questa potrebbe essere la via anni fa via Torino indice 3 ok Molto semplice quindi alla via classe quarta indice
3 c'è questa casa non potete sbagliare va bene se la persona cambia di residenza e entra Un'altra persona semplicemente Andiamo su classe Andiamo in via Torino indice 3 e cambiamo la persona che ci abita Ok è esattamente lo stesso discorso io vi dimostro che se vado qui e vado a cambiare l'elemento come abbiamo fatto per qualsiasi altra variabile e rimando a schermo togliamo Marco anziché Marco mettiamo qwerty perfetto F5 vedete che prima abbiamo Marco e poi abbiamo qwerty ora gli Array capite bene che se abbiamo un indice numerico capite bene che Volendo li possiamo ciclare
con un for quindi proviamoci for i is integer i = 0 tu in questo caso 3 perché lo sappiamo va bene che cosa andiamo a fare andiamo a mettere un debug punto Print di cosa di classe quarta a e dentro mettiamo i facciamo Next i E se io magari commento tutta sta parte perfetto Facciamo partire vedete che ottengo rifacciamo che non avevo cancellato vedete che ottengo Luca Anna Marco e Luigi quindi possiamo fare anche così Altrimenti possiamo utilizzare due funzioni molto belle che sono Lower bound e ha per Pound Quindi nel caso non sapessimo gli
indici è molto improbabile con un Array fisso lo sappiamo da 0 a 3 però questa cosa la ripeteremo anche con gli Array dinamici quindi ne approfitto possiamo mettere Lower bound bound è limite Lower è basso qual il limite basso 0 Perfetto Quindi Lower bound di classe quarta a facciamo così Tu andiamo di Upper bound copio e sostituite la L Con la U E se io vado qua e rimando a schermo ottengo esattamente lo stesso risultato voglio farvi vedere che possiamo utilizzare anche il fuorich perché perché il fuori c'ha senso In questo caso diciamo per ciascun
elemento in classe quarta a in questo caso non è un elemento Ma è una persona quindi for each persona in quarta a fai qualcosa quindi vi dimostro come possiamo utilizzare sia il forrec gli indici nel caso dobbiamo lavorare con gli indici Oppure se dobbiamo passare in rassegna ad ogni singolo elemento senza passare per gli indici lo possiamo fare Quindi mettiamo una Dim persona as non String ma veri ent altrimenti ci darà errore e vi faccio nulla da vedere abbiamo for Ich persona in classe quarta a che cosa facciamo Innanzitutto facciamo Next e poi qua dentro
andiamo a mettere debug punto Print di persona io commento questo TAC tolgo questo F5 e ottengo lo stesso risultato per concludere abbiamo Ancora alcuni concetti non vi ho fatto vedere cosa succede se vado oltre l'indice quindi mi metto qui vado a capo faccio quattro cosa vi aspettate di ottenere chiaramente un errore vedete l'indice non incluso nell'intervallo e poi vi voglio dimostrare come possiamo andare a cambiare l'indice quindi lì questa qua Questo che vedete 3 significa da 0 a 3 in realtà sarebbe scritto così Zero tu 3 sapendo che si può scrivere così Voi potreste anche
mettere uno su Tre quindi non avremmo questo ma avremo una cosa del genere se faccio F5 vedete che ottengo un risultato simile ma con un elemento in meno potete farlo così eventualmente in relazione alle Celle alle righe questo perché c'è le righe quando sono nominate pensate al range A1 potete dire a come stringa lo combinate con la variabile che può essere uno due tre Allora senso Se mettete a 0 non ve lo trova quindi in una situazione del genere potreste farlo generalmente Cercate di restare con quella che è la numerazione da zero ed infine Vi
voglio far vedere come possiamo utilizzare un for loop ad esempio per andare ad inizializzare quello che è un Array quindi poniamo il caso che qua non abbiamo niente ci mettiamo qua e io potrei dire for i = 0 sappiamo che dobbiamo arrivare a 3 oppure possiamo fare Upper bound vedete non c'è alcuna differenza perché sappiamo che arriviamo a tre ma magari qua non ce lo ricordiamo Qualsiasi altra cosa Quindi da zero a a round che è 3 che cosa facciamo andiamo a mettere classe quarta a dentro mettiamo i come abbiamo già fatto ma stavolta lo
andiamo a cambiare Quindi qua dentro andiamo a mettere per assurdo tutti gli stessi nomi dentro il loop e una volta che siamo qua se io prendo il debug Print di classe quarta a faccio così F5 e vedete che ottengo dentro loop questo perché ho messo dentro esattamente lo stesso elemento Ma se noi Facessimo riferimento a dei valori presi da righe e celle chiaramente possiamo andare ad inserirli dinamicamente Quindi questi erano gli Array fissi nel prossimo video sarà molto più veloce perché il grosso l'abbiamo già visto parliamo degli Array dinamici Ci vediamo tra poco episodio 30
del corso di vba è arrivato il momento di parlare degli Array dinamici per arredinamici intendiamo degli Array che non hanno una dimensione Fissa prefissata Quindi è una dimensione che può essere cambiata nel tempo come vedrete Però in realtà si tratta di dimensioni fisse che cambiano nel tempo Quindi noi possiamo andare a cambiare la dimensione fissa mentre invece per come l'abbiamo strutturato prima era così e basta ok Quindi come possiamo andare a definire un Array dinamico è molto semplice vado a creare un Array che chiamo qwerty a sto giro e faccio le due parentesi senza metterci
dentro niente Vedete così è una redinamico è un Array che posso andare a modificare a piacimento Qual è il trucco qua Il fatto è che se io vado su qwerty e faccio 0 e vado a scrivere ciao e vado a debuggare con un bel Print e vado a mettere qwerty 0 ottengo picche Perché Perché l'indice non è incluso nell'intervallo non è che per fatto che qua non c'è dentro niente si aspetta qualsiasi cosa non è questo il discorso non è che non andando a specificare niente qua posso già mettere Da zero a 7 milioni il
discorso è un altro il discorso che io sto dicendo a vba Guarda che questo Array non ha una dimensione fissa io te la cambio a piacimento Quindi come approcciamo questo cambio se vogliamo aggiungere un elemento dobbiamo andare a ridimensionare questo Array Ok se qualcuno di voi arriva da roba tipo JavaScript o simili è una logica totalmente astratta e assurda ok e me ne posso Rendere conto però se vogliamo andare a ridimensionare facciamo re Dim quindi re Dimension ridimensiona qwerty e vado a mettere che il numero massimo è 0 di conseguenza se adesso faccio F5 ottengo
Ciao va bene una volta che ce l'abbiamo così si comunicano tutte le regole che abbiamo visto per il for freach riapplicare eccetera io posso andare qua E posso tranquillamente cambiare quello che è il valore Quindi da 0 anziché Ciao Vado a mettere ta ta ta ta ta F5 e lo Tengo a schermo quindi poi queste Regole Non Cambiano perché perché l'abbiamo fatto diventare da un Array con zero lo abbiamo ridimensionato ad un Array con un elemento Quindi adesso è un Array con un elemento se io vado qua e faccio così e faccio F5 Abbiamo un
problema quindi Dov'è la differenza la differenza è che definendolo così ti sto dicendo mi devi dare la possibilità di ridimensionarlo punto e lo vado a ridimensionare ma il risultato che ottengo è esattamente una Rei fisso ogni volta vedete Perché è così se voglio andare a aggiungere altri tre elementi Cosa devo fare Devo andare vi faccio vedere a mettere altri tre elementi Quindi vado con tre perché zero è già utilizzo un due tre io faccio qui copio TAC TAC anziché Ciao Magari mettiamo Luca poi Marco Anna e Luigi Di conseguenza Fatemi mettere uno due e tre
se io mando a schermo uno puliamo aggiorno vedete che ho a schermo il mio amico Marco e poi Luca qua in alto Succede Però qualcosa di strano ve lo faccio vedere poi penserete che se io mando 0 qui ottengo Luca e se mando a schermo Zero qua ottengo Luca in realtà F5 ottengo un solo Luca e questo Luca è questo qua se io lo commento io lo commento e tolgo qui Vi faccio vedere come non ottengo a schermo niente che cosa è successo succede che ogni volta che io vado a ridimensionare un Array perdo i
valori che ho già E qua si apre l'apocali praticamente no Come è Possibile io li devo mantenere c'è un'altra parola chiave che possiamo utilizzare che è preserva che è preserva Vedete se io vado a fare così improvvisamente F5 ottengo Luca ok Quindi ogni volta devo andare a ridimensionare l'array e devo andare a preservare i valori esistenti non devo preservarli Nessun problema prendo l'array l'aumento ci butto dentro roba nuova nel caso in cui però io voglia preservare gli elementi ma non so a che Indice sono non lo so va bene potrei fare ehm qualcosa di un
po' più dinamico no potrei fare Upper bound di qwerty più 3 e vi faccio vedere che ottengo Comunque lo stesso risultato perfetto vedete quindi sto facendo una cosa dinamica Cosa ho detto voglio ridimensionare la requeti partendo dalla perbound che è 0 +3 quindi di conseguenza è diventato un Array 3 di conseguenza quattro elementi facendo così A me non interessa quanto è Effettivamente lungo la Array perché continuamente utilizzando Upper bound Lower bound tenendolo a mente o mo' tutti lavorarci ora Se io avessi questi dinamici quindi io ho fatto Upper bound + 3 ma qual era quanto
era per bound magari dinamicamente nel programma non lo so come possiamo agire per fare una cosa del genere è molto semplice Allora ci sono diversi modi vogliamo aggiungere tre elementi o partiamo dal nuovo app per bound che è 3 e quindi facciamo tre Meno due e ottengo uno tre Meno uno e poi a perbound vi faccio vedere quindi se io faccio una cosa del genere ho ho due modi di farlo o parto dal vecchio elemento e dopo lo facciamo oppure parto dal nuovo apperbound che è 3 quindi il nuovo apperbound lo metto qua vedete qua
Metto a perbound meno Quindi vado a ritroso e qua Metto a perpound - 2 Se io faccio così e mando a schermo o esattamente lo stesso risultato quindi posso andare a ritroso dall'indice più Alto Vado indietro oppure posso fare un'altra strategia che è quella di utilizzare Upper pound+1+2+3 Qual è il fatto che se io vado a prendere Upper bound Adesso è già stato modificato quindi devo tenermi in pancia il vecchio happer bound cremolo quindi di Dim vecchio indice Massimo Potete chiamarlo Index Max Fate come volete es integer e qua dentro dico che vecchio magari Copiamo
che è un po' lunghina quindi vecchio Index Max è Uguale a a perbound Quindi io so adesso che a per vecchio indice Max è zero perché in questo momento è zero di conseguenza posso chiamare vecchio Index Max più uno che sarà 0 + 1 1 e posso farla la stessa cosa con vecchio Index Max + 2 vecchio Index Max + 3 e se io vado a togliere faccio invio ottengo ancora lo stesso risultato Basta questi sono in sé i concetti nuovi fatto di ridimensionare il fatto di preservare il fatto di lavorare dinamicamente con Gli indici
dovete tenere in pancia un indice ve lo salvate prima di ridimensionare volete andare a ritroso non dovete salvarvi niente dovete solo fare qualche calcolo in più se si concetti li applicate ai for Beh fuori c'è Non serve perché tanto passa in rassegna Quindi ogni volta che dovete lavorare con gli indici utilizzate Lower bound e aperbam sono cose che abbiamo già visto con gli Array fissi per ciò credo sia già tutto Abbastanza chiaro direi di non tirarla per le lunghe e di passare direttamente al prossimo video dove cominciamo ad utilizzare nel terzo modulo di questo corso
nel modulo finale in cui cominciamo a lavorare effettivamente con gli oggetti che ci dà Excel già un po' abbiamo visto qualcosina ma voglio entrare effettivamente nel nel dettaglio perché perché per ora abbiamo letteralmente cazzeggiato ci siamo divertiti a Imparare a programmare Però è stato abbastanza molto teoria adesso Voglio cominciare a prendere le righe modificarle e quant'altro va bene Ci vediamo tra poco episodio 31 del corso di vba oggi comincia il modulo dedicato a guardare nel dettaglio quelle che sono le parti di integrazione con Excel quindi nella prima parte abbiamo introdotto Excel bva programmazione ad oggetti
eccetera nella seconda parte abbiamo visto la programmazione non per Intero perché Visual Basic è molto ampio però abbiamo visto tutto ciò che ci può servire per cominciare a programmare in questa terza fase lavoriamo appunto con i vari oggetti che abbiamo a disposizione tra vba ed Excel Il primo è l'application object con l'application object abbiamo letteralmente accesso a tutto perché se ci pensate l'application object è l'oggetto riguardante l'intera applicazione ora application object vi Faccio vedere ha veramente tante tante tante proprietà e metodi non le vediamo tutte ma vi voglio far capire Più o meno la mentalità
con cui approcciare questo oggetto vi faccio vedere Allora innanzitutto vediamo qua il punto di domanda Se io faccio application.name TAC vedete ottengo Microsoft Excel andiamo avanti facciamo punto version otteniamo la versione di Microsoft Excel andiamo con magari Pes vedete quindi è il percorso in cui è lanciato Excel e Poi ad esempio Potremmo avere username TAC queste sono solo alcune delle proprietà che possiamo guardare con application perché effettivamente application è Excel è il programma che sta andando Uno potrebbe dirmi da cosa serve questa cosa qua Beh poniamo il caso che magari volete controllare l'utente se l'utente
non siete voi o qualcun altro Volete dare tipi di permessi diversi quindi se l'utente non è quello non può utilizzare ad esempio Certi tipi di Macro oppure se la versione è diversa andiamo a fare una macro leggermente modificata perché magari la versione precedente non gestisce determinato operazioni e via discorrendo Oppure vogliamo assicurarci che sia Microsoft Excel e non un'altra applicazione perché magari è una macro che possiamo lanciare su più applicazioni Office ma vogliamo essere sicuri che se Excel Fai questo se è World fai Quest'altro Quindi ci possa essere situazioni in cui avere accesso alle informazioni
basiche della nostra application può essere d'aiuto per fare un altro esempio invece potremmo andare a prendere prendo la cella Attiva scrivo QWERTY vi faccio vedere abbiamo tutta una serie di Active proprietà vedete Active cell Active chart Active printer e quant'altro cominciamo magari con Active printer vi faccio vedere questa è la mia stampante Ad esempio in questo Caso se stiamo andando a creare un'interfaccia grafica e poi le vedremo come crearle se andiamo a creare un'interfaccia grafica Dove possiamo selezionare le stampanti possiamo andare a fare una cosa del genere quindi dobbiamo utilizzare le pennette alla disposizione questa
è la stampante Attiva Oppure potrei andare a prendere Active cell e andare a prendere il valore se faccio invio Scusatemi Sono sulla cella sbagliata Se faccio invio Avrete che ottengo qwerty così come Active cell e printer ci sono tanti Active a cui possiamo fare riferimento Guardate Active shit quindi il foglio attivo che è il foglio 1 Active Windows quindi potrei avere più finestre Active workbook che cosa ci possono servire ad esempio prendiamo Active shit Active shit punto name e vi faccio vedere che il nostro foglio 1 voi Mi potreste dire Sì Edo me ci possa
arrivare anche tramite Worksheets prendo l'uno punto name TAC e ci arrivo Qual è il discorso che qua siamo passati dalla Collection e da una situazione in cui ci può servire passare dal World cioè prendiamo il name del primo workshop mentre invece da application andiamo direttamente su quello attivo va bene quindi una volta che prendiamo quello attivo abbiamo Sì un worshit ma siamo andati direttamente su quell'attivo Ok quindi sono due modi diversi qui facciamo application Workbook workshit E poi prendo il name Qua invece andiamo diretti per Active sheet lo stesso concetto lo potete applicare letteralmente per
la finestra la Windows e quant'altro vi faccio vedere se noi siamo qua potremmo fare Active workbook punto password vedete che abbiamo accesso alla password e potremo andarla a mettere per vedere le varie proprietà siete passare direttamente tramite i vari Active le potete vedere qua se io premo su foglio Avrete foglio a queste proprietà il nome se vogliamo Mostrare i page Break In questo caso non ce li mostra oppure abbiamo mostra Right to left oppure Abilita autofilter Abilita calcoli abilità formattazione condizionale eccetera eccetera come ci passiamo qua o ci passiamo prendendo work chips foglio 1 oppure
worships 1 oppure possiamo passare tramite Active workcit allo stesso modo cartella di lavoro che ha molte più cose vedete come ci possiamo Arrivare ci possiamo arrivare tramite workbooks 1 oppure workbooks nome del progetto altrimenti vedete che qua c'è password dove sono passato sono passato da application Active workbook va bene quindi poi vedremo lo stesso giro quando lavoreremo con workbook e workshop ma se volete particolare tutta la fila e prendere direttamente quella attivo lo potete fare da application un'altra cosa molto molto bella che possiamo fare tramite application e andare a Disattivare e mostrare determinate situazioni ad
esempio application punto display c'è una categoria enorme di display di cose che possiamo mandare a schermo o meno display alerts ad esempio ci permette di andare a nascondere quelle che sono le finestre di avviso ogni tanto vi posso comparire possiamo andarle a nascondere è importante sapere che però se le attivate qua dentro Cioè se fate display Alert Falls per una particolare macro dovete poi riattivarla Quindi se voi fate Così giusto per andare a fare un qualcosa nella macro senza che l'utente venga Stoppato nella macro Perché chiaramente la finestra di Alert va a stoppare la macro
dovete poi ricordarvi di riattivarla Quindi se le volete di default dovete ricordarvi di riattivarle perché perché altrimenti se voi non mettete questo True da qua non importa se l'avete utilizzato una volta in una sola macro tutta l'applicazione avrà disattivato gli Alert OK e quindi è un problema perché alcune volte gli alert servono quindi Ricordatevi questo concetto perché si applica anche ad altre cose che vediamo ad esempio se io vado qua e faccio display comment indicator per ora non faccio niente ma Vi mostro che se vado qui vado su nuovo commento scrivo qualcosa faccio invio vedete
che abbiamo qua il segnalino viola del commento se vado a fare display comment indicator posso andare a mettere no indicator F5 e Vedete che è scomparso il commento però c'è lo stesso perché se faccio tasto destro vedete Elimina commento rispondi a commento se vado sotto Ho solo nuovo commento e di conseguenza se io torno qua e faccio True Facciamo così F5 vedete che è tornato il commento quindi la stessa cosa che possiamo fare per display comment indicator la possiamo dobbiamo fare per una serie di proprietà giusto per spiegarvi questo concetto facciamo vedere qualcos'altro abbiamo la
Formula bar che è questa qua in alto oppure possiamo andare a mettere la status bar che è questa qua sotto vedete sotto i fogli c'è questa barrettina qua sotto dove vado a modificare lo zoom ad esempio faccio display status bar uguale io faccio false e se faccio F5 vedete che è scomparsa se vado a rimettere True la faccio e ricomparire per farvi capire come con display Stiamo andando a modificare delle parti importanti dell'applicazione possiamo veramente Andare a cambiare l'applicazione a piacimento Ricordatevi però che queste cose hanno una valenza globale Perciò se lo fate per un
caso specifico dovete poi ricordarvi di riattivarle altrimenti resta sempre così Va bene poi Un'ultima cosa che ci può interessare cioè con application al momento non lavoreremo tantissimo e per farvi capire che tipi di proprietà possiamo andare a modificare Abbiamo un'ultima cosa molto divertente che Daialox questo è molto divertente Ve l'ho inserito perché lo trovo molto bello io vedo qua in dialox e vedete che abbiamo una serie di dialoghi di dialog sono le finestre che compaiono e abbiamo una serie di dialog che possiamo mostrare quindi qualsiasi tipo di finestra che vi può comparire su Excel la
possiamo effettivamente far comparire noi a mano in qualsiasi momento vedete Quante sono sono tutte Praticamente ci sono tutte copie paste activate All'aliment e via discorrendo Io voglio concentrarmi su XL daiha log mail sendmail Ecco qui e poi vado a fare show per mostrarlo ed entro vado a mettere vedete che abbiamo una serie di argomenti giusto vado a capo affinché ci stiamo Tra l'altro come argomento uno Voglio andare a mettere la mail a cui mandarlo Facciamo così mando la mail a cui mandarlo in questo caso mettiamo una mail a caso che è qwerty at quientissimo punto
acutissimo punto it Molto bene Poi virgola argomento due Ops ho sbagliato qua devo mettere i due punti argomento 2 TAC TAC e qua dentro posso andare a mettere l'oggetto della mail oggetto della mail se faccio così vedete come si è aperta automaticamente una finestra di messaggio di Outlook questo perché io ho Outlook installato già connesso qua vedete che ho messo una mela a caso giusto per nascondere l'indirizzo email ma se Guardate invece a chi la domanda qwerty cuertissimo è Quello che ho messo qua sopra e come oggetto oggetto della mail e ciò che avevo qua
sopra Fateci caso stiamo inviando direttamente il file qua quindi potreste avere e questo è un esempio molto pratico e molto bello per questo ve l'ho volta inserito possiamo avere una macro che automaticamente magari va a fare una formattazione eccetera e automaticamente la va a inviare quindi pensate Se avete dei report che dovete mandare giornalmente settimanalmente a Diverse persone formattati in diversi modi Penso ad esempio quando io faccio dei documenti per il mio commercialista me li chiede mi chiede certi documenti settimanali certi documenti mensili o delle macro che formatta ne vanno a prendere dati in un
certo modo Quindi prendere la lista delle fatture settimanalmente vuole qualcosa mensilmente vuole qualcos'altro automaticamente prende i dati che io vado a registrare delle fatture me li va A formattare in diversi file e poi li va a inviare Ok una cosa del genere la faccio utilizzando application stylox che poi attorno c'è tutt'altro delle cose che abbiamo visto di formattazione eccetera però alla fine io passo da qua Una volta che controllo tutto faccio un check faccio invia e la mail arriva al commercialista ok Quindi questo è proprio un esempio classico forse più pratico e il più realistico
tra ciò che potevo portarvi perché lo uso anch'io Direi che con l'oggetto application è tutto noi nel prossimo video guardiamo l'oggetto workbook che fa parte della Collection workbooks eccetera eccetera ma ci arriviamo nel prossimo video A tra poco episodio 32 del corso di vba oggi vediamo come possiamo lavorare con i warplus e i workbox ricordiamoceli sono le cartelle di lavoro quindi dall'inglese all'italiano molto facile la cartella di lavoro altro non è che il singolo file Quindi ogni file di Excel è Una cartella di lavoro cominciamo partendo proprio dalla base se guardate qua in alto nel
nostro progettino abbiamo Questa cartella di lavoro vedete e Questa cartella di lavoro ci mostra una serie di proprietà quindi già possiamo capire che non solo possiamo andare a modificare da qui le proprietà vedete quindi possiamo farlo in modo manuale Ma possiamo farlo anche in modo programmatico Quindi così come le possiamo andare a modificare le possiamo Anche richiedere Come andiamo a lavorare con il workbook Abbiamo due modi il primo l'abbiamo già visto Ed è application application punto Active workbook mette davanti application per intenderci in realtà sapete che si può mettere quindi solo Active workbook se io
faccio così e vado su punto name ottengo corse Excel V BH esattamente quello che vedete qua in alto a sinistra quindi questo è un modo per arrivarci l'altro modo in cui possiamo arrivarci è Banalmente prendere workbooks prendiamo ad esempio il primo Vabbè che sappiamo che ne ho solo una aperto se vado a fare punto name ottengo il mio workbook nel primo andiamo a prendere solo quello attivo quindi capite che poi con Viba possiamo attivare un workbook se ne abbiamo più aperti prendere Active workbook e lavorare con quello altrimenti possiamo passare tramite Word Books prendere il
numero oppure possiamo fare anche così Fatemi togliere questo e passare direttamente dal nome quindi faccio così tac faccio invio e ottengo lo stesso risultato in questo caso mettere il nome per ottenere il nome non ci serve a niente ma era per dirvi che possiamo arrivarci sia lato numerico di indice che lato nominale adesso che sappiamo come prendere i vari workbook possiamo andare a modificare eventuali proprietà giusto per gradire una cosa che ci potrebbe servire potrebbe essere vedere Se è saved quindi se faccio così faccio saved invio vedete che me lo dà come falso perché effettivamente
non è salvato se io vado a modificare e poi da file Salvo e adesso vado a richiederlo vedete che ottengo vero Quindi ad esempio una cosa che potremo andare a richiedere in certe circostanze e vedere se il file è salvato o meno e lo vedete che è qua sotto invece è Save vedete ci dà in tempo reale quello che è la condizione di salvataggio La stessa cosa che abbiamo visto per Save la possiamo fare per name come abbiamo fatto ad inizio video e per tutte le altre proprietà adesso arriviamo a qualcosa di un po' più
interessante e vediamo come possiamo effettivamente lavorare con altri World bus quindi non prendere solo le proprietà o eventualmente mettere una password ma facciamo qualcosa di un po' più avanzato ad esempio potremmo voler contare Quanti sono i workbook che Abbiamo aperti quindi punto di domanda vado a fare work Books senza andare a prendere qualcuno in particolare Quindi workbook così punto counter Eccolo qua e se faccio invio vedete che al momento ne ho uno vado ad aprire un altro workbook vedete che ho un'altra finestra aperta la tengo sull'altro schermo perché non ci interessa se faccio count vedete
che ho due quindi possiamo andare in qualsiasi momento a capire se abbiamo uno o più workbook aperti perché se Magari stiamo lavorando con Word Books così e sappiamo che l'abbiamo solo uno prendiamo sempre il primo e siamo a posto ok Oppure prendiamo sempre quello attivo le possibilità sono Eh sono tante tornando invece sopra cominciamo ad aggiungere magari un worbur quindi facciamo workbooks.ad se faccio F5 Mi è comparso ve lo sposto un altro workbook vedete eh Eccolo qua quindi questo è il nuovo workbook che mi è arrivato Se premete Sullo spazio noterete come ad ci dà
la possibilità di partire da un template Quindi volendo potreste andare a mettere qua vicino a template quello che è un percorso per far riferimento ad un altro workbook che già avete di conseguenza andare a creare un nuovo workbook partendo da quello come template base una volta che abbiamo aggiunto il nostro workbook che vedete che è qua a lato vedete è sempre qui ricordatevelo una volta che abbiamo aggiunto il nostro Workbook cosa potremmo fare potremmo salvarlo Quindi potremmo dire workbooks Prendo il 2 che è l'altro Anzi andiamola a vedere facciamo workbook 3 TAC così punto name
Scusatemi questo devo commentarlo invio su questo vedete che otteniamo Cartel 5 cosa potremmo fare Innanzitutto potremo assicurarci di averlo salvato quindi per salvare un workbook ci basta fare warpuc 2 punto Save F5 ed è stato salvato vi faccio vedere che possiamo andare qui scrivo a Caso e se andiamo a vedere War Book 2 punto saved facciamo invio vedete che è falso in questo momento faccio partire questa macro e se vado a rifar partire il comando qua sotto mi da vero Quindi con Word book il numero del World book che ci serve o nome più Save
lo andiamo a salvare altrimenti potremmo fare anche saves Se volete quindi sempre per avere i suggerimenti punto Save as facciamo lo spazio e come potete vedere qua ci danno una serie di opzione Aggiuntive Quindi potremmo avere primo passo e Innanzitutto abbiamo il nome del file il formato del file La password Se vogliamo che sia solo ridolli quindi può essere solo leggibile e non modificabile abbiamo una serie di aggiunte che possiamo fare noi ci limitiamo a salvarlo nello stesso percorso che abbiamo qua quindi dalla cartella 5 vedete da questa cartella 5 dove Qua abbiamo andare a
creare di base una copia Quindi saves e prendo workbook 2.pef questo qua mi serve quindi workbook 2 mettiamo magari file name file name due punti uguale andiamo a capo che se no non ci stiamo perfetto qua gli dobbiamo aggiungere un nome quindi end apriamo Slash e poi mettiamo il nome del file nuovo file punto xlsm perché magari potremmo voler le macro Dopodiché andiamo a utilizzare il formato quindi file Format due punti uguale vado ancora a capo Perfetto Vado qui a capo e come fa il format andate Qua mettete uno spazio eschiamo XL Open XML workbook
macro enabled Quindi cosa stiamo facendo lo stiamo salvando con questo nome ma il formato gli stiamo dicendo di utilizzare il formato delle macro altrimenti Questo potrebbe non bastare facciamo F5 vedete che comparsa una nuova cartella vedete È comparsa una cartella nuovo file Ed eccolo qua vedete che è stato automaticamente risalto come nuovo file perfetto e abbiamo visto Anche questo quello che voglio farvi vedere adesso è come possiamo attivare la nostra cartella di lavoro vedete che io qua al momento ho messo il cursore su questo workbook Ma io posso andare a prendere work Books vado andiamo
a prendere il 2 e so che è l'altro punto activate faccio invio vedete che mi è scomparso il cursore Perché Perché il cursore è andato Eccolo qua lo vedete è finito sull'altra cartella di lavoro Ora io vado a chiudere questo perché Perché Per concludere Voglio farvi vedere come possiamo aprire un workbook quindi possiamo andare a fare Wordpress punto Open apriamo ed entro come fine name vado a mettere War book 1 visto che è già aperto sono la stessa cartella documenti ci Potreste arrivare in un altro modo ma per ora faccio così quindi prendo workbook 1
punto Pet and vado ad aggiungere slash nuovo file punto xlsm F5 e vedete che automaticamente mi ha aperto il nuovo file con la scritta Che io avevo messo qua Cosa possiamo fare possiamo andare a chiudere anche i vari War book O prendiamo il questo piccolo workbook Quindi potremmo fare Word book magari 1 punto close faccio invio vedete mi chiede di salvare io salvo vedete che ha chiuso tutto riapre giustamente mi chiede la password di prima che spero sia qwerty perfetto Oppure potrei passare direttamente da workbooks Punto Klose faccio invio e ha chiuso tutti i workbox
ok Quindi se Lavoriamo Ricordatevi che se lavoriamo su War Books stiamo lavorando su tutti Praticamente se invece lavoriamo su workbook così oppure col nome oppure sulla singola variabile che è uguale ad un workbook che comunque è uguale ad una cosa del genere quasi sempre o col nome o activate quello che volete stiamo lavorando su una singola cartella di lavoro quindi direi che per oggi è tutto nel prossimo video andiamo a vedere come possiamo lavorare con i singoli fogli Contenuti dentro la cartella Quindi con i worship A tra poco episodio 33 del corso di bba oggi
vediamo come possiamo lavorare con i fogli Quindi quelli che sappiamo chiamarsi worshit in inglese e di conseguenza in vba Allora vi ricordo che per arrivare ad utilizzare i workshop o un singolo Work It dobbiamo passare per l'oggetto work shits possiamo prenderlo come numerico Anzi passiamo da qua per favore dalla finestra immediata per non starci una Vita quindi possiamo passare per il numerico andiamo a prendere il name abbiamo foglio 1 oppure possiamo passare lato appunto nominale faccio la stessa cosa invio e chiaramente a sto giro abbiamo preso lo stesso foglio quindi per lavorare con i worshit
passiamo dalla collezione workcit Che cosa possiamo fare con i fogli Beh possiamo fare tutto e anche un po' di più e adesso lo vedrete di ciò che possiamo fare in realtà lato Excel se noi andiamo Qua tasto tasto destro Cosa possiamo fare Selezionare tutti i fogli selezionare un foglio rinominarlo eliminarlo inserirne uno nuovo possiamo spostare o copiarlo Visualizza codice non ci interessa perché siamo qua lato codice possiamo proteggere un foglio addirittura aggiungere un colore ma questo è il meno e soprattutto possiamo nascondere Ecco qua oppure tasto destro scopri andare a rimettere un foglio Oltre al
fatto che possiamo anche Chiaramente selezionarli e spostarli Perfetto direi niente di incredibile Cose che probabilmente saprete già fare adesso vediamo effettivamente Come possiamo andare ad eseguire lato vba Allora cominciamo Innanzitutto dal count che abbiamo già visto anche lato workbook se io faccio count vedete 3 effettivamente sono tre i fogli anche se questo foglio 4 possiamo rinominarlo perché mi urta 1 2 e 4 mi urta perfetto 1 2 3 quindi count lo abbiamo tolto poi Un'altra cosa se andate Qua sui fogli vedete abbiamo la possibilità di andare a modificare le proprietà come al solito queste non
sono tutte ma sono alcune che possiamo modificare da qua Ma se sono qua voi potete capire che possiamo modificarle Anche lato macro non abbiamo alcun limite da questo punto di vista Quindi nel caso vi servissero fate riferimento a queste non andiamo a vederle alcune sono qua Se dovete modificarle le modificate Mi raccomando La documentazione ufficiale che vi faccio vedere se io prendo la documentazione vedete su workshit abbiamo il workshop object dove ci spiega l'oggetto worshit e poi abbiamo gli eventi che non abbiamo ancora visto di cui parleremo verso proprio fine corso tutti i vari metodi
di cui molti sono uguali anche ai workbook e stessa cosa Scusatemi ho sbagliato stessa cosa per le proprietà vedete proprietà abbiamo le varie proprietà dei workshop Ripeto cose come name l'abbiamo già visto per quanto riguarda anche workbook application Insomma Molte sono anche facili Protection e tutta la questione riguardante la password Quindi se avete necessità poi di scendere nel dettaglio potete fare riferimento alla documentazione se Aprite vi mostra quello che fa eventualmente codice Filter Mode vedete ci mostra il codice come si fa e quant'altro torniamo a noi e vediamo effettivamente Come lavorare Con i fogli Allora
partiamo da activate quindi la prima cosa che voglio fare è attivare un altro foglio io potrei dire Voglio attivare il secondo foglio Appunto activate Quindi se io tolgo il punto di domanda che non mi serve faccio invio avrete che sono passato al foglio 2 voglio passare al foglio 3 faccio in via vedete che sono passato al foglio 3 per dimostrarvi che non sto facendo nessun gioco di magia metti che sono tornato all'uno che è ben diverso in Termini di zoom rispetto al 3 quindi activate fatto Vogliamo fare ad e vogliamo aggiungere un altro foglio lo
possiamo fare facciamo ad e magari togliamo qua l'uno che non ci serve quindi warships punto ad faccio invio vedete che è comparso il foglio 4 Fatemi allargare un pochino Visto che lavoriamo con i fogli Ecco qua vedete tutti i fogli nuovi vengono messi Prima del foglio 1 noi questa cosa possiamo andarla a gestire se faccio spazio Vedete che abbiamo before e After ad esempio Quindi potremmo dire Me lo metti before dove ve lo dico subito me lo metti magari before work shits e vado a prendere Siamo al 4 Magari me lo metti Prima del 3
quindi 1 2 3 Adesso il foglio 5 comparirà tra il foglio 1 e il foglio 2 se faccio invio vedete che il foglio 5 è comparso tra il foglio 1 e il foglio 2 una volta che sapete gli indici potete lavorare così oppure chiaramente con i nomi come abbiamo sempre fatto Foglio 1 foglio 2 eccetera altrimenti potreste dire anzi che before che è prima potreste fare After quindi facciamo una cosa semplice vogliamo che il foglio 6 compaia prima del foglio 1 di partenza dopo il foglio 4 after e dopo quindi dopo il foglio 4 di
conseguenza dobbiamo prendere l'uno faccio invio vedete che il foglio 6 è comparso dopo il foglio 4 quindi ecco come Possiamo aggiungere velocemente dei fogli un'altra cosa che possiamo fare è Muovere un foglio da una parte all'altra Quindi come lo spostiamo a mano lo possiamo anche fare manualmente magari cancelliamo questo cancelliamo il 4 e voglio cancellare anche il 5 giusto per avere un po' più di spazio abbiamo altri fogli se abbiamo il foglio 6 che dal tasto punto eliminiamo perfetto abbiamo il foglio 1 2 3 quello che voglio fare è spostare il foglio 1 quindi Works
e vado a prendere il foglio 1 giusto per cambiare quindi Foglio 1 vado a mettere punto Move e qua andiamo a mettere After due punti uguale e lo vado a spostare Infine dopo workshop foglio 3 quindi così invio e vedete che foglio 1 è stato spostato dopo foglio 3 la stessa cosa la possiamo fare per qualsiasi foglio così come possiamo utilizzare Se volete anche il bifore quindi foglio 1 bifore foglio 3 e vedete che è stato messo al centro quindi le regole di cui abbiamo parlato per Lad valgono anche per il move solo Che ad
era su tutti i workshop mentre invece Move è per un singolo foglio proseguiamo e vediamo d'elite potremmo fare d'elite di foglio 3 quindi foglio 3 punto d'elite invio e vedete che mi chiede se voglio eliminarlo al momento non voglio eliminarlo perché voglio farvi vedere come possiamo utilizzare la storia dei display alerts di cui abbiamo parlato già durante la application durante il video delle application quindi noi Potremmo copiare la stessa cosa qua così Però prima dobbiamo andare a disabilitare tutti gli alert quindi application application punto display alerts e vado a mettere un bel false Ricordatevi che
poi Bisogna andarli a riattivare altrimenti è un disastro e quindi in questo caso faccio True perciò vengono Disattivati Viene eliminato automaticamente e poi vengono riattivati Perciò se io passo qui faccio F5 vedete che il foglio 3 è scomparso Se però Adesso avendolo riattivato Prova a eliminare il foglio 1 faccio invio vedete che mi ridà la stessa cosa va bene Quindi se volete fare delle eliminazioni o altre operazioni così pulite ed indolore utilizzate display alerts però poi ricordatevelo per il benessere del programma e dell'utente di riattivarli quindi quando vi serve li disattivate poi li riattivate va
bene proseguiamo andiamo a cambiare il nome voi penserete magari di fare rename Queste cose in realtà ci basta fare foglio 1 punto name uguale un banalissimo qwerty quindi il name è una proprietà lo facciamo così invio e vedete che ho cambiato in qwerty Sarebbe bello se ci fosse anche un metodo che Carry name perché a volte può essere confusionario cioè Move abbiamo il metodo che ci aiuta a cambiare la posizione però non abbiamo effettivamente la possibilità di cambiare il numerino della posizione Dobbiamo farlo tramite il metodo il nome invece lo possiamo fare tramite proprietà ma
non lo possiamo fare tramite metodo Diciamo che per i principianti può non essere un problema A meno che siete già entrati nella nella modalità di programmazione a certi livelli invece per chi sa di cosa sto parlando potrebbe essere d'accordo con me c'è la possibilità di sostituire direttamente il nome così quando in realtà sarebbe molto più intuitivo fare Un banale rename e mandare poi il nuovo nome che voglio almeno personalmente lo trovo 100 volte più intuitivo Tra l'altro Cerchiamo di essere lineari con quello che stiamo facendo Però vabbè Questa è una mia è una mia visione
proseguiamo e vi faccio vedere Copy perché abbiamo la possibilità di copiare completamente un foglio e se io faccio Copy giustamente il foglio uno non c'è più devo rinominarlo qwerty faccio invio e vi faccio vedere come è stata creata Una nuova cartella vedete è stata creata una nuova cartella e mi ha copiato il foglio possiamo andare a mettere anche in questo caso se volete un bel before quindi possiamo dire before di cosa di work shiits 1 Facciamo così invio e vedete che in questo caso me l'ha copiato qua dentro quindi se non andiamo a definire niente
Avete visto che mi ha creato di default una nuova cartella Quindi me l'ha copiato in un nuovo workbook mentre invece andiamo a Definire non incappiamo in questo tipo di problema e ce lo copia qua dentro ho ancora due cose da farvi vedere la prima è in merito alla visibilità di un foglio perciò io potrei farvi vedere che possiamo andare a nascondere un foglio facendo qwerty punto Visible uguale Falls faccio invio vedete che l'ho nascosto lo posso far tornare come true se lo rimetto come Falls vi faccio vedere qua tasto destro Scopri ricompare c'è un'opzione aggiuntiva
che mi permette di nasconderlo e di nasconderlo persino dall'opzione scopri quindi vi faccio vedere anziché utilizzare True Falls possiamo utilizzare quelli che sono dei valori già predefiniti quindi Excel shit Visible quindi possiamo utilizzare Visible Oppure possiamo utilizzare Hidden vi faccio vedere anche sugli stessi risultati Hidden inviorete che è scomparso tasto destro scopri e qua Oppure posso fare Visible e quindi Visible invio è tornato oppure posso inserire veri Che vuol dire non idin ma Hidden Che vuol dire veramente nascosto se io faccio invio e vado qua tasto destro non mi dà neanche la possibilità di fare
scopri perché Perché è nascosto persino all'applicazione dalla parte di vista di interfaccia grafica non è solo nascosto all'utente nella barra qua e poi lo Posso riattivare Ma è proprio nascosto Anche all'applicazione non ho modo di andarlo a ripescare in questo caso io vado a mettere un banale trucco Quindi potete lavorare facilmente contro i Falls Se invece volete nasconderlo veramente utilizzate Excel shit veri kidden per concludere Voglio parlarvi di una cosa che avremmo potuto vedere sia nell'application che nei workbook mo ho aspettato perché in questo caso stiamo parlando di nuovi shit è semplicemente una impostazione che
ci permette di Cambiare quanti shit fate compare direttamente in un nuovo workbook Quindi se parlando di uscita adesso volevo farvelo vedere qua Perciò vado su workbook workbook punto ad con la s magari punto ad faccio invio vedete che mi è comparso un nuovo workbook con un foglio ma io posso andare qua in alto Anzi facciamolo qua dentro che almeno si vede application punto shits punto shits in New workbook vedete e vado a mettere Uguale a facciamo un bel 5 Dopodiché work books.ad E se io vado a mettere un bellissimo F5 Mi è comparso un nuovo
workbook con 5 nuovi fogli Ok quindi alla fine è un qualcosa che ha un impatto su tre diversi oggetti perché stiamo utilizzando application shits in New world Buck andiamo a modificare una proprietà di application ha effettivamente luogo quando utilizziamo l'oggetto workbooks col metodo ad ma in Realtà stiamo parlando di 5 nuovi ok Quindi direi che facciamolo magari partire così questo non mi serve giusto perché voglio tornare Oops giusto perché voglio tornare a uno Perfetto direi che per i workshop è veramente tutto prossimo video Le cose si fanno intense perché lavoriamo con i range Quindi abbiamo
cominciato a seguire l'object Excel Model dalla parte più grande application wordbook cartella di lavoro e worshit fogli adesso arriviamo Effettivamente ai range ai range è la parte in cui andiamo a inserire veramente i dati a lavorare quindi le cose Adesso si fanno veramente veramente interessanti ci vediamo tra poco episodio 34 del corso di vba oggi comincia la Mini serie di video dedicata a Come lavorare con i range questo perché non penserete di cavarvela con un solo video Cioè veramente tanta roba perché range alla fine rappresentano una o più Celle Di conseguenza è tutto ciò Che
succede su Excel quindi oggi partiamo con quella che si chiama modalità 1 notation oppure notazione A1 nel prossimo video avremo un altro tipo di notazione perciò mi raccomando Cercate di non perdervi Allora si chiama annotazione a uno perché perché se Guardate la prima cella che abbiamo è A1 quindi la chiamiamo A1 quella sotto a 2 eccetera Essendo la prima da il nome a tutto il tipo di notazione quindi in questa notazione o location andiamo di Identificare le celle come un insieme di lettere per colonne e numeri per righe a uno b10 C4 qua di 5
e 8 e via discorrendo Ok fin qua credo nessun problema perché è la visualizzazione di default di Excel nel prossimo video entriamo su qualcosa di un pelino più più complesso però nel senso perché ne parliamo è abbastanza intuitiva l'abbiamo già usata su Excel abbiamo già usato dei range così ma ve la faccio vedere perché con il Range possiamo Andare a prendere giustamente una cella più Celle e queste cose voglio farvi vedere come possiamo andare a prendere effettivamente queste Celle quindi noi ci mettiamo qui e andiamo a mettere range Se io apro vedete che abbiamo cella
uno e cella 2 quindi ci fa capire come possiamo inserire una cella qua ad esempio a A1 possiamo anche scriverla in minuscolo Se volete Giusto per non perdere in chiacchiere e poi ad esempio b10 io faccio così faccio punto Select Invio e vedete che facendo così è andata a prendere quello che è tutto il Range compreso tra A1 E b10 va bene un modo simile che possiamo utilizzare per raggiungere lo stesso risultato è da A1 a b10 quindi possiamo fare così se io vado a fare Scusatemi vado a selezionare qui F5 invio e otteniamo lo
stesso risultato Oppure possiamo avere solo una cella perché tanto l'altra è opzionale Vedi che se faccio virgola è tra parentesi quadre Questo l'abbiamo Utilizzato fino successo faccio invio ottengo solo a 1 oppure posso andare a selezionare Celle divise quindi potrei fare a 1 a 5 a 10 faccio invio verifico selezionato tre Celle diverse che come fare A1 control a 5 control a 10 va bene posso andare poi a rendere il tutto più complesso selezionando singole Celle più Celle più range Sempre mantenendo lo stesso tipo di approccio quindi potrei volere a uno però poi potrei scegliere
da B2 fino a B5 quindi potrei fare una cosa del genere come la ottengo una cosa così è molto semplice anziché specificare ogni singola cella possiamo specificare a uno e poi qua andiamo a mettere da B2 a B5 sappiamo che a si fa col due punti se io mi sposto di qua poi torno indietro faccio Ok vedete che con invio ottengo esattamente il risultato che volevo Quindi potete andare a rendere la vostra selezione ancora più complessa mettendo circa un b10 mettendo magari da C1 a c10 Faccio invio e vedete che stiamo andando a rendere la
selezione sempre più intricata e io vi consiglio caldamente di utilizzare questo tipo di notazione in che situazione può tornarvi utile ad esempio da a una b10 scritto così pensate banalmente se avete due variabili qui quindi qua State lavorando e avete una variabile qua che potete inserire oppure da A1 ad un'altra variabile anziché andare a fare tutta una parte di virgolette A1 Chiudi fai Così vai a concatenare la variabile eccetera Anzi col due punti che cosa facciamo mettiamo qua la cella iniziale e la cella finale in questo caso torna veramente veramente utile Però non è finita
perché Perché adesso dobbiamo guardare Come selezionare ad esempio colonne più righe quindi non sappiamo ancora farlo come si può fare Vi faccio vedere se vado e premo su a vedete che abbiamo un errore Quindi voi penserete di prendere tutta la colonna così in Realtà non possiamo farlo invece ci basta fare da AAA faccio invio e vedete che utilizzando da a ad a pensa che noi vogliamo tutta l'intera colonna che è esattamente ciò che stavamo cercando Oppure potremmo fare da A A C vedete Oppure potremmo render le cose un pelino più complesse facendo da AC e
poi magari tutta e vedete quindi lo stesso discorso che abbiamo utilizzato prima lo possiamo applicare anche qua e vi dimostro come possiamo anche aggiungere ad esempio un Banale di 10 quindi vedete ho preso da AAC poi ho preso tutta la e e poi ho preso anche di 10 e basta quindi tutto ciò che abbiamo visto prima lo possiamo applicare anche qua Va bene adesso andiamo a prendere ad esempio le righe e le righe è molto semplice ad esempio possiamo fare da 1 a 1 vedete ho preso tutta la riga Oppure potremmo dire da 1 a
3 mettiamo magari una virgola e possiamo dire poi da 5 a 7 magari mettendo il due punti vedete come sto Andando a prendere tutte le righe che mi interessano andiamo a rendere magari le cose un pelino più complesse prendendo C4 e poi magari prendendo da B A D quindi faccio invio vedete come ho preso tutto Scusatemi un po' infelice avrei potuto fare magari tutta B e basta per far vedere che ho preso anche C in modo singolo se proprio proprio vogliamo andare a mettere insieme tutto ciò che abbiamo visto andiamo a mettere anche magari da
c11 AB 14 quindi tutto quello Che abbiamo selezionato prima e poi da c11 a di 14 facciamo invio e vedete che ho preso Allora le tre righe Quindi da 1 a 3 da 5 a 7 Poi ho preso C4 come singola cella Dopodiché ho preso tutta la colonna B quindi da b a b e poi selezionato da c11 2014 quindi questa è la A1 notation e vi ho fatto vedere come con il Range possiamo andare a fare qualsiasi tipo di selezione Adesso avete veramente selezionato tutto nel caso voleste Selezionare tutto poi vediamo che ci sono
delle particolari proprietà che ci permette di prendere tutte le colonne o tutte le righe e poi lo applichiamo qua oppure utilizziamo metodi appositi però per andare a fare selezioni di range particolari Adesso avete tutte le regole che vi possono servire e tutte le carte in tavola effettivamente per farlo nel prossimo video parliamo della R1 C1 notation che sarà un premio più complesso Ci vediamo tra poco episodio 35 del corso di bba oggi ci spostiamo a parlare della notazione R1 C1 o R1 notation se avete già capito il perché si chiama a un notion quella precedente
potete intuire perché questa si può chiamare C1 perché fa riferimento chiaramente a qualche tipo di Cella o nomenclatura che utilizziamo per le celle se ci fate caso se siete pratici con l'inglese r sta per Row Vabbè siamo fortunati con riga ci sta per colum siamo fortunati con colonna quindi R1 C1 vuol dire riga 1 colonna 1 indovinate un po' riga 1 colonna 1 è A1 per intenderci quindi R1 C1 è un altro tipo di notazione che ci permette di andare a prendere le celle esattamente come possiamo fare con quella A1 Tuttavia è la notazione che
Excel utilizza sotto banco perché Excel ci mostrano i abcde va bene quindi per semplificarci a noi la vita ma in realtà sottobanco funziona con la r1c1 perché alla fine i computer hanno ragione in Lettere ma ragionano i numeri quindi diventa molto più facile andare a capire che questa è donna 1 questa è la riga 1 anziché la colonna a Ok è un po' più difficile ordinare a b c d rispetto a dei numeri è molto più facile anche perché ha più due Quanto fa una volta che finiamo una volta che finiamo le colonne dell'alfabeto Come
andiamo avanti è fattibile ma è più semplice dire colonna 1 + 2 fa colonna 3 colonna 21 + 30 fa Colonna 51 ok Quindi per Abilitarla adesso lo vediamo ci spostiamo su File Andiamo su opzioni andiamo poi su formule e qua sotto stile di riferimento R1 C1 io faccio ok E adesso vedete che è cambiata la nomenclatura delle nostre colonne le righe sono sempre uguali ma le colonne sono diverse Allora partiamo dalle basi perché vi faccio vedere come andare a prendere adesso le singole Celle le singole righe e quant'altro Allora partiamo dalle basi e mettiamo
ad Esempio qui un numero 123 e cerchiamo di ritrovarci quindi far riferimento visto che non abbiamo più A1 e simili ci arriviamo in maniera diretta Oppure possiamo arrivarci anche in maniera indiretta vi faccio vedere dunque se voglio copiare lo sputoratamente potrei dire Beh sono sulla riga 8 colonna 3 perciò poter dire R8 C3 e vedete che ha fatto riferimento esattamente a questa non si può sbagliare Altrimenti possiamo utilizzare quella che è in riferimento Relativo perché vi faccio vedere se io resto sulla stessa riga in cui sono perfetto non faccio niente ma la colonna vado a
mettere tra parentesi più 1 chiudo vedete che si è spostato quindi abbiamo la possibilità di andare a prendere le celle andando a fare somme e sottrazioni sugli indici di righe e colonne nel senso che prima Qua abbiamo preso direttamente il numero vedete R8 C3 Ma se io qua cambio e faccio r9 vado sotto giusto Ma se da questo R8 io Magari cambio e vado a mettere così vedete mi ha preso la riga su cui ero ma meno aumentata di 8 nel momento in cui io vado a prendere il numero lo metto tra parentesi quadre sto
dicendo dal punto di partenza in cui siamo adesso ok Me lo metti di 8 nel caso voglio prendere tutta la riga su cui mi trovo Vi basta fare vedete solo R stessa cosa per tutta la colonna Oppure potrei fare Scusatemi la riga 6 vedete così prendo tutta la riga 6 Altrimenti potrei dire La colonna 5 o magari potrei dire dalla riga 3 alla riga 6 vedete chiaramente non importa il maiuscolo il minuscolo in questo caso non è che i sensitive perciò non c'è differenza allo stesso modo potrei dire Guarda prendo Dalla colonna numero 2 alla
colonna 6 stesso discorso Oppure potrei fare da R1 C1 Perfetto Quindi da A1 proviamo fino a b10 b10 È chiaramente riga 10 Colonna 2 b10 quindi esattamente tutto ciò che abbiamo fatto già con il Range Normale come le abbiamo sempre conosciuti possiamo andare a fare esattamente la stessa cosa Ora vorrei lavorare un po' di più sul sui riferimenti relativi nel senso nel senso quei riferimenti che abbiamo utilizzato spostandoci Quindi da qua voglio arrivare a questo valore girando gli attorno praticamente va bene Quindi vorrei fare una cosa del genere Perciò cominciamo Partiamo da qua e ci
basta fare R non scrivo niente perché voglio Restare su questa riga c e vado a mettere uno mi sposto di una colonna faccio invio 123 oppure andiamo qua e potrei mettere R andiamo aggiungere uno e poi colonna andiamo Aggiungere 1 perfetto Qua invece potremmo andare a mettere riga più uno ma la colonna la teniamo uguale di qua invece andiamo a mettere riga più uno però colonna attenzione devo mettere meno 1 perfetto invece nella riga sotto ci basta utilizzare la stessa riga Ma la colonna Meno 1 perfetto allo stesso modo qua sotto andiamo a fare riga
-1 perfetto vedete che mi sta aprendo tutta la riga e poi colonna meno 1 è molto comoda questa versione Perché Perché in tempo reale ci fa vedere cosa stiamo facendo Quindi se vado a togliere tutta la colonna chiaramente vi mostra tutta mi mostra tutta la riga e io qua con la C vado a mettere meno 1 perfetto spostiamoci qui dobbiamo salire solo di una velocità di conseguenza uguale r - 1 E poi colonna è uguale E concludiamo con colonna +1 e riga -1 perciò uguale r - 1 e poi colonna più 1 Perfetto Quindi abbiamo
fatto il giro attorno a questa cella utilizzando quella che è la notazione R1 C1 non è ancora finita perché perché abbiamo imparato come prendere le righe le colonne più righe più colonne il Range la singola cella abbiamo imparato a fare le operazioni attorno a righe e colonne poi solo fare vedere come Possiamo andare a riempire ad esempio una formula quella che è la classica formula questo più questo e tiro giù facevamo a uno più B1 e tiravamo giù automaticamente cambiavano Qua invece le cose sono leggermente diverse dobbiamo passare da qui e vogliamo dire che ci
serve a uno che quindi non devo mettere come R1 C1 perché altrimenti va a prendere solo quella dobbiamo dire che da qui da questa cella vogliamo prendere la cella che si trova a Due Colonne Prima di conseguenza stessa riga ma Due Colonne in dietro Perfetto più perché voglio sommarlo a cosa alla stessa riga ma una colonna indietro vedete che mi ha preso il rosso se io faccio invio e trascino ottengo gli stessi risultati e automaticamente vedete la formula è uguale per tutti perché prendo da qui prendo la stessa riga ma vado indietro di Due Colonne
e la sommo ha la stessa riga e vado indietro di una colonna molto molto semplice sapete che con R1 C1 attivo Se provate a far riferimento ad A1 non vi darà assolutamente niente perché non sa cosa sta facendo di conseguenza se volete tornare all'utilizzo di A1 notation file opzioni e da qua andiamo su formule togliamo e siamo a posto perfetto Quindi Queste erano le differenze tra la una notation e la R1 C1 notation era importante vederla entrambe prossimo video prossimi due video andiamo a vedere come possiamo lavorare con i Range con proprietà e metodi c'è
un po' di roba di cui parlare Ci vediamo tra poco episodio 36 del corso di vba oggi vediamo come lavorare con i range e ci limitiamo ad una serie di proprietà di Metodi per poi passare nel prossimo video ad altri Visto che c'è veramente veramente tanta roba di cui parlare Ho pensato di dividerlo in due video allora cominciamo Innanzitutto dal capire la differenza tra Select e Selection se io faccio ad esempio un bel range qua e Vado a mettere non ramge ma range andiamo a piazzarci un b10 ok Anzi B 20 No B 10 Ecco
qua punto Select faccio invio vedete che ho selezionato questo metodo Select ci permette di andare effettivamente a selezionare in modo programmatico qualcosa mentre invece utilizzando Selection andiamo a far riferimento a qualcosa che è già stato selezionato ma lo possiamo selezionare chiaramente con range Select Oppure lo possiamo fare a mano ok Quindi se io Prendo questa cosa qua Faccio Selection punto velio uguale a 25 faccio invio vedete che ho cambiato tutti i valori in 25 quindi ricapitoliamo il metodo Select ci permette di selezionare Quindi io potrei selezionare da A8 a d12 facciamolo range a 8 di
12 TAC punto Select e manca roba questo invio vedete che ho selezionato quindi punto Select Eccomi quando noi andiamo a selezionare invece Selection Selection rappresenta l'effettiva selezione va bene che poi Noi in realtà potremmo andare a mettere questo 25 anche in questo modo ad esempio range da A8 a d12 così punto Value uguale a 100 vedete ottengo la stessa cosa ma qual è il discorso Qua stiamo indicando direttamente il Range mentre invece quando utilizziamo Selection può tornare comodo nel caso in cui l'utente abbia selezionato quindi noi facciamo una macro su qualcosa che ha selezionato in
questo caso invece stiamo selezionando Noi nella macro capite Quindi se io facessi partire la macro adesso mi andrebbe a selezionare questo range cambierebbe di 100 se invece avessi fatto Selection se lui è qua cambia a 100 se lui è qua cambia 100 se lui è qua cambia a 100 quindi questa differenza Select lo andiamo a fare noi programmaticamente andiamo a selezionare noi cosa vogliamo Mentre invece se le Action fa riferimento a ciò che è stato selezionato o programmaticamente oppure Dall'utente Arriviamo su un altro tipo di differenza che appunto tra Value e text vi faccio vedere
stavolta prendo solo a 8 magari cancello il resto e a 8 andiamo a metterlo come allargando un pochino come currency Ecco qua vedete 100 euro perfetto Voi vedete 100 euro 100 euro non è 100 è 100 euro Ma se guardate qua in alto vedete il valore è sempre 100 quello che veniamo noi però a schermo è 100 euro Qual è il discorso che se io faccio qua Range a 8.value e voglio che mi torna indietro vedete che ottengo 100 ma se faccio invece text ottengo 100 euro Qual è la differenza differenza la differenza è che
il valore è 100 e XL lo tratta esattamente per quello che è 100 non mi interessa che sono monetine currency un numero polli o quant'altro 100 e 100 però tu mi hai chiesto di cambiare il formato affinché sia più leggibile come currency quindi parlando in cose immunità in situazioni monetarie Economiche Allora io ho detto Guarda questa casella a 100 ma cambio il modo in cui te lo faccio vedere quindi il valore resta sempre 100 ma il testo mandato a schermo è 100 euro Questa è la differenza Presumo sia chiaro Non c'è molto da dire a
riguardo perciò proseguiamo parlando di Formula Quindi se io vado qui Vi faccio vedere e vado sul mio range a 8 e posso fare formula mi metto qui posso andare ad inserire una formula quindi uguale Formula andiamo a inserirla è ad esempio mettiamo che cosa ne so 5 più 5 chiudiamo faccio invio e vedete che abbiamo 10 vi faccio rivedere Magari metto 500 + 5 tack ottengo 505 è come se io avessi scritto qua dentro uguale a 500 + 5 Ok questa è una formula in cui potrei aver dentro anche una funzione la differenza tra formule
funzione che è la formula la scriviamo noi a mano la funzione è qualcosa che abbiamo già quindi ne possiamo andare a creare una Formula dove c'è qualcosa di scritto nostro a mano mischiando più funzioni la funzione è la somma Cerca cose che sono già state fatte su Excel però questo vi fa capire come il concetto di Formula ci permette di andare a inserire nella stessa modalità che andremo a inserire noi a mano nella cella quindi possiamo utilizzare lo stesso modo che abbiamo sempre utilizzato per lavorare lo utilizziamo qua dentro esempio mega incredibile Io posso andare
qui Allargo un pochino perché voglio fare una somma quindi tac ho già fatto somma vedete qua dentro c'è Somma da A1 ab1 io trascino ma non arrivo fino all'ultimo intanto vedete qua c'è somma esattamente come ci serve Perfetto ora voglio andare a replicare la stessa cosa facciamolo quindi devo andare su C4 Quindi vado qui e faccio C4 E cosa voglio andare a prendere voglio prendere A4 più B4 Perciò lo possiamo fare andiamo a scrivere somma Anzi copiamola Direttamente Non perdiamoci in chiacchiere siamo qui Tanto lo sappiamo fare queste cose usciamo Ci mettiamo qua perfetto abbiamo
somma dobbiamo mettere a 4 B4 faccio invio e abbiamo un bel problema non capisce cosa stiamo facendo vedete abbiamo un bellissimo errore Qual è il discorso è che qua davanti L'italiano lo capisce qua dietro no Quindi ogni volta che andate a lavorare con le funzioni dovete utilizzare la loro controparte inglese se faccio invio Vedete che adesso 21 + 5 mirato qua somma perché qua me lo mostra in italiano ma in realtà qua ho scritto Sam cosa ci portiamo a casa da quello che vi ho appena fatto vedere che dietro in vba lavoriamo sempre in inglese
se ogni tanto ci dava i valori vero false virgolette anzi che Turo false lasciate perdere inviva si parla inglese quindi Sam Search e via discorrendo count e quant'altro mentre invece qua davanti le Potete utilizzare all'italiana il motivo Per cui mi sentite spesso far fatica nel corso di Excel se tornate indietro ci fate caso con la nomenclatura italiana è perché io la nomenclatura italiana la so ma parlo più spesso con quella inglese di conseguenza a volte mi confondo perché ragiono inglese perché e perché hai ragione inglese perché poi programmava invidia di conseguenza la quantità di ore
che io ho addosso in inglese è superiore all'italiano spesso e volentieri Ho tutta la suite Office in Inglese perché a furia di parlare inglese Tengo tutto in inglese Questo è importante per farvi capire che qua dietro si lavora in inglese altrimenti non funziona Avete visto sembrava tutto corretto invece si spaccava la seconda cosa è che utilizzando formula possiamo veramente utilizzare ciò che noi abbiamo sempre usato lato Excel grafico non fa differenza potete scrivere esattamente le stesse cose poi sappiamo concatenare le varie variabili dentro una stringa Perciò se vi serve potete concatenare qua dentro dei valori
però voglio farvi vedere un'altra cosa che è la formula R1 C1 ve la faccio vedere se vado qua con formula appunto formula la vedete qua sotto Formula 2 R1 C1 e cosa possiamo fare possiamo andare a utilizzare quindi troviamo qui che non ci interessa più possiamo andare a utilizzare ciò che vi ho fatto vedere di R1 C1 quindi in questo caso vogliamo utilizzare su dove siamo su C4 vogliamo utilizzare La stessa riga quindi righe la stessa ma per quanto riguarda la colonna vogliamo andare a meno 2 penso lo sappiate fare cosa abbiamo cosa abbiamo detto
Siamo qua su C4 giusto vogliamo andare qua dietro quindi stessa riga R ma colonna -1 -2 perfetto più non dobbiamo mettere più perché non serve stiamo utilizzando somma sempre RC ma sto giro meno 1 faccio invio e vedete che ottengo lo stesso risultato e qua in alto utilizzando ancora i riferimenti Classici di A1 non R1 C1 abbiamo sempre Abc e qua in alto somma di A4 B4 ma qua dietro io ho lavorato con R1 C1 va bene quindi anche questa Direi che è andata parliamo invece di palette offset se sapete in inglese ci permette di
spostare ciò che già abbiamo cioè di prendere ciò che siamo noi come come range come cella e traslarlo vi faccio vedere se io sono in Select C4 e faccio Select Anzi magari spostiamoci sul C5 vedete C5 Select nel Momento in cui io vado a utilizzare offset quindi mi sposto un attimino metto qua al più e uso un bel Off set vi faccio vedere Ecco qua l'avete visto offset ci chiede quanto mi voglio spostare di Raw e quanto di colonne Quindi quanto di righe quanto di colonne io sono qua e voglio scendere di due e poi
voglio andarmene via di Due Colonne faccio invio e vedete io ero qui sono sceso di due righe uno due poi ero qua 1 2 se voi prendete questo e questo più Questo e questo arrivo qua Giusto riproviamo TAC Avete visto mentre invece se Dacci 5 voglio passare a Ok mi basta fare uno e zero Vedete se voglio andare indietro sul 26 invio quindi offset si applica di base alla stessa mentalità di R1 C1 Eppure sembra una cosa così così no qua perché se ci fate caso stiamo utilizzando range C5 quindi con la classica notazione A1
va bene ma se avete capito R1 C1 offset È molto facile perché da qua passiamo ok Meno uno sulle Righe Bam più uno Bam più una colonna Bam meno una colonna va Ok quindi questo è offset lo stesso discorso lo possiamo fare per i range se io prendo da C5 a di 7 magari Quindi prima selezioniamolo vi faccio vedere faccio così faccio invio questo è il nostro range incolliamo Vediamo cosa succede TAC Avete visto meno uno facendo riferimento dalla cella che abbiamo Se invece io da qui avessi voluto portarlo Uno due tre e poi 1
2 andiamo a fare tre e due mamma Avete Visto che ho spostato l'intero range perché perché voi dovete partire dalla cella di riferimento Quindi questa c'è la di riferimento quando voi fate offset State partendo da questa cella Bianca Quindi se poi voi volete passare qui dovete spostare questa cella questa cella qua di tre righe ok Quindi questo è il perno la prima Cella è il perno dell'off set di un range Dopo di che cosa possiamo fare possiamo fare eventualmente il recize Quindi potremmo Dire Guarda il Range che mi hai selezionato devo selezionarlo di più quindi
potrei doverlo ingrandire facciamo resize e se Guardate dentro abbiamo quante righe Quante colonne Quindi vogliamo andarlo a allargare o rimpicciolire proviamo a fare uno e uno invio prendiamo però solo magari prima sarà una cella Perfetto allora C5 vedete uno e uno prende lo stesso C5 se io ho solo C5 e dico no voglio due righe giustamente da C5 mi prende se stessa Più una riga sotto e se stesso come colonna quindi uno e uno prende la stessa cella va bene nel momento in cui comincio a crescere da qui Se faccio due se stesso più due
stessa cosa per le righe se stesso uno due Se quindi faccio due due andrò a prendere tutto questo proviamo lo testiamo così tac vedete niente niente male allo stesso modo volete fare tipo 12 Bam quindi resize ci permette di prendere una cella o un intero range e andarlo a espandere o Ridurre in base a quella che è la nostra necessità se giustamente magari abbiamo un intero range vogliamo prendere solo la prima cella ci basta prendere tutto il Range che ci danno ma noi facciamo resize di 1 quindi ad esempio da C5 di 23 Ma io
faccio re Size di 1 e 1 Select ottengo Comunque la prima cella che è C5 Questa potrebbe essere una una situazione scendiamo e vedete quanto stiamo andando lunghi perché c'è tanto di cui parlare Ecco perché l'ho diviso In due video e abbiamo currentry John Che cos'è Current indica una singola regione di dati vi faccio vedere perché se io prendo questo esposto qua sotto questa è una regione di dati questa è un'altra regione di dati Quindi noi possiamo andare a fare Current magari non qua selezioniamo B3 Quindi io sono su B3 e voglio fare Current Region
punto Select Avete visto quindi B3 è questo ma gli ho detto No di B3 mi prendi la regione di dati in cui si trova e me la Selezione quindi mi selezioni tutta la regione di dati in cui si trova rifacciamo vedere Tac Avete visto se faccio a 1 ottengo esattamente lo stesso risultato se faccio invece a 7 ottengo l'altro risultato perché A7 è il primo di questa regione Ok quindi ci permette di trovare quella che è tutta la regione di dati le regioni sono divise da spazi bianchi quindi attenzione perché a volte le regioni possono
generarsi se avete delle righe vuote che non avete pulito Dai dai dati Dopodiché Continuiamo con count e counter large Allora se ve lo qua sul mio range e faccio punto countt counter vedete abbiamo count e count large qua dobbiamo chiaramente mettere punto di domanda perché otteniamo un numero in questo caso ottengo uno perché perché ha 7 è solo una cella Ma se io faccio da A7 a di 10 faccio invio e ottengo 16 stesso discorso potremmo magari selezionare ad esempio da A1 a da 2 Indovinate Quante sono Chi l'avrebbe mai detto che potrebbero essere due
quindi A2 in e sono due Kant ci permette di contare quella che è una selezione che fa l'utente un range potrebbe essere un'intera riga Se volete contare quanto abbiamo selezionato eccetera è molto probabile Però che per certe Selezioni ponete il caso che prendete 3 e 4 righe 10 righe Chissà quante Excel ne ha veramente veramente tante di righe colonne potrebbe darvi un errore non lo Rigeneriamo perché è stupido al momento ma potrebbe darvi un errore di over Flow Cioè non ci state dentro il la il Counter non riesce a contare effettivamente Quante Celle ci sono
o quante righe ci sono Quante colonne in questo caso ho fatto un bel count large Eccolo qua Se fate count Large per le piccole cose non c'è differenza ma per le grandi cose dovete utilizzare Country large anziché counter perché counse aspetta un massimo Di Celle contabili vedetela come un bambino un bambino vi Conta fino a 10-15 e potrebbe essere count mentre invece dovete utilizzare counte large come se fosse un adulto per contare a 15 zilioni di ziliardi va bene un bambino non ce la farà mai a stento ce la facciamo noi però Avete capito il
discorso per concludere Voglio parlarvi di Parent Parent derivava Insomma molto dall'italiano se ci fate caso perché se io scrivo Parent basta aggiungere una e È parente Ed è esattamente ciò che intende è ciò che sta nella gerarchia più in alto rispetto al range Nel nostro caso non è la gerarchia intesa come importanza Ma è semplicemente come albero genealogico ma noi abbiamo studiato le Excel object model e sappiamo che si passa da applicazione a foglio di lavoro a foglio di calcolo Quindi da application a workbook a work shit Dopodiché arriviamo a range di conseguenza se io
faccio punto Parent Vedete non mi dà niente ma semplicemente faccio punto Parent punto name faccio invio ottengo foglio 2 perché Perché un range si trova per un foglio se io vado a fare Parent Parent Dove sto andando sto andando a prendere la cartella di lavoro se vado a fare un altro Parent faccio invio vado a prendere Microsoft Excel quindi questo è un modo alternativo per passare da range a ritroso prima sapevamo lavorare con application Works e range come abbiamo fatto per tutta la durata del corso con questo Parent possiamo passare al contrario questo range Dove
si trova Ok In che foglio Ma in che foglio ma In che cartella di lavoro eccetera eccetera Ok quindi paren ci permette di andare al contrario quindi direi che per il video di oggi è veramente tutto nel prossimo video parte 2 e lavoriamo con tutte le questioni di copia e incolla in colla speciale Sostituisci autocompletamento e Quant'altro Ci vediamo tra poco episodio 37 del corso di vba oggi vediamo la seconda parte su possiamo lavorare con i range e ci dedichiamo ad una serie di metodi che in realtà non ci rendiamo conto ma utilizziamo spessissimo lato
interfaccia quando siamo su Excel Allora partiamo subito c'è tanta roba di cui parlare perciò andiamo a cannone la prima cosa è il feel down Quindi quando andiamo a trascinare giù un valore oppure una funzione quello che abbiamo Appena fatto lo vogliamo replicare però lato codice come possiamo fare è molto semplice ci basta andare a prendere il Range che ci interessa quindi range e prendiamo da C1 a dove vogliamo scendere quindi da C1 fino a C4 C1 è la cella con il valore o la formula che ci interessa ci basta andare qua a fare un bel
punto fill down abbiamo un errore perché io non chiudo mai le virgolette finali faccio invio e vedete che mi ha completato La somma anche per un'altra Celle quindi ricapitoliamo dovete prendere il Range dalla cella che contiene ciò che volete trascinare fino a dove lo volete trascinare Ecco qua e vi limitate a fare fill down qualsiasi cosa abbiate qua dentro verrà copiata va bene quindi fill down abbastanza facile seguiamo lo stesso filone e parliamo di replace replace vuol dire sostituire quindi noi potremmo avere una serie di valori diciamo così Ma creiamo magari due spazi vuoti Uno
due tre noi vogliamo andare da A7 ad a 16 quindi a 7 fino ad A 16 e vogliamo fare un bel replace ma replace di cosa Giustamente ci chiede What Con cosa noi andiamo a sostituire in What due punti uguale andiamo a mettere il niente quindi una stringa vuota perché effettivamente vogliamo sostituire il niente con ad esempio replace kit possiamo mettere nessun dato dato mancante dato mancante mi sono Dimenticato qua la virgola mi raccomando è importantissima perché sennò vi dà errore faccio invio e vedete che ci ha sostituito lo spazio vuoto con dato mancante come
potete vedere dalla documentazione c'è qualcosa di più di così al momento ci limitiamo questo però potete capire che già utilizzare trova e sostituisci in questo modo possiamo utilizzarlo in tantissime circostanze andiamo avanti e parliamo di Text to colum Quindi da testo a colonne Perciò Se io vado qui e magari facciamo da A7 ad A10 quindi a 7 a 10 andiamo a prendere dei dati magari che sono stati inseriti tutti insieme quindi potrebbe essere Marco Ops cosa ci faccio qua non lo so Quindi da a 7 Marco Verdi Oppure potremmo avere Luca Rossi Anna neri neru
va bene Cosa vogliamo fare vogliamo andare a dividere quello che c'è qua dentro in due valori ovvero Marco e poi staccato Verdi come possiamo fare punto Text to colums Ecco Qui facciamo spazio ci chiede la destinazione e la destinazione andiamo a mettere come destination uguale Quindi voglio tenerlo su A7 il nome e su b7 il cognome perciò io vado a mettere da a 7 perfetto e poi dobbiamo mettere quello che è il separatore in questo caso il separatore è Space Perciò se troviamo Space Ecco qua due punti uguale Io metto True faccio invio e vedete
che abbiamo diviso spieghiamo un attimo questa parte Qua che può essere non Chiara Allora ho preso il Range che avevo qua Giusto Marco Verdi Luca Rossi e Anna nero ed erano qua da a 7 ad 9 ho voluto fare texture quindi passare dal testo che era tutto qua lo volevo incolonnare volevo dividerlo Il range di destinazione è a 7 perché perché voglio che il nome parta da qua automaticamente c'è il cognome Quindi lui va a dividere il testo parte dalla destinazione e va a riempire le altre colonne di conseguenza col testo Sulla stessa riga Dopodiché
scende perché gli abbiamo dato range quindi partendo da 7 lo sto facendo sul posto e poi ho letto Space True Perché la divisione era con lo spazio Se invece avesse avuto Marco virgola Rossi o Marco virgola verde avrei potuto fare comma perché comma è la virgola Se invece avessi avuto un altro valore che non è compreso pensate a uno slash o altre cose che non sono comprese potremmo aver messo ader True other vuol dire altro e Poi ader char char è carattere quindi l'altro carattere cos'è ve lo dico io Che cos'è avremmo messo qua lo
spazio and avevano messo Lo slash abbiamo messo questo è irrilevante potete mettere quello che volete finché andate a mettere Adler True e Oder char potete gestire qualsiasi casistica proseguiamo e alleggeriamo un attimo la situazione per portare la sua roba un po' più complesse e parliamo di font che abbiamo già visto Quindi restiamo Magari solo su A7 il Font lo conosciamo Se faccio punto font punto abbiamo una serie di cose abbiamo visto che possiamo cambiare il Bold per mettere se è grassetto o no posso mettere trucco così fare invio vedete che è grassetto abbiamo Bold abbiamo
italic abbiamo underline so cosa che abbiamo già viste Perciò vado velocemente abbiamo il colore posso fermarmi un attimo sul colore come colore potremmo mettere RGB e qua dentro vedete che possiamo mettere Degli interi come come valori questo perché RGB sta per Red Green e blu va da 0.255 sia Red che Green che blu e possiamo andare a cambiare a tiltare volevo dirlo Scusatemi quello che è il tipo di colore ad esempio 150 e 20 se faccio così faccio invio vedete che ha cambiato colore è un marroncino strano praticamente magari 255 faccio invio vedete che è
diventato rosso poi sulla RGB ci sono dei calcolatori online che Vi permettono di convertire i colori Penso in italiano calcolatore punto Neto ci sono altre cose simili andate lì prendete le RGB che vi serve e lo buttate dentro altrimenti di default ci sono i colori tipo vibi Magenta se non mi sbaglio faccio il mio vedete che ha cambiato probabilmente VB blu e via discorrendo finché usate i nomi inglesi quelli più comuni sono dentro Basta che mettete VB e ve la cavate però se volete utilizzare RGB è più che consigliato Dopodiché abbiamo interior per modificare il
background Se volete interior punto color ci sono un po' di cose tipo il gradiente eccetera realtà quello che ci interessa più spesso sarà il colore io vado a fare color uguale VB Magenta ad esempio faccio invio e ho modificato il background quindi due cose molto semplici che ci siamo tolti dalle scatole proseguiamo e andiamo avanti con la Larghezza delle colonne e l'altezza delle righe è molto facile perché io Potrei voler giustamente allargare qua così potrei oppure volere allargare la colonna insomma le situazioni le le conoscete oppure Potrei voler fare l'autofit da qua premo due volte
qui e mi fa l'autofit queste situazioni le possiamo gestire chiaramente anche lato vba perciò facciamolo io vado su A7 a 7 questa qui Voglio aumentare ad esempio Raw punto Raw out Eccola anni fa e andiamo a mettere magari 40 faccio invio vedete che me l'ha allargata chiaramente Non allarga solo la cella a allarga tutto Perciò potete limitarvi a prendere una una cella qualsiasi ad esempio riga 10 fino alla riga 15 faccio invio vedete che ho modificato potete gestirvela come riga Oppure potete andare a prendere una singola cella basta avanza allo stesso modo possiamo avere colum
andiamo a cercare colum uev eccola qui prendiamo magari da A a B io faccio invio e vedete che ho allargato anche qua le colonne proseguiamo e parliamo di Clear Clear Content e Clear Format Allora per farvi vedere questa cosa qua Innanzitutto riduco un pelino Qui molto bene vado a creare tra Celle tre Celle con entrambe lo stesso formato Quindi mettiamo dentro 25 e 25 5 qua dentro andiamo a modificare sia il formato in generale Perfetto magari anche il grassetto Allora Clear content pulisce semplicemente i valori vi faccio vedere quindi range apro e dentro vado a
mettere di 6 vado qua Appunto Clear content faccio invio e ho missato perché ero sul C Scusatemi quindi C faccio invio vedete che è stato pulito solo il valore se mi sposto su C7 e faccio punto Clear formats Ecco qua formati non Format formato faccio invio vedete che è stato mantenuto il valore ma pulito il formato Se invece mi sposto su C8 e faccio Clear ho pulito qualsiasi cosa Quindi niente di incredibile ripeto vado veloce perché sono cose che ce la Facciamo in Excel si tratta solo una volta che avete finito questo video di praticarlo
un pochino affinché visti in testa proseguiamo e andiamo avanti consort Sort vuol dire ordinare quindi noi vorremmo ordinare magari questi valori Eccoli qua magari cancelliamo queste Elimina e aggiungiamo perché no Inserisci nome e cognome li mettiamo in grassetto Qua invece voglio pulire il formato quindi andiamo su A2 A2 e noi facciamo Clear formats bum Torniamo allo stato principale Cosa vogliamo fare vogliamo andare a ordinare questa tabella Magari solo per nome oppure se abbiamo due Marchi ci deve essere prima Marco Aruba giustamente comincia con la a e poi Marco verdi però prima ci deve essere Anna
in realtà verrebbe prima Anna Poi Luca poi i due Marchi ma Marco Aruba con la deve venire prima di Marco verde per fare il Sort possiamo utilizzare Exchange Ma andiamo velocemente con le colums non ve l'ho Ancora spiegati ma non preoccupatevi prendiamo da AB Quindi da AB chiudiamo si capisce anche se non vi ho ancora spiegato si capisce Voglio le colonne A e B voglio fare punto short e voglio andare a ordinare prima tutto questo Semplicemente per nome quindi per la prima chiave di conseguenza vado a mettere chiave 1 che è l'unica che abbiamo vado
a mettere range di cosa Di a ad a perfetto Facciamo così oppure potremmo usare colums tanto che siamo Qua con un columns perfetto virgola e andiamo a mettere Order 1 2 punti uguale a cosa lo vogliamo Excel a sending lo vogliamo ascendente F5 ma anche qua Scusatemi l'uguale F5 e vedete che ci ha effettivamente ordinato facciamo un primo di spazio cioè effettivamente ordinato quelli che sono i nostri nomi Abbiamo un problema non abbiamo ottenuto in considerazione gli Eder quindi tornare indietro non possiamo tornare indietro perciò Dobbiamo rifare tutto da capo ci mettiamo qui TAC Inserisci
contro Z inserisco Ok Cosa possiamo fare adesso facciamolo discendente Visto che ormai è già ordinato quindi anziché assending facciamo the sending però dobbiamo ricordarci di dirgli Hey mi devi dare le Header Cioè ti devi ricordare che io ho delle Header di conseguenza heder con la h maiuscola così E mettiamo Excel Yes dovrebbe bastare anche True F5 e vedete che me l'ha fatto in modo Discendente ma me l'ha fatto in modo discendente tenendo conto delle Header ma solo per il nome perché Come vedete non abbiamo preso in considerazione il cognome io potrei voler dire Ehi me
le fai in ordine ascendente e adesso facciamo a sending Quindi voglio prima Anna Poi Luca poi due Marchi Però voglio che mi organizzi anche e cognome se avete visto che abbiamo chi uno e Order 1 indovinate un po' Avremo anche Q2 e Order 2 di conseguenza io vado qui copio Letteralmente a sto giro non è più a ma è B perché perché voglio ordinare il cognome Ricordiamoci di andare a capo qua in modo che c'era ricordi e se io adesso faccio F5 vedete che mi ha ordinato Marco e verdi ascendente se vado a cambiare qua
in the sending de sanding guardate qua dovrebbe invertirci a ruba e verdi F5 In realtà abbiamo sbagliato tutto Perché perché qua ho lasciato Order 2 Facciamo così F5 vedete the sending cambiamo in assending F5 Vedete Quindi qua avevo solo fatto un errore avevo lasciato Order 1 anziché Order 2 però vedete come funziona tutto e questo è il Sort voi penserete che abbiamo ancora finito Ma no perché ci mancano ancora tre cose la cancellazione di una cella quindi tasto destro Elimina cioè là Vedete se faccio elimina Cella mi chiede dove voglio spostarmi Ok ci manca taglia
e copia e poi giustamente il peste è paste Special Allora partiamo dalla d'elite Come cancellare una cella Dunque per cancellare spostiamoci qua sotto che è più veloce facciamo range e voglio prendere cos'è che era A3 perfetto Voglio cancellare a tre andiamo a mettere un bel punto d'elite Eccolo qua spazio e mi chiede dove voglio farlo shift e lo shift sarebbe quello che abbiamo visto Qua sull'elimina vedete sarebbe spostarsi in alto spostarsi a sinistra riga Intera o colonna intera noi ci limitiamo a fare un bel Excel tu left quindi possiamo andare Secondo me o Top oppure
a sinistra se io faccio to left vedete ho fatto to left e la cella è stata sostituita Rossi si è spostato perché Perché è andato a coprire il buco lasciato da Luca perfetto nel caso invece volessimo farlo passare sopra anziché tu left ci basta mettere app vedete che i due Marchi si sono spostati e anche questa L'abbiamo portata a casa come vedete è Ripeto la traduzione in vba di ciò che abbiamo probabilmente fatto e rifatto in Excel un migliaio di Volte proseguiamo e parliamo di Copy e Cat copie Cat sono taglia e copia Quindi non
ancora incolla che adesso vediamo ma cominciamo con taglia e copia copia molto facile che se io copio e poi incollo il valore qua resta Se invece taglio Quindi copia si va con control c parla con control vs io taglio contro il Z control X Scusatemi e poi vado sotto e faccio incolla con controlli vedete che il valore è sparito quindi la differenza è che taglia sposta il valore copia Semplicemente lo copia come possiamo farlo è molto semplice Direi che possiamo fare a tre ok Siamo qua a tre punto Cut benissimo Ci mettiamo Qua abbiamo la
possibilità di mettere una destinazione in realtà vi faccio vedere se faccio invio e poi vedo qua con control V quindi colpeste posso effettivamente fare il pasted altrimenti devo riportarli indietro perché l'ho fatto con macro altrimenti cosa posso fare posso aggiungere direttamente una Destinazione la destinazione destination non è a noun ma è invece una destinazione che andiamo noi a mettere in questo caso Cosa possiamo fare tagliamo direttamente e spostiamo in b7 se faccio invio vedete che ha già tagliato e incollato che cosa abbiamo poi abbiamo la possibilità di fare invece Copy quindi sempre da A3 diciamo
così tac mettiamo Copy faccio invio vedete che ha copiato il valore utilizzando copie e Cat con Destination automaticamente fa già incolla non dobbiamo fare noi paste Però come sapete bene abbiamo sia control X contro il C per tagliare e copiare però abbiamo effettivamente anche il comando Incolla il comando incolla è paste e soprattutto paste può arrivare in diverse sfaccettature vi faccio vedere se io vado qui faccio copia incolla vedete che qui abbiamo una serie non piccola di opzioni questo perché possiamo incollare il valore e Basta e fregarsene come ho appena fatto così oppure possiamo incollare
speciale Andiamo qui diciamo guarda io voglio solo che mi incolli la formula voglio che mi incolli solo il valore vedete senza la Formatta descrizione Oppure posso voler incollare esclusivamente la formattazione originale quindi possiamo andare a scegliere che cosa vogliamo effettivamente mantenere non vogliamo nessun bordo possiamo farlo senza bordo vogliamo mantenere la larghezza della Colonna Quindi se è più grande andrà a cambiare anche la larghezza di questa colonna sono cose che credo ormai Sappiate Però vediamo come possiamo farle in vba per farlo spostiamoci sopra che dobbiamo andare a scrivere due comandi almeno Allora il primo è
Copy se vogliamo copiare e il secondo è paste in questo caso andiamo a mettere pace Special quindi andiamo in C7 C7 perfetto e andiamo di paste Special Ecco qua Faccio F5 e vedete che ha copiato Tranquillamente che cosa succede andiamo a farlo anziché di A3 facciamolo di A1 F5 e vedete che ha copiato e non è successo nient'altro ok Quindi abbiamo il nostro nome ma ha copiato tutto possiamo andare a specificare vedete qua nel momento in cui ho fatto spazio ci dice tutte le varie opzioni di Space Special quindi quello opzione che avevamo quando Qua
abbiamo fatto copia incolla queste opzioni ce le abbiamo Fatemi tornare indietro Ce l'abbiamo Anche qua io faccio spazio e noi possiamo andare a prendere Magari solo i formati Io vado qui Togliamo questo torno sulla macro F5 e mi ha copiato il formato se io scrivo mi ha effettivamente copiato il formato torniamo indietro spazio Excel paste all se vogliamo copiare tutto oppure Giusto per farvi vedere andiamo solo con i valori mettiamo qua F5 E giustamente io avevo già formattato in precedenza sta maledettissima cella quindi facciamo Così torniamo indietro quindi ci 7 per far vedere che non
sbagliando prendiamo magari anche c10 F5 e vedete che mi ha incollato esclusivamente il valore Qual è stato il problema del tentativo precedente è che questa cella l'avevamo già formattata in grassetto un minuto fa di conseguenza ha mantenuto quella formattazione ma non ha preso questa formattazione perché Come vedete non è stata riportata bene direi che ci abbiamo messo un pochino Probabilmente Tra i 20 e i 30 minuti ma abbiamo visto come lavorare con i range ci abbiamo messo un po' di video nel prossimo video parliamo dell'oggetto seltz quindi possiamo utilizzare anche sels per parlare con le
celle Senza passare dal range Poi vedremo per righe e colonne ci vediamo tra poco episodio 38 del corso di vba oggi continuiamo a parlare dei range Però andiamo a selezionare le celle in modo diverso utilizzando quello che potete vedere qua Sotto che è l'oggetto seltz sels è il plurale di cell che vuol dire Cella è Celle quindi utilizzando questo oggetto possiamo andare a prendere le celle esattamente come potevamo fare con il Range solo che qua cambia leggermente perché con Cell siamo obbligati ad utilizzare vi faccio vedere rowindex e colum Index quindi dobbiamo utilizzare dobbiamo per
forza utilizzare la notazione R1 C1 e soprattutto non possiamo andare a fare quelle che sono Le super combinazioni con il Range in questo caso andiamo a prendere solo le le celle vi faccio vedere noi siamo qua seltz se faccio punto Select prendo tutte le celle Altrimenti possiamo utilizzare il costrutto rose che vedremo meglio nel prossimo episodio posso prendere Rose vedete la 1 punto Select faccio invio prendo solo La 1 la stessa cosa posso fare per colums faccio invio e prendo la colonna però questo al momento ci interessa meno quello che ci Interessa è il fatto
di poter utilizzare sels e andare a prendere la realtà in modo specifico Quindi se io faccio cella su riga 2 e Colonna 3 faccio invio vedete che riga 2 è questa è colonna 3 e questa di conseguenza abbiamo C2 il discorso è uguale per la notazione R1 C1 che utilizzavamo nel range non cambia assolutamente niente qua però è obbligatorio da utilizzare possiamo lavorare solo così con le coordinate di righe e colonne come potete vedere però Non abbiamo la possibilità di allungare il il Range Non possiamo farlo perché possiamo prendere solo una cella Quindi o utilizziamo
Self punto Select per prendere tutte Ok perfetto oppure possiamo utilizzare come abbiamo visto Rose se vogliamo prenderli l'intera riga o colonna Perfetto Ma come facciamo a prendere un sotto range cioè io ho qua seltz e ho due tre l'abbiamo appena visto faccio invio ok Ho la mia C2 ma se io volessi una cosa del genere come Posso fare con seltz conselves non è possibile quindi dobbiamo per forza avvantaggiarci del metodo recyze di cui abbiamo già parlato Se vi ricordate qualche episodio fa due episodi fa credo io vado a fare punto re Size e adesso utilizzo
la stessa notazione che ho qui per andare a fare il re Size Quindi da qui so che voglia allargarla di una colonna e voglio allargarla di tre righe però se facciamo 1-1 Ricordatevi che prende solo questa quindi è uno due come Colonne e come righe 1 2 3 4 Quindi è 4 e poi 1 2 di conseguenza se io faccio 4,2 Fatemi togliere qui eravamo fermi sul C2 io vado a fare Select vedete che ho preso esattamente il Range che mi serve ricapitoliamo un attimo perché ci sono veramente veramente tanti numeri sono solo quattro ma
possono confondere Allora sels fa riferimento se avete Self con due numeri non avete delle celle non avete un insieme di Celle ne avete una quindi sarebbe stato più opportuno avere Cella così però abbiamo cella due tre quindi riga 2 colonna 3 riga 2 colonna 3 e questo non possiamo andare a prendere più Celle insieme di conseguenza facciamo il re Size del nostro range Quindi da una cella voglio passare a qualcosa di un po' più grande di conseguenza da questa cella voglio prendere tre righe sotto Ma sapete bene che il re Size se noi mettiamo Uno
resta su se stesso quindi se vogliamo tre righe oltre a se stesso se stesso È uno Più altre tre righe fa 4 allo stesso modo se voglio una colonna in più è se stesso più una colonna in più ed è 2 Se io faccio così faccio Select e abbiamo il nostro range quindi andiamo a fare creare un altro esempio giusto per prova ma alla fine questo è sels lo diviso perché Perché è un altro tipo di oggetto è sempre legato al range Nel senso che lavoriamo con le celle però è un oggetto effettivamente diverso e
non volevo buttarvelo dentro tutto il resto del Range abbiamo così range range alla fine compare cells comunque un metodo molto comodo che a me piace per prendere una singola cella E perché è comodo perché è fatto Innanzitutto in R1 C1 torna comodo e soprattutto Quindi non dobbiamo per forza lavorare con qua in alto R1 non dobbiamo abilitarlo è già qua dentro e soprattutto vedete che questi numeri possono essere sostituiti da variabili facilmente di conseguenza possiamo andare ad avere variabili che indicano Le le coordinate Comunque facciamo un altro esempio voglio prendere b10 b10 è Colonna 2
riga 10 quindi Colonna 2 riga 10 io ragiono sempre in colonne e poi in riga preferisco anche se vado al contrario E poi voglio andare da b10 fino a di 14 quindi sappiamo che è più 4 righe e più Due Colonne quindi più quattro righe e più Due Colonne quindi è 5 e 3 faccio invio Ed è esattamente quello che volevo Perché Perché una colonna Due Colonne Tre Colonne quindi Due righe in più di quella che ho già uno più due tre e quattro righe in più di quello che ho già di conseguenza quello che
ho già più 4 abbiamo 5 perfetto questo è vedete come recedes C'è tornato utile anche in questo caso episodio velocissimo Spero che il concetto sia chiaro adesso parliamo di righe e colonne quindi Rose colombs Raw e colum c'è un po' di cui parlare perciò l'ho diviso in un episodio a parte ci vediamo tra poco episodio 39 del corso Di vba concludiamo quello che riguarda il Range e le varie Celle parlando di righe e colonne perché se ci avete fatto caso abbiamo parlato di Raw e colum e rose e columbs un po' di volte l'abbiamo tirate
fuori durante questo corso un po' di volte in certe situazioni però non spiegandole sappiamo che la riga è questa sappiamo che questa è una colonna abbiamo preso più righe con il Range più colonne eccetera però ci sono effettivamente delle proprietà che Possiamo utilizzare per righe e colonne Allora innanzitutto cominciamo velocemente perché c'è un po' di cui dobbiamo parlare vi faccio vedere se io ho qua ad esempio b10 b10 chiudo e faccio punto Row e magari metto il punto di domanda qua perfetto faccio invio vedete che mi dà la riga 10 Eccola qua vedete quindi range
b10 di questa cella che è b10 qual è la riga la riga è la 10 quindi potreste capire che io posso andare a fare la stessa cosa per colum e Ottengo la colonna che è la 2 quello che tengo come avete già visto è notazione R1 C1 perché la colonna è 2 e non è B quindi questa parte semplicissima possiamo risalire alle coordinate numeriche di righe e colonne di un range particolare la stessa cosa in realtà la possiamo fare anche ad esempio su l'active cell vedete Quindi se io mi sposto qui faccio Active cell colum
e ottengo tre Vi faccio rivedere che c'era un po' troppi numeri vedete L'active cell è la cella che io ho effettivamente selezionata e attiva come abbiamo colum possiamo avere Raw e in realtà potremmo avere anche address per avere l'indirizzo effettivo un'altra cosa che possiamo avere però è il plurale quindi rose e colums vi faccio vedere Innanzitutto potremmo chiamare Rose così vedete Io potrei selezionare la mia Raw punto Select e mi Seleziona tutta la prima Tutta la prima Raw allo stesso Modo potrei fare columbs una volta che capite questo andiamo a cercare di prendere più cose
insieme abbiamo un problema però perché non possiamo fare altrimenti se notate abbiamo questo uno riga 1 Ma se io volessi di più prova a far così E ho un errore come possiamo fare Ci basta mettere le virgolette come abbiamo sempre fatto anche nel range solo che devo ricordarmi di rimettere la s perfetto vedete che se metto la S quindi ottengo Rose Voglio le righe Quale dalla 1 alla 5 e se io lascio con le virgolette prendo solo a uno funziona lo stesso quindi se lavorate sempre con le virgolette è meglio in modo che vi ricordate
che se volete più righe lo potete assolutamente fare vedete in questo caso però se faccio invio mi vedete vedete che mi dà problemi perché perché qua stiamo parlando con la nomenclatura da alfabeto di conseguenza devo fare da A A C e vedete che in questo caso me la prende si tratta di Fare ehm un po' di pratica e abituarsi a queste cose perché perché a volte ci ritorna R1 C1 A volte ci ritorna indietro a uno notion a volte dobbiamo utilizzarle lettera a volte dobbiamo utilizzare i numeri ci farete poi l'abitudine se avete quattro virgolette
parte numerica non possiamo utilizzarla vedete quindi dovete andare per a Perfetto Se invece siete qui parte numerica potete assolutamente utilizzarla e questo è rose e colums Lato application quindi passate direttamente da qua come se fossero degli oggetti Ma possiamo anche utilizzare rose e colums sul range vi faccio vedere se io avessi un range che va magari da B2 fino a di 14 Facciamo così punto Select TAC Questo è il nostro range magari Diamogli un po' più di larghezza come vedete abbiamo il nostro range Qual è il fatto che se io a sto giro vado a
selezionare Rose 1 Noi di solito andavamo a prendere la prima riga Ma in questo caso Anzi facciamo la ro2 quindi vi aspettereste di prendere questa qua la riga effettivamente 2 in realtà vi faccio vedere vedete come mi ha selezionato Questo era il nostro range più o meno vedete come mi ha selezionato Rossi faccio rivedere Rossi Perché allo stesso modo con la Colonna colum noi vi aspettereste la b in realtà faccio colum 2 mi Seleziona la C perché Perché Utilizzando colums e Rose dentro un range stiamo utilizzando il sottoinsieme capite finché era lato applicazione Faceva riferimento
a tutto ok ma quando fate riferimento ad un range voi state chiedendo la seconda colonna del range da B A D la seconda colonna è la C da 3 a 16 La Quarta colonna la quarta riga Scusatemi è la sesta capite quindi possiamo andare a selezionare righe e colonne all'interno di un range quindi Ricordatevi questa Cosa qua l'ultimo concetto che voglio andare a coprire Per quanto riguarda range perché sono veramente tante tante informazioni è Empire Ro e Empire colum ad esempio poniamo il caso di avere una cella Attiva Eccola qua Active cell possiamo andare a
fare Empire vedete colum punto Select faccio invio giustamente il Ranger a questo mi prende sempre la prima cella e mi ha preso tutta la colonna vedete allo stesso modo posso fare Empire Raw Che vuol dire riga Intera e la va a prendere Va bene quindi questo è il discorso per quanto riguarda righe e colonne vi ho fatto vedere tanti modi per lavorare perché ci sono tante situazioni diverse in cui potreste utilizzare non tutto va bene per tutto quello che vi consiglio io essendoci tanta tanta roba è concentratevi su qualcosa che vi risulta semplice prendete due
o tre metodi utilizzate quelli se vi piace il Range con AB eccetera state con quello se vi piace Utilizzare cell se vi piace utilizzare il raw e colum restate con quello Insomma potete scegliere io la mia regola che usavo all'inizio era seltz per prendere magari una singola cella 1 2 punto Select facevo così se volevo invece prendere una Raw S importante andavo a fare così Ro 1 ro2 ro3 se volevo di più mettevo tra virgolette Bam stessa cosa per le colonne quindi columbs chiaramente dovete togliere questo Utilizzare AB Bam se volevo un range definito range
andavo qui e prendevo le celle che mi servivano ad esempio da A2A b10 virgola prendo solo b11 Facciamo così punto Select TAC vedete e faccio le mie selezioni tendenzialmente restavo con queste quattro piccole semplici cose all'inizio e poi eventualmente se avevo necessità e mi trovavo bloccato con quello che avevo cercavo di tornare sulla documentazione riguardare ciò che avevo già visto all'epoca io lo stavo in Realtà scoprendo voi l'avete già visto Quindi tornate su ciò che avete già visto tanto lo sapete usare nel momento in cui gli date una rinfrescata Ah ok si faceva così aveva
questo senso va bene se volete fare tutto con range fatte con range potete assolutamente farlo per me per ricordarmi le cose era range quando voglio un range diverso strano che mi può interessare o anche solo un quadrato del genere un rettangolo del genere se voglio una cella precisa o uso range Meraviglioso cell non mi posso sbagliare se voglio una riga uso Raw o più righe userò colums per le colonne quindi cerco di tenere le cose abbastanza semantiche per non dimenticarmi perché magari vi dimenticate Come prendere qua col range da A a B vi dimenticate nessun
problema usate la stessa cosa fate columbs da aab utente lo stesso risultato però così è più immediato vedete oppure Rose magari da 1 a 2 è più immediato ho sbagliato Così è più immediato rispetto che Ricordarsi range così facciamo per cambiare tre Perfetto magari non ve lo ricordate perché c'è range ma prima usavamo a 1 B2 eccetera quindi tenendo le cose settorializzate con colum rose e quant'altro diventa anche più facile da leggere uno legge range 1 3 magari siete all'inizio lavorate con qualcuno che non è abituato No Aspetta non sto capendo se invece mettete rose
non potete sbagliarvi colum AB non potete sbagliarvi va bene questi sono i miei Consigli direi che con le celle praticamente righe colonne abbiamo finito nel prossimo video parliamo del message box quindi un bellissimo oggetto che abbiamo a disposizione per mandare messaggi a all'utente Ci vediamo tra poco episodio 40 del corso di vba oggi voglio dedicare un po' di tempo ai message box i messages altro non sono che le finestrelle di messaggio che ogni tanto possono comparire quando magari vogliamo cancellare qualcosa e ci dice Sei veramente sicuro proviamo a cancellare questi Elimina vedete Questo è un
message box Qua abbiamo il titolo Questa è l'icona Questo è il contenuto del messaggio e poi Qua abbiamo due bottoni Quindi come potete ben vedere un messaggio è composto da alcune parti e oggi le vedremo tutte per cominciare ama andare a schermo un message box ci basta facciamolo magari qua per fare la svelta scrivere message MSC che sta permessage box Dopodiché se faccio spazio vedete che abbiamo tre cose che ci possono interessare il prompt che è il messaggio effettivo i bottoni che possiamo andare a sistemare e il title il resto non ci interessa Allora partendo
dal prompt possiamo scrivere prompt o possiamo anche non metterlo Facciamo che non lo mettiamo a sto giro nel prompt scriviamo Ciao sono un message box Perfetto io faccio così faccio invio e vedete che è uscito un message box simile a quello Che abbiamo ottenuto prima per quanto riguarda l'eliminazione del foglio in realtà avevamo qua Elimina o Ok avevamo poi un'icona ma il titolo era uguale se poi proseguiamo vedete che ci va a suggerire un po' di roba questo perché ve lo anticipo ma lo vediamo meglio dopo questo perché possiamo andare a insieme le icone i
messaggi che vediamo e il tipo di messaggio di default ci arriviamo a breve tra pochissimo intanto vado di Critical Dopodiché faccio Virgola e ci spostiamo sul titole per il titole vado a mettere sono un titolo quindi io faccio così faccio invio e vedete voi non avete sentito l'audio del computer perché è disattivato Ma è capitato quel suono di Excel che ci avverte di un message box di messaggio di errore vedete che L'icona è un classico messaggio di errore Questo è il titolo vedete che l'ho cambiato qua come terzo parametro Questo è il prompt e per
quanto riguarda la seconda parte VB Critical ho cambiato questa icona adesso che titolo e prompt ce li siamo levati dalle scatole Direi che possiamo concentrare buona parte del nostro tempo per quanto riguarda il secondo parametro che è quello dei bottoni Allora cominciamo dal principio perché c'è veramente tanta roba Oltre al fatto che è molto straordinario dunque la prima cosa che abbiamo è semplicemente l'okay che possiamo raggiungere semplicemente Escludendo il parametro come potete vedere abbiamo il classico Ok che chiude in realtà Al momento i bottoni non fanno niente finché noi non andiamo a registrare una funzionalità
su quel bottone I bottoni sono solo dimostrativi Quindi abbiamo il classico Ok però poi possiamo andare ad avere VB Ok cancel vedete abbiamo Ok only che è come non metter niente vi faccio vedere faccio invio Ok only quindi solo ok Oppure possiamo avere Ok kensol io faccio invio Vedete che abbiamo ok e annulla posso spostarmi con le freccette ma di default se schiaccio è ok Ricordatevi questa cosa di default perché a breve ci arriviamo Dopodiché possiamo avere torniamo indietro Facciamo così VB Yes o no Quindi anziché avere Ok ok Sol possiamo avere ye No faccio
invio e abbiamo Sì no Ad esempio vuoi cancellare Sì no vuoi tornare indietro Sì no però sull'eliminazione potremmo avere Elimina o annulla quindi in realtà sono due Facce della stessa medaglia potete scegliere voi che tipo di nomenclatura mandare a schermo tra queste due oppure chiudo abbiamo VB yes no e kensol vi faccio vedere yes no eckenson faccio invio e abbiamo Sì no e annulla in questo caso si può trattare di una situazione in cui se facciamo Sì Succede qualcosa se facciamo no succede magari qualcos'altro se facciamo Annulla si ritorna allo stato precedente come se non
avessimo mai cliccato Oppure Potremmo avere VB retrai retrai e kensol faccio invio e vedete che abbiamo Riprova o annulla quindi torna indietro per far ricomparire i suggerimenti solo da questo punto di vista abbiamo un po' di situazioni ma abbiamo anche vedete abort retrai e gnure ci sono un po' di situazioni che possiamo andare a definire grazie a questi bottoni non solo perché se vi ricordate prima io ho fatto VB Critical e vibi critica al non andava a modificare il bottone mandava a Modificare l'icona quindi in questo caso io faccio VB okckenson perfetto Dopodiché vado di
più E nel momento in cui vado a fare più posso aggiungere qualcos'altro che cos'è questo qualcos'altro Voglio andare ad aggiungere ad esempio vivi Critical se io faccio invio ottengo sia i bottoni che l'icona non solo l'icona può essere o Critical se c'è un errore importante oppure ex ex clamotion facciamo invio vedete in questo caso è un messaggio a Cui bisogna stare attenti Non è problematico ma è Fai attenzione a quello che sta succedendo altrimenti abbiamo Question ad esempio vuoi fare questo no questo così vedete abbiamo la domanda vuoi fare questo sì o no E poi
chiaramente uno risponde in aggiunta abbiamo anche se faccio più abbiamo anche VB default vedete abbiamo anche information vi faccio vedere information che l'ho saltato Scusatemi faccio invio vedete abbiamo la i normale di Informazioni quindi possiamo andare a personalizzare in toto Oltre al fatto che ad ogni tipo di icona che vedete qua corrisponde un suono preciso Quindi se è critico sentito un certo suono se è un Warning quindi arancione sentite un altro suono altrimenti sentite il suono è classico ma lasciando perdere questa parte Andiamo a vedere per quanto riguarda il default abbiamo due bottoni Giusto Quindi
potremmo dire che vogliamo selezionare un tipo di default Che cosa Vuol dire se ci fate caso abbiamo fino a quattro bottoni quindi più di quattro bottoni non possiamo avere Qual è il discorso che se io adesso faccio invio vedete che il VB default button è uno di conseguenza se io per caso schiaccio invio Automaticamente mi prendo Ok ma se io vado a schiacciare il 2 vedete che Annulla è invece questa volta il bottone che è preselezionato vi faccio rivedere Fateci caso Annulla è pre selezionato Mentre invece se io vado sull'uno faccio Invio Ok è quello
selezionato tolgo vv information perché sto suono mi sta spaccando i timpany invece se non metto niente non compare nessun suono vedete che se ho VB default Battle uno è ok quello preselezionato allora qual è il discorso Il fatto è che lo rimando a schermo giusto per per capire il fatto è che il messaggio che Voi mandate a schermo deve avere alcune prerogative Allora il titolo può essere Microsoft Excel Come può essere qualcos'altro Diciamo che non è importante può essere un'aggiunta il messaggio deve essere esplicativo stai cancellando una riga Sei sicuro stai per fare questo Sei
sicuro Sei in procinto di cambiare di rinominare eccetera va bene una cosa del genere e questo può essere un tipo di messaggio a domanda però però ci possa essere anche altri tipi di messaggi che dobbiamo utilizzare insieme a vipi Critical vipicussion v-bub Exclamation oppure VB Informati quindi l'icona che avete qua che vi ho fatto vedere e che ha suoni diversi dovete usarla nel momento giusto se l'utente sta facendo qualcosa che è veramente critico oppure successo un errore mandare la X rossa e non puoi cancellare queste cose non hai permessi Ehi non puoi cancellare queste queste
righe perché sono collegate ad una funzione a qualcos'altro che stai facendo oppure in giallo attenzione cancellando questa cosa qua Vai a Rovinare la tabella vuoi farlo lo stesso Sì no Oppure che c'era retraiker a riprova qualcosa è andato storto Vuoi riprovare quindi cercate di utilizzare il messaggio che avete dentro e l'icona in un modo che abbia obiettivamente senso perché dovete dare all'utente tutte le informazioni necessarie e il grado di rilevanza del messaggio che è apparso Ok Dopodiché andate a sistemare quelle che sono i messaggi dentro i bottoni quindi Ok cancell Eh retryan nulla Eh sì
no annulla e vedi scorrendo quello è un altro paio di maniche ma soprattutto Fate attenzione al VB default button perché Perché ti default il bottone che deve essere selezionabile per sbaglio con l'invio oppure cliccando velocemente vedete che è quello già pre selezionato il bottone che deve essere preselezionato di default deve essere non è obbligatorio non lo prescrive il made il medico ma Generalmente per buona Costruzione di applicazioni deve essere un bottone che causa meno danno possibile Mi spiego meglio poniamo il caso che io faccio partire e questo messaggio è vuoi cancellare tutti i dati che
hai fatto nelle ultime 4 ore e poniamo il caso che di default c'è Ok io per sbaglio premo invio e perdo tutto quindi in questo caso sarebbe meglio avere come bottone di default annulla perché se per caso io premo a nulla ma volevo effettivamente cancellare tutto Vabbè non è un problema Ho premuto invio per sbaglio mi ha annullato l'operazione la rifaccio premo ok va bene ma se per caso io premo e ed era su ok e per sbaglio premo invio e per caso cancello tutto Quella è una brutta cosa quindi Ricordatevi sempre che il bottone
di default È forse una delle cose più importanti che dovete sistemare perché dovete permettere all'utente di eventualmente essere distratto ma comunque avere una macro costruita Talmente bene che anche se l'utente distratto cosa che speriamo non accada mai ma anche se l'utente fosse distratto non va a buttare via tutto il suo lavoro va bene perché non solo l'utente può essere anche distratto Ma alla fine la colpa è la volta che è Oh mio Dio ma che macro brutta non sai costruire non sai fare un'applicazione quante volte magari vi può essere successo che qualcuno ha fatto un
pessimo lavoro e ci avete rimesso voi anche se eravate distratti Eravate distratti Sì è vero ero io distratto però la tua applicazione fa schifo ok Quindi sono cose che assolutamente possono succedere detto questo cerchiamo di andare a collegare effettivamente i bottoni a dei messaggi in realtà al momento mandiamo solo a schermo con un debug Print non è importante però voglio farvi vedere che poi questi bottoni li dobbiamo collegare perché al momento non fanno niente chiudono e basta il faccio vedere con F5 Chiudono e basta Non importa cosa io faccia chiudo ne basta il messaggec box
e non succede niente affinché succeda qualcosa dobbiamo andare a prendere questa Dim e la possiamo mettere come risposta se volete Dim risposta è un Long perché o comunque un numero perché i valori che ci ritornano sono dei numeri vi faccio vedere Dobbiamo andare a mettere risposta ri risposta è uguale a ciò che otteniamo premendo i bottoni Ok quindi il fatto di premere i bottoni Io nel sintassi perché ho dimenticato Scusatemi Ok Eccole qua e Poi visto che l'abbiamo assegnato Dobbiamo metterlo così tra parentesi altrimenti ci davano i sintassi Perfetto Quindi avevo sbagliato scrivere risposta e
poi col fatto che lo stiamo assegnando non possiamo permetterci di fare così Non ve l'ho ancora mostrata questa cosa qua così va bene ma se invece lo assegniamo ad una variabile Non possiamo permetterci di avere qua gli spazi va Bene perché non capisce se lo stiamo asseando una variabile o meno quindi attenzione a questa cosa qua se vi dà errori in situazioni del genere mancano le parentesi piccole errori No non ve l'ho mai mostrato per fortuna è successo Quindi abbiamo la nostra risposta e non importa dove io clicchi ottengo qualcosa Vi faccio vedere debug punto
printer e io vado mandare a schermo risposta F5 Ok ottengo Uno oppure F5 Annulla ottengo due è rilevante il numero che ottenete Perché in realtà noi possiamo banalmente cavarcela con VB ok o VB kens vi faccio faccio vedere risposta uguale vib Ok così F5 faccio Ok vedete che è vero Se invece mi riposiziono F5 faccia a nulla chiaramente ottengo falso proviamo a mettere VB kensol lo prende Direttamente da qua perché è VB più il bottone che avete F5 Annulla vedete che ottengo vero Quindi in realtà sotto sotto c'è dietro Un long perché è un numeratore
se arrivati dalla Programmazione sapete già di cosa sto parlando se è la prima volta che programmate con questo corso non preoccupatevi quello che ho appena detto quando poi proseguirete nella vostra carriera di programmatori tornerà tutto più chiaro per ora vedetela così che quello che abbiamo noi qua in realtà è una rappresentazione in forma di parola di quello che in realtà è un valore numerico uno due però ad uno corrisponde VB Ok A2 corrisponde VB casual quindi Non importa se io scrivo uno oppure BB Ok è la stessa cosa se scrivo bbcansole numero 2 è esattamente
la stessa cosa Quindi se non avete voglia di andare a vedere a Ma questo è l'uno Questo è il 2 Questo è il 3 è il 4 il 5 è rilevante ve la cavate così e siete sicuri di non sbagliare detto questo una volta che Voi capite che potete andare a verificare ciò che c'è qua Ci basta fare poi un if con risposta e banalmente if risposta uguale a v b Ok Dan facciamo un Andy f e Qua dentro andiamo a mettere un bel debug print con scritto ho premuto Ok Dall'altra parte invece possiamo fare
un helsif ma voglio essere veloce perciò non perdiamoci in chiacchiere if risposta VB kensol andiamo a mettere o premuto a nulla io vado a pulire ciò che ho qua F5 faccio Ok ho premuto Ok F5 faccio annulla O premuto annulla quindi questa è la base su come collegare i bottoni che abbiamo con il codice da qua in poi è tutto in Discesa perché vi basta mettere insieme ciò che avete già fatto se l'utente ha selezionato se l'utente vuole cancellare qualcosa prendere dati modificare il Font son cose che abbiamo già visto lavorare coi range con gli
shit coi workbook Insomma cose che abbiamo già trattato quindi per i message boxe è veramente tutto nel prossimo video voglio insegnarvi Come creare funzioni personalizzate siamo veramente agli ultimi video di questo corso andiamo ad Alzare leggermente l'asticella con qualcosa di un pochino più avanzato Ci vediamo tra poco episodio 41 del corso di vba oggi ci concentriamo sulla possibilità di creare funzioni personalizzate per intenderci Le funzioni sono quelle che noi possiamo attivare con uguale E poi scriviamo il nome e utilizziamo Queste sono le funzioni lato Excel in realtà lato programmazione per chi già la conosce le
funzioni sono qualcos'altro Quello che andiamo a vedere oggi è un insieme perché le possiamo utilizzare sia lato programmazione che lato utente non preoccupatevi che vedremo entrambe le sfaccettature cominciamo però con quella più semplice che è la funzione lato utente di Excel Quindi vogliamo andare a creare una nostra funzione personalizzata tipo somma che l'utente è in grado di utilizzare quindi questa è la prima cosa che facciamo poi parliamo delle funzioni lato programmazione Va Bene allora se io vado a fare un po' di spazio e vado a mettere magari qua 4 e 5 qua 2 e 6
andiamo a mettere qua la somma e qua la moltiplicazione Voglio andare a usare Innanzitutto qua la somma Facciamo così chiudo faccio invio e trascino perfetto Voglio andare a creare una funzione simile Però per la moltiplicazione non useremo la stessa sintassi che abbiamo qua quindi la possibilità di avere il Range così ma utilizzeremo l'altra Sintassi di Somma che vi faccio vedere uguale somma 1 punto e virgola altra cosa Ok Chiudo faccio invio e ottengo lo stesso risultato Quindi per non complicarci le cose non diamo la possibilità di prendere tutto il Range così ma devi selezionarne una
poi l'altra e fa la moltiplicazione teniamo le cose semplici perché è quello che conta è il concetto una volta capite il concetto di funzione come si fa eccetera da lì in poi rendere la logica della Funzione più complicata è un altro paio di maniche va bene e di poi si tratta di necessità vostre e soprattutto ti crescita come sviluppatori Allora cominciamo Innanzitutto creando una function function Moltiplica facciamo Moltiplica Ok apriamo qua le parentesi E se io faccio invio vedete che mi chiude and function quindi questa è la base è esattamente come una macro semplicemente al
posto di Saab c'è function Quindi anziché una macro che compare nella Lista macro vedete che qua non c'è come Moltiplica andrà a comparire nella lista delle funzioni disponibili all'utente quindi questa è già la grande differenza Fatemi farla il gioco di parole la macro differenza Scusate mi ci tenevo particolarmente detto questo abbiamo la nostra funzione ora la funzione sappiamo che accetta prendendo quella somma sappiamo che accetta dei dei parametri degli argomenti in entrata perché se ne vogliamo molti vogliamo vogliamo sommare Scusatemi qualcosa dobbiamo dire Ehi sommami cioè la 1 più cella 2 e mi restituisci la
la somma il risultato quindi sappiamo che in entrata Ci sono due argomenti due numeri parliamo terra terra ci sono due numeri in entrata e in uscita c'è un altro numero perfetto come facciamo a dire che accettiamo due numeri in entrata è molto semplice ci mettiamo qua e magari facciamo ex quindi X es Double Adesso parliamo del Double e ys Double quindi le chiamo X e Y così tanto per Potete chiamarlo il numero uno numero due quello che volete ok Il fatto è che giustamente sono due variabili a assestanti quindi X come Double e Y come
Double perché le mettiamo come Double anziché come Long integer o qualcos'altro perché noi potremmo avere in qualsiasi momento 4.2 4.5 e via discorrendo quindi Double prende i numeri con la virgola non solo la parte virgola di conseguenza se abbiamo un Numero 27 triliardi virgola due lo dobbiamo Gestire come Double quel virgola due ci impone di utilizzarlo come Double Se invece andiamo mettere Long integer o simili stiamo lavorando solo con numeri interi Quindi per evitare errori e prendere la maggior parte delle casistiche utilizziamo Double se c'è la virgola eccellente se non c'è non è un problema
ora vi ho detto che sappiamo che prendiamo due numeri in entrata ma dobbiamo dare un in Uscita E questo non l'abbiamo mai fatto ed è una cosa tipica delle funzioni ovvero il fatto di andare a definire quello che è il valore di ritorno cioè c'è qualcosa in entrata e c'è qualcosa in uscita perché vedete la funzione come un una macchina come una macchina però industriale non una macchina da guidare quindi entra qualcosa da una parte esce un prodotto finito dall'altra mentre invece la macro potrebbe semplicemente l'abbiamo vista cambiare il Font Eccetera senza effettivamente mandare qualcosa
a schermo nelle funzioni spesso e volentieri abbiamo qualcosa in entrata e qualcosa in uscita questo qualcosa in uscita lo definiamo qua fuori sappiamo che vogliamo un numero di conseguenza Avevamo tutto Double gestiamolo come Double Quindi vedete che abbiamo questi parametri Ma se io provassi a togliere questo avremmo function modifica come Double quindi ciò che esce non modifica ma Moltiplica ciò che esce da Moltiplica È un Double se io torno indietro qua dentro abbiamo i parametri va bene quindi questo Double esterno vuol dire che ciò che esce da Moltiplica esce come Double va bene per farlo
effettivamente uscire però perché gli stiamo dicendo Guarda che quello che esce è un Double ma per farlo effettivamente uscire dobbiamo assegnare il risultato a moltiplica per chi già programma e programma con JavaScript Python e altri linguaggi di programmazione questa Sintassi è totalmente aliena Però in realtà Nonostante sia un po' diversa logicamente può avere un suo senso di conseguenza non credo sia così difficile perché invece la prima volta che si approccia alla alla programmazione Secondo me ha un suo senso e non avrete difficoltà a impararla quindi Stiamo definendo moltiplica per trovarla qua dentro ma poi Diciamo
che il valore che noi vogliamo buttare fuori lo assegniamo a Moltiplica in modo che quando Scriviamo Moltiplica e facciamo invio Moltiplica è esso stesso il valore che ha generato va bene insomma un po' una logica abbastanza contorta da spiegare però così è per farvi capire in altre circostanze non avremmo Moltiplica ma in altri linguaggi di programmazione si scrive Return con il valore ad esempio Return di X per Y Qua non abbiamo il Return ma semplicemente riassegniamo quello che è il valore Quindi abbiamo una cosa del genere X per Y e siamo a Posto da questo
momento se vado qua e faccio Moltiplica Eccola qua la vedete Moltiplica e quindi faccio quattro punto e virgola cinque vado qua Faccio Invio 4x5 20 e io tiro giù 2 per 6 12 ed è effettivamente la funzione che abbiamo creato noi ok Quindi questo è il modo in cui possiamo creare funzioni disponibili all'utente per essere utilizzate all'interno del foglio nel caso volessimo nasconderle possiamo utilizzare private non ve ne ho ancora Parlato ma ne soprattutto per farlo adesso possiamo utilizzare private usando private vedete che Moltiplica Non mi viene più suggerito perché private ci vuole poco capire
che vuol dire privato in italiano c'è una cosa è privata La stiamo utilizzando solo noi come programmatori quindi in Excel la distinzione tra pubblico e privato è molto semplice se un qualcosa è pubblico quindi è di default senza scrivere niente la posso utilizzare gli utenti Classici Va bene poi potremmo essere anche noi utenti classici ma usate questa distinzione ci siamo noi che programmiamo e facciamo cose interessanti per chi non sa programmare che usa la versione XL e poi c'è chiusa la versione con l'interfaccia grafica di Excel che deve fare il lavoro effettivo quindi noi gli
andiamo a semplificare il lavoro gli creiamo le funzioni eccetera loro le utilizzano però a volte noi potremmo andare a creare macro e Funzioni in realtà solo per noi stessi che non vogliamo vengano viste lato utente lato interfacciar Excel ma vogliamo riutilizzare noi nel codice va bene questa distinzione fra private e Public così di default È Public allo stesso discorso allo stesso modo se io vado qua e faccio private Saab se vado su lista macro vedete che non c'è più Prova 3 improvvisamente se io vado qua e faccio ehm la rimozione di private vado su macro
c'è Prova 3 quindi Ricapitoliamo private Public vuol dire che Public è a disposizione dell'utente finale privat no la stiamo utilizzando solo noi come programmatori l'abbiamo creata per noi stessi e Uno potrebbe dire parlo per le persone che non programmano per credo perché dovrei crearmi una funzione che uso solo io all'interno del codice Beh pensate una una macro o diverse macro e magari sto lavorando con cose come l'area del quadrato l'area del cerchio e eccetera Eccetera però restiamo con Moltiplica perché ce l'abbiamo qua però Avete capito il senso abbiamo questo calcolo oppure il calcolo del TFR
il calcolo l'IVA fate quello che volete Prendete il La cosa che più vi resta in testa come calcolo grande nel vostro settore ho percorso di studi e pensate di fare lo stesso lo stesso calcolo Ogni santa volta quindi facciamo un esempio siamo nella nostra macro E io ho la mia variabile Team a es Double ad esempio Est Double ea è risultato di quindi a = 4 più la variabile IVA diviso 3 aperta parentesi quindi più aperta parentesi c'è un calcolo del Signore e tante altre cose questo calcolo pensate andarlo a fare Ogni santa volta cioè
andarlo a scrivere ogni volta in questo caso nella programmazione cosa si tende a fare si tende a creare delle funzioni quindi andiamo a prendere questo codice che dovremmo utilizzare in giro per le macro eccetera e andiamo a creare una funzione Che potrebbe essere faccio un esempio senza andarla a concludere calcolo mega complesso e sappiamo che accettiamo Magari se stiamo calcolando la massa grassa di una persona quindi calcoliamo il peso l'altezza e altre cose e in uscita andiamo a buttare fuori qualcos'altro qua dentro abbiamo tutto il nostro codice di conseguenza sappiamo che a è uguale a
calcolo mega complesso capite quindi noi non andiamo a riscrivere ogni volta tutto il codice Che potrebbe essere 20 30 righe andiamo solo a richiamare la funzione gli buttiamo dentro i parametri che ci servono mettiamo dei numeri a caso andiamo a buttarci dentro dei parametri e la funzione ci butta fuori quello che è il risultato vedete che così ha molto più senso perché sappiamo che a è uguale al risultato di calcolo mega complesso quindi facendo una cosa del genere Noi possiamo andare a esternalizzare calcoli che sarebbero lunghi perché prendete Tutte ste righe e buttatele qua dentro
alla alla nostra macro magari già una macro lunga più circa 20 30 righe immaginate ogni macro 20 30 righe solo per questo calcolo in programmazione andiamo a creare delle funzioni che ci permettono di scrivere il codice una volta e poi si adatta automaticamente a quello che dobbiamo fare che è esattamente ciò che abbiamo fatto qua per moltiplicare perché Moltiplica prende qualsiasi tipo di numero è Rilevante cosa gli passiamo e ci butta fuori il risultato la stessa cosa però la possiamo applicare a situazioni molto più grosse che poi le mettiamo a disposizione dell'utente o meno Quello
dipende da noi se vogliamo fare una funzione specifica per l'utente la teniamo pubblica affinché l'utente possa vederla se è e possiamo Tra l'altro utilizzarla anche noi qua dentro perché una volta che abbiamo qua moltiplica la possiamo utilizzare anche noi qua dentro Ok vi faccio vedere mentre invece se abbiamo una funzione che è private una funzione privata così è la classica funzione creata nell'ambito della programmazione la creiamo per noi stessi per esternalizzare il codice e non dover scrivere ogni volta 20 30 righe 10 quello che è ma continuamente sempre la stessa roba quindi importante perché appena
ha cominciato a programmare in ambito programmazione è mai ripetersi perché se Dovete ripetere sempre le stesse righe di codice uguali a sto punto potete esternalizzarle spesso e volentieri in una funzione va bene È come se eh vostra madre ogni volta anche se siete usciti di casa ogni volta che avete fatto la pasta l'ha chiamate Mamma com'è che si fa la pasta e ogni volta mi dice si fa così così Che cosa fate spesso e volentieri se siete appena usciti di casa e non sapete cucinare vi iscrivete i passaggi il foglio è uno è la nostra
Funzione noi la guardiamo e andiamo a farla pasta va bene non è che ogni volta andiamo a richiedere e rivedere l'abbiamo scritta nella nostra funzione e la utilizziamo ok Quindi questa è la metafora Migliore Secondo me per le funzioni e adesso io vi dimostro come prendo Moltiplica vedete prendo Moltiplica butto dentro due numeri a caso per ora facciamo 200 virgola 100 in realtà potreste prenderli da qua e quant'altro ma io vado qui e metto Selection Selection punto Value uguale ad a io vado qui con la selezione faccio F5 e vedete ho messo 200 percento e
ottengo risultato quindi la stessa funzione che ho utilizzato qua con utente in realtà la posso utilizzare dentro il codice come programmatore ripeto poi la differenza tra Public e private dipende dall'utilizzo che ne fate però se è Public la Potete utilizzare ovunque Direi che è tutto chiaro lato funzioni ho spiegato tutto Ciò che dovevo spiegare dovrebbe essere tutto chiaro fate delle prove e noi passiamo al prossimo video dove andiamo a parlare degli eventi perché su un foglio possono succedere degli eventi e noi vogliamo imparare ad ascoltare questi tipi di eventi ci vediamo tra poco episodio 42
del corso di vba oggi voglio parlarvi degli eventi cosa sono come si fanno come li possiamo utilizzare e quant'altro la prima domanda domanda che dobbiamo porci è Cosa sono gli eventi gli eventi sono potenzialmente qualsiasi cosa che succede lato interfaccia prendere il tutto più semplice può essere il cambio di selezione Questo è un evento ho appena cambiato una cella il cambio del valore dentro una cella potrebbe essere il cambio del foglio quindi un foglio che viene attivato ma un altro foglio che viene disattivato sono una serie di eventi che possono succedere poi li vedremo perché
sono facilmente Reperibili però questi sono eventi dovete sapere che il discorso di eventi non è esclusivo di VB Excel World o qualsiasi altra cosa di fibbia applicata ad Office ma il concetto di eventi è molto ampio e soprattutto è legato alla programmazione Se pensate alla programmazione web che l'abbiate fatto o meno una persona che clicca su un bottone è un evento che evento è la persona che clicca su un bottone un altro evento potrebbe essere la persona Che digita dentro il campo email o la persona che ha finito di digitare il campo email si sposta
sul campo password sono tutti una serie di eventi oppure la persona che passa sopra col mouse sopra qualcosa la persona che scrolla eccetera eccetera quindi ripeto imparate qua il concetto di eventi ma è una cosa che in realtà potete usare trasversalmente Certo ognuno con la propria sintassi ognuno coi propri eventi però ha un'utilità molto più ampia di solo vva Detto questo cominciamo a parlare di eventi non possiamo restare nei moduli Perché i moduli sono semplicemente una collezione di Macro dobbiamo andare dove effettivamente capitano gli eventi e dobbiamo stare in ascolto per gli eventi quindi dobbiamo
spostarci ogni singolo fogli oppure nella cartella di lavoro quando dico ascoltare gli eventi vuol dire che è come se noi dicessimo al computer o al nostro programma in questo caso Excel Fai attenzione a quell'evento Se succede prima cosa dimmelo perché altrimenti Excel non ci fa caso non ce lo dice e non parte del codice che noi vogliamo far partire È come se noi dessimo l'istruzione a qualcuno che sta facendo la pasta per la prima volta se senti B B B B sappi che sta bollendo o se vedi le bolle che salgono dimmelo che dobbiamo proseguire
con la pasta Ok quindi in quel momento stiamo dicendo a quella persona Ascolta quell'evento Stai attenta per quell'evento dobbiamo fare La stessa cosa lato codice perché altrimenti l'evento succede come l'acqua che bolle Ma noi non siamo in grado di percepirlo o farci niente quindi gli eventi possiamo ascoltarli in modo locale su ogni su ogni foglio ad esempio pensate il cambio di selezione che adesso vedremo possiamo ascoltarlo su tutto il World shit quindi su tutta la Scusatemi su tutto il World book Quindi tutta la cartella di lavoro Oppure possiamo ascoltarlo solo per un foglio Io voglio
lavorare con questo evento solo nel foglio qwerty e non nel foglio 2 o meglio copia a qwerty va bene quindi può essere locale oppure legato tutta la cartella di lavoro cominciamolocale da qua Aprite Mi raccomando il foglio ci spostiamo sotto vedete che abbiamo una serie di oggetti in questo caso è uno non c'è nessuna serie cioè workat quindi selezioniamo Work It e automaticamente mi ha selezionato l'evento Selection Change e mi ha generato questa macro che Adesso analizziamo ma prima se Aprite qua vedete tutti gli eventi che abbiamo a disposizione ad esempio il foglio che si
attiva il foglio che si disattiva se c'è un cambiamento se c'è un cambiamento di selezione se viene aggiornata una tabella se viene seguito un link oppure prima di un Double click prima di un Red click eccetera eccetera Poi più avanti una volta che avete dimestichezza Prendetevi dei minuti per vedere quando effettivamente compaiono questi eventi Documentazione o testate voi tanto vedete che è abbastanza facile da intuire cosa sta succedendo ad esempio tabella pivot prima di discard scartare dei cambiamenti vedete quindi cercate di capire la situazione leggete la documentazione Perché non li vedremo tutti provate l'evento senza
far niente di che ma un'altra schermo un debug Print in modo che nella vostra testa comincia l'associazione Ah ok Se faccio questa cosa qua parte questo evento Dovete solo vederlo in funzione una volta che vedete in funzione l'evento vi resta in testa ve lo posso garantire per imparare gli eventi in altri linguaggi di programmazione ho sempre fatto così prendevo la lista degli eventi e li facevo succedere io lato codice o interfaccia una volta che succedono Non ve li dimenticate più va bene quindi avendo generato Selection Change automaticamente ci ho generato una Sab che già sappiamo
è private Quindi Sappiamo già che cos'è perché ve l'ho spiegato in funzione di questa situazione di conseguenza l'utente non ha accesso ve lo dimostro a questa macro vedete non c'è non non ce la può fare a selezionarla e quindi serve solo a noi lato programmazione esattamente come è vi avevo anticipato qua dentro ci mette target come range quindi sappiamo che la il cambio di selezione ottiene un range ed è vero perché o selezionare un range singolo o selezionare un range multiplo Quindi non è che ci sono molte alternative per vederlo effettivamente in azione andiamo con
un bel debug punto printer e io faccio target punto address address è l'indirizzo della Cella quindi A1 e via discorrendo Adesso vi dimostro che se magari prima vado su foglio 2 e seleziono vedete che non c'è a schermo niente ecco qua vedete tac non c'è niente se mi sposto su querti che è foglio uno Avete foglio 1 qwerty qui comincio a selezionare vedete che ci dà Le celle esatte a uno sono su A1 adesso seleziono da A1 a da 10 e vedete a uno due punti a 10 quindi funziona e questo è il cambio di
selezione quello che vedete però è la classica macro localizzata su un foglio posso utilizzarla a copiare Quindi vado su qwerty 2 copio e se vado su qwerty 2 che la copia ottengo lo stesso risultato oppure vado su foglio 2 seleziono foglio 2 Eccolo qui questo qua Scusatemi seleziono foglio 2 e se vado qua e Genero la stessa cosa seleziono worshit Selection Change vado magari a prendere il debug Print E anziché mandare a schermo ladress a sto giro mi limito a mandare a schermo così come se fosse una banale stringa giusto per intenderci e adesso vedete
che sono in foglio 2 e mi manda a schermo target address Questo per dire cosa per dire che ogni evento può essere localizzato in un singolo foglio Vogliamo fare qualcosa di particolare su quel foglio lo possiamo Fare Non siamo obbligati a prendere tutto l'evento su tutti i fogli di tutta la cartella Va bene Se invece volessimo farlo Cosa possiamo fare possiamo andare a lavorare sulla cartella di lavoro ma di far ciò puliamo qui perché non voglio andare ad inquinare gli eventi quindi cartella di lavoro e se vado qui seleziono workbook non è più workcit e
adesso ho una serie di eventi gli eventi sul workbook sono un pochino di più perché perché ci sono più cose che Possiamo fare vedete Possiamo aggiungere i componenti aggiuntivi possiamo aprire e chiudere la cartella cosa che non possiamo fare con lo share possiamo solo attivare disattivare possiamo parlare con le finestre Se c'è una nuova finestra se faccio il re Size eccetera abbiamo tutta la parte dedicata all'import ed Export Quindi se già Cominciate a togliere alcuni eventi vedete che non so neanche tanti poi abbiamo gli shit che ci interessano Tutti questi eventi con lo shit davanti
Sono esattamente gli stessi eventi che avevamo sul singolo foglio ma che vengono applicati autonomamente a tutti quindi se vogliamo applicare un evento di Selection Change anziché metterlo foglio foglio foglio foglio foglio andiamo una cartella di lavoro e andiamo su Selection Change Ecco qua che cosa cambia però in realtà ce la caviamo solo con questi due eventi io facendovi vedere l'evento Selection Change su un Foglio e sul l'intera cartella di lavoro vi sto spiegando tutto per quanto riguarda gli eventi perché le stesse condizioni poi si applicano a qualsiasi altro tipo di evento se è condiviso oppure
se è solo su cartella di lavoro come gli altri Import Export una volta che avete capito come lavorare con gli eventi si applica lo stesso modus operandi che cosa abbiamo qua Fatemi prendere un po' più di spazietto perché sennò non si vede allora abbiamo private Saab Ok abbiamo il nome che è lunghino non ci interessa e poi abbiamo due valori vedete abbiamo il nostro target con cui abbiamo già lavorato quindi sappiamo che col Selection Change stiamo cambiando una selezione La selezione è rappresentata da un range Giusto Quindi il nostro target è il cambio di selezione
Perfetto Quindi Questo l'avevamo già visto ma è comparsa una nuova variabile SH come oggetto avrebbe potuto definirlo worshit perché no ma in Realtà vi ho spiegato che si può avere anche oggetto in modo generico Quindi anziché diventare scemo con Ah è un Work It anche se potevano farlo perché è generata esattamente su un workat mettono oggetto in modo generico va comunque bene se voi prendete una forchetta o un cucchiaio è tipo già è tipo forchetta tipo cucchiaio oppure sono tipo posate una forchetta è una forchetta oppure in modo generico una posata un work cheat è
un work cheat Oppure un object va bene lo stesso questo SH è il diminutivo di shit possiamo dire che usano Allora target Ok SH se capisci niente Lo possiamo dire si capisce poco soprattutto se siete nuovi Però in realtà SH si vede qua fa riferimento a che cosa serve questo shit Beh rendetevi conto che stiamo lavorando a livello cartella quindi non sappiamo già di default In che ci siamo perché se lavoriamo nel foglio 1 sappiamo che siamo nel foglio 1 non c'è bisogno di Andare capire in che foglio siamo l'evento lo prendiamo solo lì sappiamo
che è solo lì capite bene che se però abbiamo più fogli Dobbiamo capire in che foglio è stato lanciato questo evento Pensate se prima ascoltavamo per l'acqua che bolliva avevamo una sola pentola nessun problema sappiamo che è solo quella se abbiamo due tre quattro pentole non dobbiamo solo ascoltare per il bollire dell'acqua ma dobbiamo capire Effettivamente da che da Che pentola arriva Quindi cosa possiamo fare facciamo un bel non dei Big mom un bel debug punto debab no debug.print E in questo caso possiamo fare SH punto name perché è uno shift sappiamo che c'è il
name ed improvvisamente Guardate un po' foglio 2 Perfetto se vado qua foglio QWERTY mi sposto dall'altra parte e abbiamo questi due prendiamo le cose un po' più interessanti andiamo a mettere magari SH Name and magari un bello spazietto and punto address Perfetto Quindi abbiamo una cosa del genere e adesso se io comincio a spostarmi vedete sono in quarti e mi dà il Range su cui sto lavorando cancello qualcosina affinché vediamo tutto vado su foglio 2 perfetto vedete vado poi su qwerty faccio così e vedete che abbiamo tutti i range quindi avendo creato questo evento sulla
cartella di lavoro Dobbiamo capire su Che foglio siamo perché se dobbiamo Lavorare chiaramente Poi su una cella specifica dobbiamo sapere dove siamo perché non possiamo andare a riempire la cella di un altro foglio quindi dobbiamo utilizzare per forza la variabile del foglio per capire dove siamo e poi abbiamo Comunque il nostro target una volta che sapete lavorare con questi eventi alla fine è una macro come tutte le altre quindi possiamo applicare tutto il Font cambiare il background e fare i calcoli è rilevante abbiamo già visto Tutto Semplicemente applichiamo quello che abbiamo già visto sull'avverarsi di
momento Adesso sapete farlo su un singolo foglio su più fogli oppure su tutti i fogli tramite la cartella Quindi queste le basi degli eventi come vedete è veramente veramente semplice noi ci vediamo nei prossimi due video in cui andiamo a lavorare con i form per l'utente c'è un po' di roba di cui parlare perciò sarà diviso in due parti ci vediamo tra poco l'episodio 43 Del corso di vba parte 1 di 2 su come creare dei form in Excel cerchiamo di capire prima cosa sono dei form e È molto facile ci basta aprire la formattazione
condizionale nuova regola Questo è un form vedete è una finestra dove possiamo selezionare dei valori e fare qualcos'altro differenza dei banali dialog che ci fa Ehi c'è un errore Ok sì no eccetera Qua invece andiamo a selezionare cose andiamo a modificare valori eccetera oppure pensate Magari Alle formule vado qua altre funzioni vedete selezioniamo le funzioni le possiamo possiamo inserire e quant'altro questo è ciò a cui vogliamo ambire Più che altro vogliamo capire cos'è come si fa Come si manda schermo e come possiamo collegare i vari eventi al momento questa parte qua non è che ci
serva più di tanto quindi la possiamo rimpicciolire ci spostiamo nel nostro progetto tasto destro Inserisci user form Eccolo qua e dovrebbe esservi Comparsa ma è comparsa sull'altro schermo questa finestrella qua con i vari comandi che possiamo inserire nel form oggi ci limitiamo a vedere le basi di design Come inserire una texbox i bottoni una Label e gestire eventi semplici Allora puliamo qua sotto e la prima cosa su cui voglio concentrarmi è questa parte qua sotto delle proprietà come vedete abbiamo tante tante proprietà colori background Border color se vogliamo mettere evidenziatore giusto Per vedere qualcosa continua
a sparirmi questa finestrella sull'altro schermo non In ogni caso ve la riporto quando mi serve e Qua abbiamo una cosa importante che è il nome questo nome è ciò a cui faremo riferimento nelle macro per richiamarlo Quindi se state utilizzando un form per inserimento di un nome o di una persona Io direi di fare form inserimento persona così sapete tornarci velocemente poi qua in alto c'è il caption lo vedete Inserisci persona per Il resto a parte il Font i colori potete giocare con l'altezza le altre cose non è che ci interessano molto Onestamente direi che
possiamo fare Play E vederlo in funzione vedete è una finestra come tante altre al momento è vuota e adesso ci andiamo a lavorare dunque la prima cosa che vogliamo inserire è un etichetta la cosiddetta Label Eccole qua vedete che è una Label Mannaggia è una lable la possiamo ingrandire postare se dovesse prenderla vedete possiamo alla Metterla rimpicciolirla al momento la lasciamo così dentro abbiamo il name che fa riferimento sempre alla parte di codice mentre invece il caption è ciò che l'utente vede Ricordatevi che ogni cosa in un form si chiama form control sono i campi
i vari campi ma conta anche per le Label hanno due tipi di identificatori il testo che l'utente vede che può essere nome persona nome staccato persona e l'identificatore livello codice che non Può essere staccato Quindi sarà tutto attaccato nome persona Perciò potreste fare una cosa del genere vedete oppure sapendo che siamo nel form persona potete scrivere solo nome onestamente mentre Qua invece lo andremo a mettere in maiuscolo un'altra cosa che possiamo aggiungere è ad esempio una casella di testo ci sono un po' di cose che possiamo mettere in realtà al momento ci concentreremo In questo
primo video su le cose essenziali poi Nell'altro video Gua abbiamo altri elementi un po' più complessi Adesso andiamo di Casella di testo Io metto una casella di testo qua e noi saremo tecnicamente a posto Io faccio Play vedete che abbiamo la casella di testo con l'etichetta fanno un po' schifo perché perché dobbiamo sistemarli quindi possiamo prenderli entrambi andiamo su formato allinea e vedete che possiamo spostarli a destra a sinistra eccetera ma Noi cominciamo con Randy uguale altezza Ecco magari Facciamo Scusatemi eh riduciamo qua magari l'altezza così poi li riprendiamo entrambi formato range uguale altezza perfetto
Dopodiché formato allinea a sinistra e adesso dobbiamo solo spostarlo Ops è un disastro vai con sto coso lo spostiamo un pochino in alto Quindi col formato come potete vedere possiamo andare ad adattare dare spaziatura possiamo centrarlo nel form vedete asse verticale oppure asse orizzontale io adesso lo voglio Allineare a sinistra Però magari c'entra nel form Giusto per farvi vedere asse orizzontale torniamo indietro e se io faccio Play vedete che siamo riusciti a sistemarlo inutile fare un masterclass da 20 ore su come fare forme cominciate con cose neanche così eclatanti poi pian piano migliorerete Tenete conto
che comunque questi sono gli strumenti che avete a disposizione non stiamo lavorando con applicazioni mobile di alto livello non Stiamo facendo roba web lo vedete l'interfaccia grafica per far ste robe è il livello che è è bruttina quindi siamo un po' limitati Comunque il risultato non è neanche niente male per per quello che può essere il risultato va assolutamente bene Ora ci manca Un'ultima cosa che è il bottone Quindi se io vado qua prendo il bottone e io prendo il pulsante di comando Ecco qua Questo è il nostro pulsante di comando che magari scriviamo come
invia e qua Come caption mettiamo vediamo in via oppure conferma se volete potete mettere anche a nulla in realtà però c'è la x qua in alto perciò non serve e noi possiamo poi prendere uno due e tre e fare formato rendi uguale larghezza non volevo così perfetto riprendiamo tutti insieme ed è molto meglio e poi magari possiamo ridurre un pelino l'altezza benissimo Abbiamo una cosa un po' bruttina però abbiamo il nostro nome inseriamo il nome e confermiamo adesso Quello che ci rimane da fare visto che sappiamo come possiamo lavorare con un form molto basico è
capire a come possiamo chiamare questo form da una macro B come possiamo Inserire codice all'interno del nostro form per ottenere i risultati Allora partiamo dal principio modulo 2 da qua Io tolgo tutta sta roba e faccio riferimento al form quindi form In inserimento persona punto Show molto bene e se io faccio partire con F5 Avete visto che me l'ha mostrato dove ho preso questo questo nome questo nome l'ho preso da form inserimento persona vedete esattamente come l'ho chiamato ce l'ho qua in alto quindi posso fare in qualsiasi momento riferimento vedete è lo stesso nome che
ho qua a farmi inserimento persona ho guardato qui ho fatto punto Show andando perciò a chiamare la macro comparirà quello che è il form Adesso però cerchiamo di capire al di là di questa parte qui perché Sappiamo adesso usarlo all'interno della macro poi dovremo assegnare il valore di ritorno quello che ci interessa però è cominciare effettivamente a lavorare dentro il form Quindi cosa possiamo fare per ora limitiamoci sulla conferma Poi in realtà potreste mettere col doppio click vedete potete avere il texbox One Change quindi on Change della texbox se noi torniamo un attimo qui e
io premo vedete che la texbox si chiama texbox One mentre Questo si chiama nome Questo È il nome ma l'etichetta o Label Quindi potete chiamarla ad esempio Label nome una cosa del genere per capire cosa cosa state facendo E questo potrebbe essere effettivamente input nome Qui invece abbiamo conferma e potrebbe essere button oppure bottone invia o bottone e conferma cercate di essere molto precisi in questa nomenclatura e tenerla costante non continuate a cambiarla magari nel corso del tempo passa direttamente diverse Perché cambierete come persone come programmatori Però in quel momento Ad esempio in quell'anno che
lavorate con vi piace cercate di essere costanti se cambiate cambiate tutti i form Cioè non è che un phone deve essere nome e l'altro invece è persona nome se l'altro form riguarda i clienti è clienti nome clienti cognome non che avete clienti nome e poi cognome quindi Cercate di avere quella che è una sorta di Costanza Detto questo io vado qua faccio doppio Click ovviamente che abbiamo il clic sulla Label ma non ci interessa Oltre al fatto che è tutto private Quindi l'utente non lo vede abbiamo poi Il change sulla texbox che in realtà è
stata cambiata perciò dovremmo aggiornare il nome ma quello che ci interessa è il bottone Invia sul Click Che cosa possiamo fare è molto semplice The Bug punto Print Cominciamo con le cose più basiche Ma andiamo a schermo Ciao noi andiamo di Qua F5 perfetto E se io confermo vedete che ottengo Ciao scritto sotto il prossimo passo è prendere devo chiudere qua il prossimo passo è prendere ciò che c'è scritto qua dentro vedete che è input nome che è quello che ci interessa dobbiamo prendere il valore e mandarla a schermo per prendere il valore abbiamo due
alternative Allora la prima è passare per form inserimento persona punto input nome vedete che me lo trova punto Value Quindi posso fare così e concludiamolo F5 io scrivo qwerty questi va bene conferma vedete che abbiamo qwerty oppure scriviamo Edoardo Rossi tutto attaccato confermo Quindi vedete che prende effettivamente il valore oppure se non vogliamo ogni volta scrivere quello che è il nome del form Anche perché siamo dentro il nome del form possiamo utilizzare quella che è una scorciatoia ovvero scrivere mi me perché utilizziamo me perché arriva dalla Programmazione ad oggetti di altri programmi usereste this Ed
è esattamente la stessa cosa per chi non ha mai programmato me fa riferimento appunto a me stesso pensate è in inglese quindi mi ma mi e me sono la stessa cosa quindi fa riferimento a me stesso ma me stesso chi Beh noi dove ci troviamo ci troviamo dentro form inserimento persona quindi quando io scrivo me stesso me stesso chi me stesso form di conseguenza me stesso form in il nome ed effettivamente dentro Questo form c'è un input nome che è questo qua Spero di aver reso l'idea Torniamo sul codice Potete tornare sul codice vedete da
qui in alto Quindi siete su inserimento persona codice visualizzazione oggetto codice visualizzazione oggetto va bene che è molto più facile dicevo di conseguenza utilizzando me Stiamo dicendo io form in cui sono dentro perché questo è il mio file il mio input nome punto e io vi dimostro che se faccio invio scrivo Qualcosa di strano confermo ottengo esattamente lo stesso valore non è finita perché non è finita perché dobbiamo effettivamente chiudere il form una volta che lo abbiamo confermato e abbiamo due metodi Allora il primo è utilizzare unlot un load vuol dire andare tra virgolette a
De Sincronizzare ve lo chiamo così se sarebbe scaricare ma non scaricare download cioè Abbiamo caricato il form con i vari settaggi andiamo a fare il Contrario mentre invece abbiamo la possibilità di fare Hide Hide vuol dire nascondi sono due cose diverse Mi spiego meglio se noi abbiamo F5 se noi abbiamo a load e io ho qua del valore ad esempio e non lo confermo e per qualche e per qualche strano motivo lo chiudo con alload quando poi lo vado a riaprire non c'è un valore all'interno perché download va proprio a togliere il caricamento del form
con Hide Quindi con nascondere invece va a mantenere li Facciamo F5 va a mantenere il valore Ok di conseguenza potrebbe essere semplicemente scomparsa la finestra e poi rivedo il valore Allora proviamo entrambi Quindi da qui andiamo sul codice tutta sta roba qua a me non serve per davvero sulla conferma cominciamo prima con mi punto Hide Perfetto Quindi se io faccio F5 Guardate un po' conferma poi ancora realtà F5 c'è ancora il valore Ok potrebbe essere una circostanza in cui magari volete tenere L'ultima cosa che avete scritto potrebbe essere una situazione Oppure possiamo andare per l'altra
soluzione che non è mi punto un load ma diversamente è download mi ok perché questo è un metodo dell'applicazione mentre l'altro invece era un metodo di cosa del form quindi il form punto Hide mentre Prima avevamo il form punto Show vedete Mostra i nascondi Per quanto riguarda invece all'ode è proprio livello di applicazione lo so che può sembrare un po' complesso sono Cose a cui ci si abitua niente che se la prima volta può avere poco senso poi ci si abitua detto questo a load.me lo sto proprio chiudendo vi faccio vedere F5 non c'è più
il valore se io scrivo vado un po' Anzi scriviamo coi numeri per vedere che sto cambiando confermo vedete 1 2 3 1 2 3 faccio ripartire non c'è più il valore quindi è come che il form fosse stato interamente pulito e poi chiuso in quel senso unlot l'ho caricato il form io faccio conferma faccio un Load pulisco tutto chiudo e ci rivediamo la prossima volta da capo in questo senso unload scaricare da quel punto di vista e direi che siamo andati abbastanza lunghini per aver fatto semplicemente una Label un input e un bottone e un
motivo per cui andiamo al prossimo episodio in cui andiamo a vedere l'Xbox Combo box checkbox e qualche evento aggiuntivo ci vediamo nel prossimo video episodio 44 del corso di vba parte 2 per quanto riguarda gli Userform e al momento ultimo video questo corso di vba potrebbe essere aggiornato ed integrato in futuro ma al momento con gli userform andiamo a concludere questo corso introduttivo sappiate che andrò a fare una versione più completa nel dettaglio eccetera di questo corso eventualmente sul mio sito e andrò per tutta la documentazione in italiano di vba sul mio sito ci vorrà
un po' però eventualmente date un occhio oggi parliamo di lisbox Combo box e Checkbox Per fare ciò è utile Però parlare di un evento importante che è l'evento inizia l'ISEE l'evento inizia live parla dell'inizializzazione del form ovvero quando effettivamente viene lanciato all'inizio il form vi faccio vedere se noi apriamo il nostro form Scusate vado a lato qui e a lungo non facciamo le cose molto carine eccetera Voglio solo fare vedere i vari componenti perciò onestamente ce ne freghiamo e prendo la mia casella di Riepilogo che è una list box vedete dovrei inserire i dati di
base la roswers che vedete qua Qual è il discorso posso far riferimento manuale alle Celle Oppure posso inserirle in modo dinamico non appena parte il form Quindi se l'utente ha selezionato qualcosa Cosa posso prendere quelle cose lì posso prendere invece i nomi dei fogli che ho a disposizione e quant'altro Però vado a Popolare la casella non appena parte il form perché Qua dentro può diventare un problema farlo a mano prima nel momento in cui l'utente aggiunge un foglio siamo spacciati Ok nel momento in cui l'utente Aggiunge una riga al range siamo spacciati di conseguenza lo
vogliamo fare dinamicamente se io faccio partire vedete che è vuoto Come posso Popolare la listbox a prescindere dobbiamo utilizzare quello che è l'evento in shalize quindi ci sono alcuni campi che vogliamo andare ad inizializzare prima Che il form venga utilizzato dall'utente di conseguenza ci spostiamo qua lato codice andiamo a premere su userform e andiamo poi sull'evento in shalize Ecco qua togliamo userform click che non ci interessa e adesso abbiamo il nostro innisalize vogliamo quindi aggiungere degli elementi realtà list box Mi raccomando per l'Xbox Combo box checkboxe e gli altri che non vedremo andate sulla documentazione
perché c'è tanta roba tanti metodi con Cui possiamo interagire rischieremo appunto a restarci qua ore ore ore di andrò a scrivere la documentazione che sarà completa andrò a fare poi un corso super avanzato che entra nel dettaglio Ma probabilmente per trattare tutta sta roba parliamo del triplo se non il quadruplo delle ore delicate in questo corso quindi vediamo un po' come possiamo fare per cominciare e poi il resto è a carico vostro dunque la list box ve lo dico subito se noi andiamo a Vedere io premo si chiama lissbox 1 al momento non facciamo i
fenomeni tengo lo stesso nome giusto perché voglio farvi vedere il funzionamento abbiamo già parlato dei name modificare i name avere una buona nomenclatura per ora ce ne freghiamo perché deve passare il concetto una volta che tanto l'avete capito possiamo tornare indietro e fare le cose un po' più schifose Perché Perché tanto sappiamo come si fanno bene al momento deve passare il concetto Della box quindi vedete si chiama lissbox 1 Perciò se io vado qua vado a scrivere list box 1 punto list vado ad aggiornare la lista e vado a creare un Array che sappiamo entro
ci metto Luca virgola Marco e magari anche Anna perfetto faccio così tac F5 e vedete che ci ha caricato i nomi al momento posso selezionarne solo uno Se volessimo selezionarne di più andate qua sotto dove c'è multi Select e voi premete su Select multi vedete anziché Select Single Select multi nel momento in cui faccio F5 posso selezionarne di più come possiamo andare a prendere i valori selezionati sul Click quindi sul conferma voglio mandarli a schermo è molto semplice ma prima di fare ciò voglio farvi vedere un altro modo in cui possiamo aggiungere degli oggetti quindi
anziché partire dal da un Array così potremmo fare qualcos'altro e andare a mettere l'Xbox 1 punto ad item e qua come item andiamo a mettere Luca e poi Lo possiamo copiare Oppure potete usare il wet che abbiamo già imparato vado a mettere Marco Marco Va bene F5 e vedete che ha aggiunto gli stessi elementi Quindi potete partire o da un Array Altrimenti li potete mettere in modo dinamico non è assolutamente un problema per quello vi dico di controllare la documentazione dell'Xbox delle Combo box eccetera perché ci sono tanti modi in cui possiamo arrivare lo stesso
risultato Ma Ognuno è una situazione diversa alla Array potrebbe essere già fatto così abbiamo il nostro Array lo utilizziamo Oppure potremmo utilizzare ad item che ci permette di aggiungere in modo dinamico in qualsiasi momento degli elementi Quindi ogni metodo fa riferimento ad una situazione diversa poi ve ne renderete conto quando effettivamente andare a fare le vostre macro per ora restiamo con ad item magari Qui abbiamo e aggiungiamo un'anna Ecco qua TAC e voglio farvi vedere come possiamo andare a mandare a schermo effettivamente i valori selezionati Allora noi ci mettiamo sul bottone invia e andiamo a
fare un bel for i = 0 partiamo a contare da zero tu list box 1 punto list count quindi contiamo quanti elementi in lista lisk account meno uno perché Perché si conta da zero a sto giro quindi sapete che Se contiamo da zero il count sono magari tre elementi Ma questo ha indice 2 Quindi 0 1 0 1 2 di conseguenza Facciamo così non abbiamo la ia attenzione quindi Team is Long va più che bene e adesso for andiamo a fare Next i Sappiamo usare il for e qua dentro vogliamo andare a vedere se effettivamente
è stato selezionato ogni singolo elemento quindi Luca è stato selezionato Sì lo mando a schermo Marco è stato selezionato No non lo mando a schermo Anna Sì come verifichiamo if andiamo a prendere l'Xbox 1 punto Selected di i Den cosa facciamo Innanzitutto and if e mandiamo a schermo debug.print di cosa di Quindi abbiamo effettivamente l'indice dell'elemento selezionato va bene di conseguenza oppure potreste prendere direttamente il valore ma di conseguenza se una cosa del genere e faccio F5 vedete Io seleziono l'uno e il 2 confermo e vedete che abbiamo 1 e 2 Se io faccio F5
seleziono UPS se io faccio F5 seleziono solo lo zero confermo e Ottengo solo Zero Ok quindi ecco come possiamo gestire una list box Fatemelo ripetere L'ultima volta mi raccomando su queste cose non andrò a coprire tutte le casistiche sono tante sono infinite potreste voler prendere il valore potreste voler pulire poi la list box potreste voler aggiungere elementi più avanti le casistiche sono infinite Guardate poi la documentazione proseguiamo con la Combo box quindi Combo box prendo la mia finestrella la Combo box è questa eccola qui e vedete che qua dentro possa avere degli elementi magari Facciamola
un po' meno alta si chiama Combo box 1 possiamo anche copiare chiaramente a lato avete sempre le proprietà e a sto giro andiamo sul codice e qua anziché l'Xbox facciamo Combo box 1 2 e 3 io faccio Play e vedete che abbiamo Luca Marco e Anna se faccio conferma chiaramente non succede niente come mandiamo lo schermo però ciò che è stato selezionato questo non ci Serve più perché nella Combo box ne andiamo a selezionare soltanto uno di conseguenza ci basta fare debug Print di cosa di Combo box punto Value quindi vi dimostro che se io
faccio Innanzitutto una bella pulizia vado qua F5 mi metto qui faccio Marco conferma e vedete che è stato mandato a schermo Marco quindi questa è la base più assoluta delle Combo box proseguiamo e parliamo della checkbox la checkbox è la casella da appunto cercare quindi qui riprendo i Miei strumenti Casella di controllo e io vado qua questa è la nostra Casella di controllo possiamo anche allargare un pochino si chiama checkbox 1 quindi possiamo andare a prendere qua così perfetto Non dobbiamo aggiungere elementi non dobbiamo aggiungere niente semplicemente quando vogliamo fare conferma mi basta andare a
prendere il valore Quindi io faccio Play checkbox conferma vedete è vero Io tolgo qua e se adesso vado su nostro form faccio ancora Play lascio così faccio conferma è falso capite bene che quindi per andare a verificare se il valore è vero o falso ci basta qua vedere se c'è box o il nome che le avete dato appunto Value o false gli altri elementi che abbiamo a disposizione senza andarle a vedere Sono ad esempio la possibilità di inserire immagini abbiamo le radio button che non è la checkbox che facciamo clic si clic No ma la
radio button è giusto per fare un esempio maschio o femmina Quindi Abbiamo due bottoncini Se clicco uno si svuota l'altro Se clicco l'altro si svuota il primo abbiamo lo switch il pulsante interruttore quello che abbiamo spesso sui nostri telefoni quello che sembra che si sta accendendo abbiamo le Tab per andare a creare più livelli del menu abbiamo poi le pagine che sono la parte effettiva oltre le Tab quindi le Tab sono la parte selezionabile e la pagina ciò che vediamo dopodiché abbiamo la barra di scorrimento e bene o male Gli elementi le abbiamo visti tutti
anzi questa qua in alto vedete questa qua è una Tab se ci fosse più roba potrei cliccare e questa qua sotto è una pagina Quindi questi sono i form inutile entrare più nel dettaglio perché ogni form ve lo posso garantire è diverso ciò che farete voi non è ciò che devo fare io richiede tanta calma bisogna mettersi lì provare provare Provare varie situazioni per oggi Direi che è tutto per questo corso al momento è tutto Ripeto potrebbero esserci aggiornamenti integrazioni video aggiuntivi esercizi e quant'altro sicuramente controllate sul sito per esercizi a riguardo documentazione chiaramente tutto
gratuito Ed eventualmente se volete un corso tre quattro volte più lungo di quello che abbiamo qua Controllate se sul sito ho già fatto la versione avanzata Questo è quanto vi ringrazio per essere rimasti con me e noi ci vediamo nel prossimo corso Ciao Ciao