Complimenti per le spiegazioni. Dono della sintesi e argomenti approfonditi graduatamente, quanto basta. Bravo.
@NickTheGeek5 жыл бұрын
Grazie!
@andreami854 жыл бұрын
Ottimo corso per sfruttare al meglio questo periodo da reclusi, grazie mille!
@NickTheGeek4 жыл бұрын
Grazie a te per il commento
@aldodesantis47494 жыл бұрын
Grandissimo Nick Disponibile e gentilissimo.Un Signore
@NickTheGeek4 жыл бұрын
Grazie Aldo!
@andreaangeletti88386 жыл бұрын
Ti ringrazio per un ciclo di volte che va da 1 a 1000! Spiegazione impeccabile : )
@NickTheGeek6 жыл бұрын
Belli i ringraziamenti in loop :) Grazie a te
@enricoenremi37135 жыл бұрын
Benissimo...continua cosi le tue lezioni non annoiano...grazie
@NickTheGeek5 жыл бұрын
grazie enrico!
@manuelcrepaldi22614 жыл бұрын
già messa in pratica questa lezione. Grazie Nik
@NickTheGeek4 жыл бұрын
Ottimo :)
@diegogritti10194 жыл бұрын
spiegazioni al momento (lezione 19 ) chiarissime , bravo
@NickTheGeek4 жыл бұрын
Grazie!
@lucaserioli80924 жыл бұрын
Sono al 20 video, sei un grande bravissimo
@NickTheGeek4 жыл бұрын
Grazie mille :)
@GianniRaspa6 жыл бұрын
Grande, chiaro e sintetico complimenti seguirò i tuoi prossimi video.
@NickTheGeek6 жыл бұрын
grazie a te per il commento :)
@davidebonanno38847 жыл бұрын
il corso è utilissimo e approfitto per ringraziarti..
@NickTheGeek7 жыл бұрын
Mi fa piacere, grazie a te per il commento :)
@leosaudi50364 жыл бұрын
chiarissimo, grazie
@cristiancolangelo19145 жыл бұрын
Bellissimo :-) Peccato che ho scoperto tardi questo corso :-( Ottima spiegazione!! Complimenti!
@NickTheGeek5 жыл бұрын
Ciao Cristian, grazie :)
@pincopanco1314 жыл бұрын
Altre 20 circa ore e ho finito di vedere tutti i tuoi video. A saperlo non rinnovano l abbonamento netflix 😜
@NickTheGeek4 жыл бұрын
Occhio a non fare indigestione :)
@anacrob7 жыл бұрын
Bravo Nick, molto chiaro!
@NickTheGeek7 жыл бұрын
Grazie!
@robertobraicovick68676 жыл бұрын
Grazie!
@corrado967 жыл бұрын
Grazie Nick!
@NickTheGeek7 жыл бұрын
Grazie a te Corrado :)
@droitaucoeur13 жыл бұрын
Ciao Nick. In questo esempio, non è obligatorio mettere i dopo Next. Il ciclo si ripeterà affinche non arriva a 10. Si aggiunge la variabile nel caso di 2 o più For Next per evitare eventuali errori.
@NickTheGeek3 жыл бұрын
Ciao Jacky. No non è obbligatorio, ma secondo me è meglio abituarsi a mettere sempre la variabile dopo il Next per non avere problemi quando ci sono più cicli.
@salsaciro4 жыл бұрын
Ciao Nick, in un database in cui ho inserito le anagrafiche dei clienti ho generato dei campi automatici (avvalendomi di funzioni) per calcolare la data di compleanno dell’anno corrente di ogni cliente registrato in ciascun record, il nr. di gg. che mancano alla data di compleanno dell’anno corrente, l’età del cliente ed un campo 0 - 1. Quest’ultimo solo allo scopo di filtrare e/o attuare la formattazione condizionale della tabella ecc. Il suddetto processo funziona bene ma ha il problema che nella tabella ci sono le relative funzioni in ogni campo processato di ogni record. Per evitare ciò, vorrei gestire il tutto avvalendomi di una macro programmata da codice VBA. I processi attuali sono i seguenti: in un foglio excel ho impostato 3 campi fissi esterni alla tabella che è composta da diverse colonne: Campi della tabella ( colonna C (campo nome cliente, valore inserito a mano), colonna D (campo data di nascita, valore inserito a mano), colonna E (calcolo aut. data anno corrente), colonna F (calcolo aut. nr. di gg. mancanti da data odierna a data compleanno in base al valore impostato in una cella esterna alla tabella); colonna G (campo automatico Val 0 -1 per verificare se i gg. mancanti alla data del compleanno sono < = a quelli impostati in una cella esterna alla tabella), colonna H (calcolo automatico dell’età anagrafica). Campi fissi ed esterni alla tabella: 1° campo (esempio cella A1) ho inserito la data odierna con la funzione “=oggi()” questo valore serve a determinare l’anno in cui ci troviamo e l’età di ogni cliente; 2° campo (esempio cella A2) nr. di gg. che l’utente valorizzare a piacere per determinare il nr. di gg. precedenti al compleanno, tale valore serve a processare la colonna G valorizzando i campi con Val 0-1. Personalmente, ritengo che uno scenario simile a quello sopracitato può interessare a molti e può essere applicato per diverse esigenze. Puoi aiutarmi a costruire il codice VBA? Grazie e buona serata.
@NickTheGeek4 жыл бұрын
Ciao Ciro. Userei queste funzioni: Year(Date) è l'anno della funzione Date, cioè della giornata attuale; in questo modo non occorre usare "=oggi()" Month(data) è il mese della data tra parentesi Day(data) è il giorno della data tra parentesi DateSerial (anno, mese, giorno) restituisce la data corrispondente, cioè giorno/mese/anno Quindi, supponendo che il cliente si trovi nella riga 1: - per la colonna E (compleanno anno corrente): Cells(1, 5) = DateSerial(Year(Date), Month(Cells(1, 4)), Day(Cells(1, 4))) - per la colonna F (giorni mancanti al compleanno), basta fare la sottrazione tra la colonna E e la data di oggi: Cells(1, 6) = Cells(1, 5) - Date il risultato è negativo se il compleanno di quest'anno è già passato; eventualmente potresti colorare la cella del nome (per esempio) se il risultato è zero, in modo da vedere subito i clienti che compiono gli anni oggi: If Cells(1, 6) = 0 Then Cells(1, 3).Interior.Color = vbGreen 'qui ho usato il verde Else Cells(1, 3).Interior.Color = xlNone ' se non è zero, cancella il colore di sfondo della cella End If - per la colonna G (valori 0/1), se il numero di giorni da verificare è nella cella A2: If Cells(1, 6) >= 0 And Cells(1, 6)
@salsaciro4 жыл бұрын
@@NickTheGeek Appena riprendo il progetto la testo. Grazie
@emanuelemansueti86815 жыл бұрын
ciao NickTheGeek. Esiste un ciclo regressivo, cioè c'è modo di creare un ciclo che vada da 10 a 1 per esempio? se è già spiegato in un altro video, basta che mi indichi in quale. Grazie mille
@NickTheGeek5 жыл бұрын
Ciao. Sì, bisogna usare lo Step, cioè l'indicazione di quanti numeri vuoi saltare ad ogni iterazione; in questo caso il ciclo va da 10 a 1 e lo Step vale -1 For i = 10 to 1 Step -1 Next i
@giorgiogatti49093 жыл бұрын
Salve Nik sono Giorgio e mi scuso se mi intrometto nelle domande degli altri ma lo faccio per fare pratica il mio va riportato all'esempio della mia domanda ma utilizzo l'esempio di Emanuele in riga 1 da a1 ad f1 scrivo 1-2-3-4-5 apro la macro dimensiono la variabile i = integer apro il ciclo: for i = 10 to 5 step -1 codice= cells(i,1)= cells(1,1)+cells(1,i-6) next i lancio la macro e mi scrive in colonna A10=5; A9=4; A8=3; A7=2 e si ferma mi indica errore definito dall'oggetto. Puntalizzo come evitare l'errore(definito dall'applicazione o dall'oggetto) e il l'operazione avrei voluta averla in orizzontale e non verticale Grazie e Saluti
@martinagrusovin145 жыл бұрын
Ciao se posso avrei bisogno di farti un'altra domanda. Come faccio a fare in modo che se il contenuto di una determinata cella è ad esempio "Criterio1", allora incolla valori della riga in un altro foglio, altrimenti no
@NickTheGeek5 жыл бұрын
Ciao, quali dati della riga devono essere copiati nell'altro foglio? Tutta la riga? Solo la cella con "Criterio1"? Altre celle?
@martinagrusovin145 жыл бұрын
@@NickTheGeek una riga. Cioè ho una cella un valore di riferimento, questo valore va cervato in una tabella e quando viene trovato parte in copia incolla di tutta la riga. Grazie! Sei gentilissimo
@NickTheGeek5 жыл бұрын
Supponiamo che la tabella si trovi nel Foglio 1 e che occupi le celle da A1 a L8 (8x12) e che, una volta trovata la cella "Criterio1", tu voglia copiare la sua riga nella riga 2 del Foglio2. Sub copia_riga() Sheets("Foglio1").Activate For i = 1 to 8 For j = 1 to 12 Cells(i,j).Activate If ActiveCell = "Criterio1" Then Rows(ActiveCell.Row & ":" & ActiveCell.Row).Select Selection.Copy Sheets("Foglio2").Activate Rows("2:2").Select ActiveSheet.Paste End End If Next j Next i End Sub In pratica: 1) attiva il foglio1 2) attiva una alla volta tutte le celle della tabella 8x12 (con i due cicli For annidati) 3) verifica se il contenuto della cella attiva è "Criterio1" 4) se è falso, allora salta all'End If e va alla prossima iterazione del ciclo 5) se invece è vero, seleziona la riga della cella attiva 6) copia il contenuto della selezione (cioè la riga) 7) attiva il foglio2 8) seleziona la riga 2 9) incolla 10) termina la sub (End) Fammi sapere.
@thyristore6 жыл бұрын
Grazie in generale per il corso . Mi domandavo riguardo all'omissione della variabile di indice dopo il Next . Ricordo ma probabilmente male che cambiava qualcosa , ma ora che provo esercizi simili al tuo sembrerebbe di no .
@NickTheGeek6 жыл бұрын
Ciao, grazie a te per il commento. L'indicazione della variabile dopo il Next è opzionale in VBA, però sempre meglio metterla per aumentare la leggibilità del codice.
@thyristore6 жыл бұрын
@@NickTheGeek Capito , grazie )))
@francescopandini8364 Жыл бұрын
salve, è possibile fare dei cicli che contano all'indietro esempio, for i = 10 to 1 Saluti Francesco
@NickTheGeek Жыл бұрын
Ciao, sì è possibile utilizzando la parola chiave Step, ad esempio: For i = 10 To 1 Step -1 Debug.Print i Next i Lo Step -1 consente di contare alla rovescia.
@francescopandini8364 Жыл бұрын
@@NickTheGeek grazie mille, infatti con lo step posso anche decidere il passo di incremento. Saluti Francesco
@giorgiogatti49093 жыл бұрын
Salve Nicola parte interessantissima per esempio ho in colonna a un dato fisso il quale devo addizionarlo prima a se stesso e poi per altre 4 colonne cioè dato fisso + se stesso es scrivo in colonna G1 =$a1 + a1 ;in colonna H1 = $a1+b1;in colonna i1 = $a1+c1; in colonna J = $a1+d1..fino a k1 Grazie di una risposta
@NickTheGeek3 жыл бұрын
Ciao Giorgio. Se ho ben capito, l'ultima colonna in cui scrivere è la K (quindi con il valore di E1); non posso verificare in questo momento ma direi che potresti fare un ciclo For così: For i = 7 to 11 ' dalla colonna G alla colonna K Cells(1, i) = Cells(1, 1) + Cells(1, i-6) ' scrive nella prima riga la somma tra A1 e il valore della stessa riga, ma presente 6 colonne prima (quindi ad esempio nella G scrive la somma di A1 + A1, nella colonna H scrive la somma di A1 + B1, etc.) Next i
@giorgiogatti49093 жыл бұрын
OK con la spiegazione, spero in seguito di trovare ciò che vorrei cioè dovrei trasformare formule che vorrei sostituire col vba, mi auguro di trovare esempi Grazie e continuo a seguirti
@Max_sbk125 жыл бұрын
La cosa importante, che forse sarà utile anche ad altri, è che 1 To 10 non si riferisce a quante x voglio scrivere, cioè 10 x, come avevo frainteso io, ma quante celle (righe o colonne) ho deciso di valorizzare con la lettera x. Infatti usando Step 3, scriverò solo 4 x, perché comunque l'ultima riga utilizzabile è appunto la 10.
@NickTheGeek5 жыл бұрын
Ciao Max, hai fatto bene a precisare, un ciclo For "liscio" (ad esempio senza condizioni interne) indica quante volte vuoi che tutta la procedura venga ripetuta. Dopo il tuo ultimo messaggio ti avevo scritto via email la settimana scorsa, ma non ho avuto risposta quindi immagino che sia finita nello spam, prova a verificare per favore.
@Max_sbk125 жыл бұрын
@@NickTheGeek si grazie nick ho il tuo indirizzo, appena ho un attimo di tempo ti scrivo. Gentilissimo e bravissimo!
@NickTheGeek5 жыл бұрын
ok perfetto, a presto allora :)
@francescosedita69384 жыл бұрын
ok
@GianniRaspa6 жыл бұрын
Si è chiaro, peccato perchè il video è sfogato e per prendere appunti fai fatica... Grazie.
@NickTheGeek6 жыл бұрын
eh lo so mi dispiace, ho provato in diversi modi ma ci sono riuscito solo in un paio di video, durante il caricamento su youtube succede qualcosa che diminuisce la qualità sotto ai 720
@gioninoss5 жыл бұрын
Ciao ho un piccolo problema con questo ciclo, e non so proprio come risolverlo. mi hai aiutato tante altre volte , spero che tu possa farlo anche adesso grazie anticipatamente. Sub AGGIORNA_TUTTI_CAMPIONATI() 'modulo 5 ' AGGIORNA_TUTTI_CAMPIONATI FACENDO IL REFRESH DI TUTTE LE QUERY QUESTA MACRO DEVE ESSERE SEGUITA DALLE ALTRE DUE ALL INTERNO DI OGNI CAMPIONATO ' ' Dim i As Integer For i = 8 To 15 'in questo modo il ciclo si ripete per i=8,9,10,11,12,13,14,15 io vorrei che si ripeta solo per i = 8,11,13 Cells(i, 8).Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ActiveWorkbook.RefreshAll 'QUI VORREI INSERIRE L 'ATTESA DEL PROCESSO, POICHE LA MACRO PASSA DIRETTAMENTE ADACTIVEWORBOOK.SAVE SENZA AVER FINITO IL REFRESH DELLE QUERY, PER POI CONTINUARE MA NON HO LA PIU PALLIDA IDEA DI COME SI FACCIA ActiveWorkbook.Save ActiveWindow.Close Workbooks("PALINSESTO TOTALE.XLSM").Sheets("CAMPIONATI").Cells(i, 8).Select With Selection.Font .Color = -16711681 .TintAndShade = 0 End With Next i End Sub
@NickTheGeek5 жыл бұрын
Ciao, non sono sicuro che funzioni, ma prova a scrivere DoEvents nella riga subito successiva a ActiveWorkbook.RefreshAll (quindi subito prima di ActiveWorkBook.Save)
@gioninoss5 жыл бұрын
@@NickTheGeek gentilissimo come sempre, ma risolto in altro modo