Visto che non hai parlato della proprietà FormulaR1C1 ho scritto una semplicissima subroutine per illustrarne l'uso: Sub Prova_FormulaR1C1() Range("b2") = 1 Range("c3") = 2 'Uso della Proprietà FormulaR1C1 (R = Row e C = Column) 'In B4 scrivi la formula =B2+C3 Range("B4").FormulaR1C1 = "=R2C2+R3C3" End Sub Ciao e ancora grazie per questo utilissimo corso. Eddy
@NickTheGeek6 жыл бұрын
Grazie Edmondo! Metto questo commento in primo piano
@edmondosestini32276 жыл бұрын
Grazie! Che onore . . . !!!!
@NickTheGeek6 жыл бұрын
eh addirittura :-D
@riccardoricky13354 жыл бұрын
ciao Nicola, utilizzo excel ogni giorno ed ho cominciato a sviluppare delle macro. Questi corsi sono fantastici, chiarissimo il modo di spiegare, utilissimi. Complimenti. Sto imparando tantissime cose nuove, grazie.
@NickTheGeek4 жыл бұрын
Ciao Riccardo, grazie a te per il commento.
@njtv72785 жыл бұрын
Ho scoperto questo corso 3 giorni fa..,ringrazio in quanto sono molto chiari gli argomenti trattati. Ed grazie Edmondo che ha contribuito in commento ;)
@NickTheGeek5 жыл бұрын
Grazie, spero che continuerai a seguirlo :)
@njtv72785 жыл бұрын
@@NickTheGeek sì sto continuando eh molto utile.
@francol14074 жыл бұрын
Davvero complimenti per la chiarezza con cui spieghi gli argomenti. In questo momento di quarantena ho scoperto il tuo canale ed è davvero utile per "trascorrere" le giornate. Grazie
@NickTheGeek4 жыл бұрын
Mi fa piacere che i video siano utili, grazie a te per il commento
@enzodamico29676 жыл бұрын
Ho cominciato ieri e sto già alla lezione 7, prendendo appunti e seguendo passo passo sul mio Excel. E' tutto spiegato molto chiaramente, grazie per l'ottimo lavoro :)
@NickTheGeek6 жыл бұрын
mi fa piacere, grazie a te per il commento :)
@njtv72785 жыл бұрын
Anch'io sto prendondo appunti; video non tanto lunghi quindi ci permette di capire piano piano. Grazie mille
@davidepaganelli74696 жыл бұрын
Tutto chiarissimo grazie! Video da non oltre 15 minuti sono perfetti. :)
@NickTheGeek6 жыл бұрын
Ciao, grazie a te per il commento :) per la durata dei video ci provo, ma non sempre ci riesco e a volte i video diventano un po' troppo lunghi per non lasciare un argomento a metà
@corrado967 жыл бұрын
Grazie, grande come sempre! E poi se il video dura di più meglio....più informazioni. Alla prossima
@NickTheGeek7 жыл бұрын
grazie Corrado, hai ragione, più durata = più informazioni, ma preferisco spezzettarle per non mettere troppa carne al fuoco nello stesso video
@corrado967 жыл бұрын
Come preferisci, sei top!
@robertobraicovick68674 жыл бұрын
Grazie!
@Nami954 жыл бұрын
so che sono in ritardo al party, ma pasticciando un po' sono "riuscita" ad ottenere che un effetto uguale a quello dei riferimenti relativi ma senza utilizzare offset, ad esempio: sub prova () activecell.cells(1,1)="x" end sub e quindi mi chiedevo se andasse ugualmente bene o facendo programmi più complessi potrebbe dare problemi maggiori? grazie mille per questo corso, sei molto bravo a spiegarti!
@NickTheGeek4 жыл бұрын
Ciao Nami, grazie per i complimenti e per il commento. Sinceramente non ho mai visto questa notazione, quindi non so dirti se ci possano essere problemi. Se vedi che funziona, allora non vedo controindicazioni nell'utilizzarla al posto di Offset. Personalmente però rimarrei sull'Offset, che mi sembra più intuitiva dato che parte da (0, 0) anziché da (1, 1)
@Nami954 жыл бұрын
@@NickTheGeek io invece personalmente preferisco activecell.cells, così posso riferirmi direttamente alla cella di arrivo 😅 Grazie per avermi risposto anche a questo vecchio video, gentilissimo:)
@Gasolik16 жыл бұрын
Nicola scusa se ti scoccio ancora, ho scaricato Office 2016 per il mio mac, e ho fatto caso che non ha l'icona per i riferimenti assoluti delle macro, come e possibile?
@NickTheGeek6 жыл бұрын
mi dispiace ma non saprei, non uso office per mac; se non c'è quella funzione, significa che devi registrare le macro sempre con riferimenti relativi, e poi eventualmente modificarle a mano per mettere i riferimenti assoluti
@Gasolik16 жыл бұрын
@@NickTheGeek buongiorno e sapresti dirmi come si fa?
@NickTheGeek6 жыл бұрын
Se funziona come su Windows, se vuoi selezionare ad esempio la cella C2 partendo dalla A1, con i riferimenti relativi dovresti scrivere: cells(1,1).select activecell.offset(1, 2).range("A1"). select perché la seconda linea indica uno spostamento di una riga e due colonne partendo dalla cella attiva in quel momento, quindi in base alla prima cella cambia anche la seconda. Quindi se la prima linea fosse cells(2,2).select allora la seconda linea selezionerebbe la cella D3. Un riferimento assoluto, invece, è solo l'indicazione diretta della cella da selezionare, quindi sempre secondo l'esempio sopra: cells(1,1).select cells(2,3).select in questo caso, la seconda linea seleziona sempre la cella C2, qualsiasi sia la cella selezionata nella prima linea. Quindi se la prima linea fosse cells(2,2).select allora la seconda linea seleziona ancora la cella C2.
@Max_sbk125 жыл бұрын
11:05 Salve, non capisco perché nello spiegare la posizione "D3" in cui scriverà vba ha fatto quello strano ragionamento di considerare ancora "A1"? Bastava dire che il conteggio celle/colonne dell'Offset parte dalla cella riportata in Range( ).
@NickTheGeek5 жыл бұрын
Ciao, in effetti non so perché ho fatto tutto quel giro
@pincopanco1314 жыл бұрын
Infatti non riesco a capire il senso di range(). Adesso mi vengono dobbi su qualcosa che credevo di aver capito
@linus18874 жыл бұрын
Ciao, intanto complimenti e grazie per queste informazioni perché ritengo siano molto utili per chi si avvicina al mondo del linguaggio VBA. Avrei una domanda da farti. Come faccio a selezionare un intervallo di celle della colonna A rispetto alla riga specifica della cella attiva senza usare Offset? Nel mio caso mi serve attivare la macro in qualsiasi punto del foglio e se usassi Offset andrebbe sempre indietro del numero delle colonne che indico all'interno delle parentesi. Quindi se mi trovo nella colonna E e vado indietro di 4 arrivo alla colonna A ma se attivo la macro quando sono nella colonna O arriverò alla colonna L quando invece anche in questo caso mi servirebbe selezionare la corrispondente cella della colonna A. Grazie mille in anticipo :)
@NickTheGeek4 жыл бұрын
Ciao Mattia, grazie per i complimenti. La cella attiva in un certo momento è ActiveCell, e la sua riga e colonna sono rispettivamente ActiveCell.Row e ActiveCell.Column Per identificare una specifica cella puoi usare la notazione Cells(riga, colonna), quindi la cella che è sulla stessa riga della cella attiva, ma nella colonna A, è Cells(ActiveCell.Row, 1). Per selezionarla puoi usare il metodo Select, quindi Cells(ActiveCell.Row, 1).Select Non ho ben capito però se ti serve selezionare una sola cella oppure un intervallo.
@edmondosestini32276 жыл бұрын
La macro che ho fatto per la proprietà FormulaR1C1 è con riferimenti assoluti, però è anche utile vedere come funziona con riferimenti relativi. Ho fatto un'altra sempice macro illustrativa. Se si parte con la cella A1 selezionata, in B3 si avrà la somma di A5 e C1. Da notare che, in questo caso, la formula va esplicitata con gli indici (anche negativi) compresi in parentesi quadre: Sub Riferimenti_Relativi() ActiveCell.Offset(0, 2).Select ActiveCell = 1 ActiveCell.Offset(4, -2).Select ActiveCell = 2 ActiveCell.Offset(-2, 1).Select ActiveCell.FormulaR1C1 = "=R[2]C[-1]+R[-2]C[1]" End Sub Saluti.
@NickTheGeek6 жыл бұрын
Ottimo, grazie!
@giovannicapuano9729 Жыл бұрын
ciao nick! intanto grazie perche spieghi divinamente, peccato per la qualita video non ottimale al minuto 11.46 non capisco perche parli di c2 a quanto ho capito Sub riferimento_relativo () Cells.ClearContents Range(“a1”).activate ActiveCell.Offset(1,2).Range(“b2”).Select ‘spostati di 1 riga e 2 colonne rispetto all’ultima cella selezionata, e seleziona una sola cella: se la cella selezionata era a1, ora mi trovo in D3, perche per come ho scritto nel codice è come se la cella iniziale fosse la b2 Selection = “vba” ‘scrivi vba in c2 . è corretto cio che ho scrito? grazie
@NickTheGeek Жыл бұрын
Ciao Giovanni, grazie a te per i complimenti. Riguardo il codice che hai scritto, ActiveCell.Offset(1,2) sposta la cella iniziale di una riga verso il basso e di due colonne verso destra; quindi dato che la cella iniziale è A1, quella nuova è C2; infatti poi come mostro nel video la selezione finisce su D3, in quanto la cella C2 viene identificata come se fosse la A1, quindi la "nuova" B2 (cioè una riga in basso e una colonna a destra rispetto alla A1) diventa la D3 (cioè una riga in basso e una colonna a destra rispetto alla C2).
@AchilleM4 жыл бұрын
Come si possono attivare i riferimenti assoluti o relativi da codice VBA? Grazie
@NickTheGeek4 жыл бұрын
Non ho ben capito cosa intendi per "attivare" i riferimenti assoluti o relativi da VBA. Mi fai un esempio di cosa vorresti fare?
@AchilleM4 жыл бұрын
@@NickTheGeek Invece di scegliere i "Usa riferimenti relativi" dal pulsante sulla barra superiore di Excel, attivare o disattivare tale funzione all'interno di una subroutin, tramite un funzione specifica se esiste.
@NickTheGeek4 жыл бұрын
Non saprei se si può fare da VBA, anche perché l'attivazione di quel pulsante riguarda l'utilizzo dei riferimenti relativi durante la registrazione della macro con scrittura automatica del codice VBA; mentre se stai scrivendo il codice VBA manualmente puoi usare riferimenti assoluti (ad esempio Range("A1")) oppure relativi con Offset, come mostrato nel video; quindi in questo caso non ti serve attivare o disattivare il tasto, perché scegli di volta in volta che tipo di riferimento vuoi utilizzare (assoluto o relativo).
@AchilleM4 жыл бұрын
@@NickTheGeek Ok grazie, ho capito
@droitaucoeur13 жыл бұрын
Attenzione con l'istruzione Select o Activate. Per test, inserisci 10 fogli. Nella macro scrivi così: Dim i as Long For i = 1 to Sheets.count Sheets(i).Select Next i E vedi cosa succede.
@NickTheGeek3 жыл бұрын
Mi sfugge qualcosa. Non mi sembra che succeda niente di particolare, vengono selezionati uno alla volta tutti i fogli.
@droitaucoeur13 жыл бұрын
@@NickTheGeek Normale se i fogli sono vuoti. Ma riempiti di molti dati, e con cellula.Select, l'effetto è orribile.
@frenksart80667 жыл бұрын
È un po più difficile ma alla fine ho capito.
@NickTheGeek7 жыл бұрын
bravo, se hai dei dubbi fai sempre prove o, naturalmente, chiedimi pure
@nicksan7263 Жыл бұрын
Ottimi video ma .. giuro .. non capisco l'utilità dei riferimenti relativi
@NickTheGeek Жыл бұрын
Magari potrebbero non sembrare utili ma non si sa mai se in qualche situazione potrebbero esserlo.
@pincopanco1314 жыл бұрын
Volevo farti i complimenti. Soprattutto per il fatto di non dare niente per scontato. Quindi a volte ripeti più volte anche i concetti "semplici". Ed è una buona cosa. Ma in questo video quando passi al .range("a1") non si capisce niente 😭
@NickTheGeek4 жыл бұрын
Ciao, grazie per i complimenti; quello di offset con range è un concetto un po' astruso, puoi tranquillamente farne a meno se vuoi programmare con VBA. Ricordati solo (e questo è importante) che con Offset ti sposti di tante righe e tante colonne quante ne indichi tra le parentesi. Quindi se la cella attiva è A1 e scrivi: ActiveCell.Offset(1,2).Activate significa che vuoi selezionare la cella C2 (cioè una riga sotto e due colonne a destra di A1).
@leonardocrincoli69842 жыл бұрын
Ma scrivere solamente >>activecell="vba" >>activecell.offset(1,0)="vba2" >>activecell.offset(2,0)="vba3" non andrebbe bene ?