Corso VBA Excel ITA - 7 - Riferimenti assoluti e relativi

  Рет қаралды 15,786

NickTheGeek

NickTheGeek

Күн бұрын

Пікірлер: 52
@edmondosestini3227
@edmondosestini3227 6 жыл бұрын
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
@NickTheGeek
@NickTheGeek 6 жыл бұрын
Grazie Edmondo! Metto questo commento in primo piano
@edmondosestini3227
@edmondosestini3227 6 жыл бұрын
Grazie! Che onore . . . !!!!
@NickTheGeek
@NickTheGeek 6 жыл бұрын
eh addirittura :-D
@riccardoricky1335
@riccardoricky1335 4 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Ciao Riccardo, grazie a te per il commento.
@njtv7278
@njtv7278 5 жыл бұрын
Ho scoperto questo corso 3 giorni fa..,ringrazio in quanto sono molto chiari gli argomenti trattati. Ed grazie Edmondo che ha contribuito in commento ;)
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Grazie, spero che continuerai a seguirlo :)
@njtv7278
@njtv7278 5 жыл бұрын
@@NickTheGeek sì sto continuando eh molto utile.
@francol1407
@francol1407 4 жыл бұрын
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
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Mi fa piacere che i video siano utili, grazie a te per il commento
@enzodamico2967
@enzodamico2967 6 жыл бұрын
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 :)
@NickTheGeek
@NickTheGeek 6 жыл бұрын
mi fa piacere, grazie a te per il commento :)
@njtv7278
@njtv7278 5 жыл бұрын
Anch'io sto prendondo appunti; video non tanto lunghi quindi ci permette di capire piano piano. Grazie mille
@davidepaganelli7469
@davidepaganelli7469 6 жыл бұрын
Tutto chiarissimo grazie! Video da non oltre 15 minuti sono perfetti. :)
@NickTheGeek
@NickTheGeek 6 жыл бұрын
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à
@corrado96
@corrado96 7 жыл бұрын
Grazie, grande come sempre! E poi se il video dura di più meglio....più informazioni. Alla prossima
@NickTheGeek
@NickTheGeek 7 жыл бұрын
grazie Corrado, hai ragione, più durata = più informazioni, ma preferisco spezzettarle per non mettere troppa carne al fuoco nello stesso video
@corrado96
@corrado96 7 жыл бұрын
Come preferisci, sei top!
@robertobraicovick6867
@robertobraicovick6867 4 жыл бұрын
Grazie!
@Nami95
@Nami95 4 жыл бұрын
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!
@NickTheGeek
@NickTheGeek 4 жыл бұрын
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)
@Nami95
@Nami95 4 жыл бұрын
@@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:)
@Gasolik1
@Gasolik1 6 жыл бұрын
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?
@NickTheGeek
@NickTheGeek 6 жыл бұрын
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
@Gasolik1
@Gasolik1 6 жыл бұрын
@@NickTheGeek buongiorno e sapresti dirmi come si fa?
@NickTheGeek
@NickTheGeek 6 жыл бұрын
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_sbk12
@Max_sbk12 5 жыл бұрын
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( ).
@NickTheGeek
@NickTheGeek 5 жыл бұрын
Ciao, in effetti non so perché ho fatto tutto quel giro
@pincopanco131
@pincopanco131 4 жыл бұрын
Infatti non riesco a capire il senso di range(). Adesso mi vengono dobbi su qualcosa che credevo di aver capito
@linus1887
@linus1887 4 жыл бұрын
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 :)
@NickTheGeek
@NickTheGeek 4 жыл бұрын
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.
@edmondosestini3227
@edmondosestini3227 6 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 6 жыл бұрын
Ottimo, grazie!
@giovannicapuano9729
@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
@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).
@AchilleM
@AchilleM 4 жыл бұрын
Come si possono attivare i riferimenti assoluti o relativi da codice VBA? Grazie
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Non ho ben capito cosa intendi per "attivare" i riferimenti assoluti o relativi da VBA. Mi fai un esempio di cosa vorresti fare?
@AchilleM
@AchilleM 4 жыл бұрын
@@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.
@NickTheGeek
@NickTheGeek 4 жыл бұрын
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).
@AchilleM
@AchilleM 4 жыл бұрын
@@NickTheGeek Ok grazie, ho capito
@droitaucoeur1
@droitaucoeur1 3 жыл бұрын
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.
@NickTheGeek
@NickTheGeek 3 жыл бұрын
Mi sfugge qualcosa. Non mi sembra che succeda niente di particolare, vengono selezionati uno alla volta tutti i fogli.
@droitaucoeur1
@droitaucoeur1 3 жыл бұрын
@@NickTheGeek Normale se i fogli sono vuoti. Ma riempiti di molti dati, e con cellula.Select, l'effetto è orribile.
@frenksart8066
@frenksart8066 7 жыл бұрын
È un po più difficile ma alla fine ho capito.
@NickTheGeek
@NickTheGeek 7 жыл бұрын
bravo, se hai dei dubbi fai sempre prove o, naturalmente, chiedimi pure
@nicksan7263
@nicksan7263 Жыл бұрын
Ottimi video ma .. giuro .. non capisco l'utilità dei riferimenti relativi
@NickTheGeek
@NickTheGeek Жыл бұрын
Magari potrebbero non sembrare utili ma non si sa mai se in qualche situazione potrebbero esserlo.
@pincopanco131
@pincopanco131 4 жыл бұрын
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 😭
@NickTheGeek
@NickTheGeek 4 жыл бұрын
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).
@leonardocrincoli6984
@leonardocrincoli6984 2 жыл бұрын
Ma scrivere solamente >>activecell="vba" >>activecell.offset(1,0)="vba2" >>activecell.offset(2,0)="vba3" non andrebbe bene ?
@NickTheGeek
@NickTheGeek 2 жыл бұрын
Sì direi che andrebbe bene
Corso VBA Excel ITA - 8 - Commenti e finestra immediata
18:07
NickTheGeek
Рет қаралды 13 М.
Corso VBA Excel ITA - 5 - Oggetti, proprietà e metodi
21:28
NickTheGeek
Рет қаралды 32 М.
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Corso VBA Excel ITA - 4 - Intervalli
19:46
NickTheGeek
Рет қаралды 30 М.
Seleziona fino a fine riga
3:50
Eris Magagnin
Рет қаралды 49
Riferimenti assoluti vs relativi - VBA Excel Tutorial Italiano 03
5:57
Corso VBA Excel ITA - 6 - Activate e Select
23:41
NickTheGeek
Рет қаралды 23 М.
Corso VBA Excel ITA - 11 - Variabili (parte 3)
21:26
NickTheGeek
Рет қаралды 13 М.
Corso VBA Excel ITA - 9 - Variabili (parte 1)
23:13
NickTheGeek
Рет қаралды 17 М.
Corso VBA Excel ITA - 3 - Celle
24:10
NickTheGeek
Рет қаралды 39 М.
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН