|
#1
|
|
|
|
|
Ciao ragazzi, cia Mauro,
ho provato invano a riprendere un vecchio post per evitare di aprirne uno nuovo: http://groups.google.com/group/micro...db205d28372d42 Il problema è presto spiegato. Nel codice scritto da Mauro trovo: ============> ... If Not Intersect(.Range("A1:B5"), ActiveCell) Is Nothing Then ... <============ Dando per scontato che la cella selezionata sia nel range indicato e che questo sia sempre tale... da A1 a B5. Nel mio caso, il range è dinamico. L'inizio è sempre (per esempio) la cella A1 (che io ho nominato Start_1) ma l'ultima può cambiare pertanto ho anteposto al tuo codice un Do... Loop come segue: ============> ... Range("Start_1").Select ActiveCell.Offset(1, 0).Select Set InizioRng = ActiveCell Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(-1, 0).Select Set FineRng = ActiveCell ... <============ Facendo così, però, perdo la cella attiva "da cancellare". Lo sò, dovrei dimensionarla a priori ma non sò come fare. Posso chiedere un ulteriore aiuto? Grazie 1000 e buona giornata. |
|
|
|
#2
|
|
|
|
|
On 8 Feb, 11:38, Snoopy <am43210> wrote:
> un Do... Loop come segue: > > ============> > ... > Range("Start_1").Select > ActiveCell.Offset(1, 0).Select > Set InizioRng = ActiveCell > Do Until ActiveCell.Value = "" > ActiveCell.Offset(1, 0).Select > Loop > ActiveCell.Offset(-1, 0).Select > Set FineRng = ActiveCell > ... > <============ Non ho letto il thread precedente e quindi non entro nel merito, mi limito al tuo loop: jj = 1 ' ricordati di dichiaralo con Dim jj as long Do Until ActiveCell.Offset(jj, 0).Value = "" jj = jj+1 Loop Set FineRng = ActiveCell.Offset(jj, 0) Scritta qui al volo, da testare. Comunque sicuramente Maura di saprà fornire una soluzione più elegante e, soprattutto funzionale. Bye! Scossa |
|
#3
|
|
|
|
|
> Comunque sicuramente Maura
> LOL! |
|
#4
|
|
|
|
|
Ciao ragazzi, cia Mauro,
ho provato invano a riprendere un vecchio post per evitare di aprirne uno nuovo: http://groups.google.com/group/micro...db205d28372d42 Il problema è presto spiegato. Nel codice scritto da Mauro trovo: ============> ... If Not Intersect(.Range("A1:B5"), ActiveCell) Is Nothing Then ... <============ Dando per scontato che la cella selezionata sia nel range indicato e che questo sia sempre tale... da A1 a B5. Nel mio caso, il range è dinamico. <cut> Aggiungi: Dim lUltRiga As Long '......... lUltRiga = Me.Range("B" & rows.Count).End(xlUp).Row If Not Intersect(.Range("A1:B" & lUltRiga), ActiveCell) Is Nothing Then 'ecc Se non riesci, chiedi sempre in questo thread. Grazie per l'attenzione. |
|
#5
|
|
|
|
|
Ciao Mauro,
non posso farlo... devo (per forza di cose) partire dall'alto e scendere fino alla fine della tabella. Perchè? Perchè alla fine della mia tabella, ci sono due righe vuote e poi una nuova tabella che non ha niente a che vedere con quella in oggetto. Esempio: La prima tabella é A1:B5... alla quale, giornalmente accodo nuovi record... quindi A1 rimarrà sempre fisso B5 diventerà B6 poi B7 poi B8 ecc. ecc. La seconda tabella, che si trova sotto la prima si scalerà la sua posizione in funzione dei record aggiunti nella tabella sopra. E pensa che questo codice devo replicarlo anche per la seconda tabella. laddove mi troverò anche con il range di inizio tabella ad essere dinamico. |
|
#6
|
|
|
|
|
<cut>
Utilizzando uno degli esempi postati nel link a cui fai riferimento, prova: Public Sub mEliminaRiga() 'dichiaro le variabili Dim lng As Long Dim sh As Worksheet Dim lUltRiga As Long '<<<=== Set sh = ActiveSheet With sh 'se il foglio attivo è il 'Foglio1 If .Name = "Foglio1" Then 'trovo lultima riga con un dato 'della colonna B lUltRiga = .Range("B" & _ .Rows.Count).End(xlUp).Row '<<<=== 'se la cella attiva è nel Range 'A1:Bn del Foglio1, dove n è 'l'ultima cella con dato della 'colonna B If Not Intersect(.Range("A1:B" & lUltRiga), _ ActiveCell) Is Nothing Then '<<<=== 'recupero il numero di riga della 'cella attiva lng = ActiveCell.Row 'elimino l'eventuale protezione 'del foglio .Unprotect Password:="tuaPassword" 'elimino la riga .Rows(lng).Delete 'rimetto la protezione al foglio .Protect Password:="tuaPassword" End If End If End With 'Set a Nothing delle variabili oggetto Set sh = Nothing End Sub Dove '<<<=== indicano righe aggiunte e/o modificate. Grazie per l'attenzione. |
|
#7
|
|
|
|
|
non posso farlo... devo (per forza di cose) partire dall'alto e
scendere fino alla fine della tabella. Perchè? Perchè alla fine della mia tabella, ci sono due righe vuote e poi una nuova tabella che non ha niente a che vedere con quella in oggetto. ****************************************** Modifica xlUp con xlDown. Tipo: lUltRiga = NomeFoglio.Range("A1").End(xlDown).Row Non dovrebbe essere difficile adesso. E pensa che questo codice devo replicarlo anche per la seconda tabella. laddove mi troverò anche con il range di inizio tabella ad essere dinamico. ************************************ Se sai che l'inizio si trova 2 righe sotto alla fine della prima.... |
|
#8
|
|
|
|
|
>
> lUltRiga = NomeFoglio.Range("A1").End(xlDown).Row > Ho fatto la modifica che mi hai suggerito ma, nonostante ci siano righe vuote tra la prima tabella e la seconda, la variabile lUltRiga viene valorizzata 65536. Quando, sopra, parlavo del Do... Loop per riconoscere l'ultima riga della mia tabella era proprio per evitare di cancellare senza controllo tra una tabella e l'altra. I miei fogli contengono 3 tabelle distinte e separate. Io vorrei creare tre bottoni, associati ad altrettante macro, che mi permettano di cancellare record dalla tabella associata. In questa fase, il tuo codice funziona perfettamente perchè cancella il record selezionato ma non riconosce i confini della tabella su cui stò lavorando. |
|
#9
|
|
|
|
|
Trovato il problema... non avevo rettificato il riferimento della
tabella dal quale doveva partire l' xlDown. Adesso funziona tutto. Grazie Mauro...gentilissimo! |
|
#10
|
|
|
|
|
> Trovato il problema... non avevo rettificato il riferimento della
> tabella dal quale doveva partire l' xlDown. > Adesso funziona tutto. > Bene. Grazie a te per il riscontro. |
|
#11
|
|
|
|
|
In article <4b700fb5$0$1145$4fafbaef>,
maurogscRIMUOVERE says... > > Comunque sicuramente Maura > > > > LOL! Lol, scusa Mauro... è destino che con il tuo nome ci faccia pasticci... ma almeo le tue risposte non cadono nel vuoto, al contrario delle mie che spesso non ottengono un minimo di riscontro (chiedere è lecito, rispondere è cortesia, ringraziare chi perde tempo a rispondere è buona educazione) :-( |
|
#12
|
|
|
|
|
On 8 Feb, 21:52, Scossa <Inva> wrote:
> In article <4b700fb5011454fafb>, > maurogscRIMUOV...@RIMUOVEREaliceposta.it says... >> > Lol, scusa Mauro... è destino che con il tuo nome ci faccia > pasticci... ma almeo le tue risposte non cadono nel vuoto, > al contrario delle mie che spesso non ottengono un minimo > di riscontro (chiedere è lecito, rispondere è cortesia, > ringraziare chi perde tempo a rispondere è buona > educazione) :-( > > -- > Bye! > Scossa Scossa ... Scossa .... chi è Scossa? :-) p.s. non te la prendere ... io ho letto direi che va bene sempre che possa consolarti :-) |
|
#13
|
|
|
|
|
On 8 Feb, 21:52, Scossa <Inva> wrote:
> In article <4b700fb5011454fafb>, > maurogscRIMUOV...@RIMUOVEREaliceposta.it says... >> > Lol, scusa Mauro... è destino che con il tuo nome ci faccia > pasticci... ma almeo le tue risposte non cadono nel vuoto, > al contrario delle mie che spesso non ottengono un minimo > di riscontro (chiedere è lecito, rispondere è cortesia, > ringraziare chi perde tempo a rispondere è buona > educazione) :-( > > -- > Bye! > Scossa Ciao Scossa. Non te la prendere, e non ti curare della maleducazione imperante. Tu hai la certezza di fare una cosa giusta, utile e meritevole, anche a favore di chi non la merita. Loro sono in difetto, non tu. Cordialmente Eliano |
|
#14
|
|
|
|
|
On 8 Feb, 23:30, r <robb> wrote:
> On 8 Feb, 21:52, Scossa <Inva> wrote: > > Scossa ... Scossa .... > chi è Scossa? Quella cosa che senti se metti due dita nella presa della corrente :-)) Bye! Scossa |
|
#15
|
|
|
|
|
On 9 Feb, 01:05, eliano <falinieli> wrote:
> Loro sono in difetto, non tu. Grazie Eliano, davvero! Bye! Scossa |
|
|
|
|
| Discussioni simili | |
| [Per Stunat] Riprendo qui una discussione Anzitutto ti ringrazio molto della possibilità di confronto che mi dai con la tua esperienza rispondendomi. Tu dici che io svolgerei lavoro impiegatizio e non tirocinio. Ti... |
|
| Cancellare riga da range. Buon pomeriggio, vi chiedo la gentilezza di non prendermi per pazzo. In un foglio di lavoro completamente bloccato ho una tabella A1:B5 (per esempio) che contiene le uniche... |
|
| riprendo discussione da forum vocesuip [..] Vorrei discutere di casi similari a questo, dove invece di voler mettere su un provider fittizio per dare connettività a larga banda facendo un primo tratto con... |
|
| RIPRENDO LA DISCUSSIONE mi scuso con tutti ma soprattutto con massimo che ha cercato di aiutarmi al meglio, ma ho un problema che non riesco a risolvere.. scrivo sotto la pima parte della soluzione... |
|
|
Tutti gli orari sono GMT. Attualmente sono le 10:43. | Privacy Policy
|