Ritorna alla cella precedente
Hai un problema con Excel? 
Ritorna alla cella precedente
di Kipudda (utente non iscritto) data: 18/08/2015 16:44:22
Buongiorno,
ho provato ad inserire la seguente istruzione con la funzione “Set” in modo che il cursore, una volta terminata l’istruzione che viene attivata premendo l’apposito pulsante, ritorni sulla cella precedentemente selezionata:
Sub PVC_1_Click()
Set CellaDoveEro = ActiveCell
If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then
Range("BD6").Select
ActiveCell.FormulaR1C1 = "1"
Else
Range("BD6").Select
Selection.ClearContents
CellaDoveEro.Parent = Activate
CellaDoveEro.Select
End If
End Sub
Purtroppo l’istruzione, così come l’ho scritta, non funziona!
Potete aiutarmi?? Grazie!!
di Vecchio Frac data: 18/08/2015 17:09:35
A me sembra tutto un inutile guazzabuglio.
Quando premi un pulsante, di solito Excel non dimentica la cella attiva che, pertanto, non si sposta.
Se lo scopo di tutto l'ambaradan è inserire un numero in una cella oppure cancellare il contenuto di una cella, non è necessario spostare con Select la cella attiva.
Sub PVC_1_Click()
If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then
Range("BD6") = 1
Else
Range("BD6").ClearContents
End If
End Sub |
Ritorna alla cella precedente
di Kipudda (utente non iscritto) data: 18/08/2015 19:29:57
Grazie per l'aiuto!!
Il punto è che ho un'altra istruzione che sfrutta la proprietà select per determinare certi valori su un'altra cella (tramite il metodo intersect).....
Quindi la proprietà select mi serve......
di scossa data: 18/08/2015 20:05:19
cit.: "Il punto è che ho un'altra istruzione che sfrutta la proprietà select ....
Quindi la proprietà select mi serve"
Solo una precisazione (senza entrare nel merito del codice): Select è un metodo non una proprietà.
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.(George Bernard Shaw) |
di Vecchio Frac data: 18/08/2015 20:38:19
Se dite le cose a metà, o nascondete particolari, non aspettatevi soluzioni pronte all'uso ma solo suggerimenti e spunti.
Comunque il discorso non cambia. Non hai quasi mai bisogno di pre-selezionare una cella per conoscerne il valore. Nell'ambito della precisazione fatta, Select non serve affatto "per determinare certi valori su un'altra cella"; Intersect lavora con due parametri di tipo Range che non devono essere dapprima selezionati.
E durante queste riflessioni ti invito anche a non sorvolare nemmeno sulla necessità di usare Option Explicit e di dichiarare correttamente le variabili che usi.
Comunque se vuoi scrivere codice poco efficiente, prova almeno la correzione che ti indico.
Option Explicit
Sub PVC_1_Click()
Dim CellaDoveEro As Range
Set CellaDoveEro = ActiveCell
If Range("BD6") = "" And Range("C6") > 0 And Range("Q28") = Worksheets("Riferimenti").Range("L127") Then
Range("BD6").Select
ActiveCell.FormulaR1C1 = "1"
Else
Range("BD6").Select
Selection.ClearContents
CellaDoveEro.Parent.Activate
CellaDoveEro.Select
End If
End Sub |
Ritorna alla cella precedente
di Kipudda (utente non iscritto) data: 19/08/2015 16:54:46
Problema risolto!! L'istruzione funziona a dovere!!
Vuoi Approfondire?