Corso VBA Excel ITA - 20 - Ciclo For... Next

  Рет қаралды 16,469

NickTheGeek

NickTheGeek

Күн бұрын

Пікірлер: 62
@tecnicip1021
@tecnicip1021 5 жыл бұрын
Complimenti per le spiegazioni. Dono della sintesi e argomenti approfonditi graduatamente, quanto basta. Bravo.
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Grazie!
@andreami85
@andreami85 4 жыл бұрын
Ottimo corso per sfruttare al meglio questo periodo da reclusi, grazie mille!
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Grazie a te per il commento
@aldodesantis4749
@aldodesantis4749 4 жыл бұрын
Grandissimo Nick Disponibile e gentilissimo.Un Signore
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Grazie Aldo!
@andreaangeletti8838
@andreaangeletti8838 6 жыл бұрын
Ti ringrazio per un ciclo di volte che va da 1 a 1000! Spiegazione impeccabile : )
@NickTheGeek
@NickTheGeek 6 жыл бұрын
Belli i ringraziamenti in loop :) Grazie a te
@enricoenremi3713
@enricoenremi3713 5 жыл бұрын
Benissimo...continua cosi le tue lezioni non annoiano...grazie
@NickTheGeek
@NickTheGeek 5 жыл бұрын
grazie enrico!
@manuelcrepaldi2261
@manuelcrepaldi2261 4 жыл бұрын
già messa in pratica questa lezione. Grazie Nik
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Ottimo :)
@diegogritti1019
@diegogritti1019 4 жыл бұрын
spiegazioni al momento (lezione 19 ) chiarissime , bravo
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Grazie!
@lucaserioli8092
@lucaserioli8092 4 жыл бұрын
Sono al 20 video, sei un grande bravissimo
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Grazie mille :)
@GianniRaspa
@GianniRaspa 6 жыл бұрын
Grande, chiaro e sintetico complimenti seguirò i tuoi prossimi video.
@NickTheGeek
@NickTheGeek 6 жыл бұрын
grazie a te per il commento :)
@davidebonanno3884
@davidebonanno3884 7 жыл бұрын
il corso è utilissimo e approfitto per ringraziarti..
@NickTheGeek
@NickTheGeek 7 жыл бұрын
Mi fa piacere, grazie a te per il commento :)
@leosaudi5036
@leosaudi5036 4 жыл бұрын
chiarissimo, grazie
@cristiancolangelo1914
@cristiancolangelo1914 5 жыл бұрын
Bellissimo :-) Peccato che ho scoperto tardi questo corso :-( Ottima spiegazione!! Complimenti!
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Ciao Cristian, grazie :)
@pincopanco131
@pincopanco131 4 жыл бұрын
Altre 20 circa ore e ho finito di vedere tutti i tuoi video. A saperlo non rinnovano l abbonamento netflix 😜
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Occhio a non fare indigestione :)
@anacrob
@anacrob 7 жыл бұрын
Bravo Nick, molto chiaro!
@NickTheGeek
@NickTheGeek 7 жыл бұрын
Grazie!
@robertobraicovick6867
@robertobraicovick6867 6 жыл бұрын
Grazie!
@corrado96
@corrado96 7 жыл бұрын
Grazie Nick!
@NickTheGeek
@NickTheGeek 7 жыл бұрын
Grazie a te Corrado :)
@droitaucoeur1
@droitaucoeur1 3 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 3 жыл бұрын
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.
@salsaciro
@salsaciro 4 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 4 жыл бұрын
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)
@salsaciro
@salsaciro 4 жыл бұрын
@@NickTheGeek Appena riprendo il progetto la testo. Grazie
@emanuelemansueti8681
@emanuelemansueti8681 5 жыл бұрын
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
@NickTheGeek
@NickTheGeek 5 жыл бұрын
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
@giorgiogatti4909
@giorgiogatti4909 3 жыл бұрын
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
@martinagrusovin14
@martinagrusovin14 5 жыл бұрын
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
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Ciao, quali dati della riga devono essere copiati nell'altro foglio? Tutta la riga? Solo la cella con "Criterio1"? Altre celle?
@martinagrusovin14
@martinagrusovin14 5 жыл бұрын
@@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
@NickTheGeek
@NickTheGeek 5 жыл бұрын
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.
@thyristore
@thyristore 6 жыл бұрын
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 .
@NickTheGeek
@NickTheGeek 6 жыл бұрын
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.
@thyristore
@thyristore 6 жыл бұрын
@@NickTheGeek Capito , grazie )))
@francescopandini8364
@francescopandini8364 Жыл бұрын
salve, è possibile fare dei cicli che contano all'indietro esempio, for i = 10 to 1 Saluti Francesco
@NickTheGeek
@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
@francescopandini8364 Жыл бұрын
@@NickTheGeek grazie mille, infatti con lo step posso anche decidere il passo di incremento. Saluti Francesco
@giorgiogatti4909
@giorgiogatti4909 3 жыл бұрын
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
@NickTheGeek
@NickTheGeek 3 жыл бұрын
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
@giorgiogatti4909
@giorgiogatti4909 3 жыл бұрын
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_sbk12
@Max_sbk12 5 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 5 жыл бұрын
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_sbk12
@Max_sbk12 5 жыл бұрын
@@NickTheGeek si grazie nick ho il tuo indirizzo, appena ho un attimo di tempo ti scrivo. Gentilissimo e bravissimo!
@NickTheGeek
@NickTheGeek 5 жыл бұрын
ok perfetto, a presto allora :)
@francescosedita6938
@francescosedita6938 4 жыл бұрын
ok
@GianniRaspa
@GianniRaspa 6 жыл бұрын
Si è chiaro, peccato perchè il video è sfogato e per prendere appunti fai fatica... Grazie.
@NickTheGeek
@NickTheGeek 6 жыл бұрын
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
@gioninoss
@gioninoss 5 жыл бұрын
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
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Ciao, non sono sicuro che funzioni, ma prova a scrivere DoEvents nella riga subito successiva a ActiveWorkbook.RefreshAll (quindi subito prima di ActiveWorkBook.Save)
@gioninoss
@gioninoss 5 жыл бұрын
@@NickTheGeek gentilissimo come sempre, ma risolto in altro modo
@NickTheGeek
@NickTheGeek 5 жыл бұрын
ok bene
Corso VBA Excel ITA - 21 - Cicli annidati
21:33
NickTheGeek
Рет қаралды 10 М.
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Ciclo FOR - VBA Excel Tutorial Italiano 25
15:01
Edoardo Midali
Рет қаралды 3,9 М.
Dynamic Calendar with Single formula connected with Task List || No VBA Used
23:24
Corso VBA Excel ITA - 23 - Ciclo Do While... Loop
15:35
NickTheGeek
Рет қаралды 11 М.
Corso VBA Excel ITA - 4 - Intervalli
19:46
NickTheGeek
Рет қаралды 30 М.
Excel VBA #22  Do Until  e Do While Loop  esempi con Select Case
26:49
Gerardo Zuccalà
Рет қаралды 14 М.
Corso VBA Excel ITA - 22 - Combinazioni For/If
22:55
NickTheGeek
Рет қаралды 11 М.
#17.3 Metodo Find e FindNext Do Loop Until VBA Macro Excel Macraris
18:39
LapaConsult | Ex Macraris
Рет қаралды 2,5 М.
How to Create a Data Entry Form in Excel
34:30
Excel Macro Mastery
Рет қаралды 312 М.
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН