rilevante


  rilevante > microsoft.* > microsoft.office.excel

 #1  
21.03.2009, 06:34
Nico
Volevo chiedervi un'informazione:io mi sono costruito una tabella, che
presenta una parte predefinita e fissa superiore, mentre la parte inferiore è
variabile, nel senso che ho creato una macro assegnata ad un tasto che
inserisce automaticamente una nuova riga alla pressione del tasto. Ora vorrei
che alla fine delle mie operazioni sulla tabella si ritornasse ad avere una
sola riga nella parte inferiore, magari automaticamente con un'altra macro.
Facciamo un'esempio: le nuove righe si creano da A10 in giù, ce ne potranno
essere 10, 100, non lo so, però poi alla fine vorrei che si ritornasse alla
riga A10.Magari posso anche inserire un generico valore nella cella iniziale
della riga se serve come intestazione, per esempio dire cancella tutte le
righe da A10 in giù con celle nella colonna A non vuote.
Grazie
 #2  
22.03.2009, 01:06
eliano
"Nico" ha scritto:

> Volevo chiedervi un'informazione:io mi sono costruito una tabella, che
> presenta una parte predefinita e fissa superiore, mentre la parte inferiore è
> variabile, nel senso che ho creato una macro assegnata ad un tasto che
> inserisce automaticamente una nuova riga alla pressione del tasto. Ora vorrei
> che alla fine delle mie operazioni sulla tabella si ritornasse ad avere una
> sola riga nella parte inferiore, magari automaticamente con un'altra macro.
> Facciamo un'esempio: le nuove righe si creano da A10 in giù, ce ne potranno
> essere 10, 100, non lo so, però poi alla fine vorrei che si ritornasse alla
> riga A10.Magari posso anche inserire un generico valore nella cella iniziale
> della riga se serve come intestazione, per esempio dire cancella tutte le
> righe da A10 in giù con celle nella colonna A non vuote.
> Grazie


Ciao Nico.
Ammesso che abbia capito, prova questa artigianale su unn foglio di prova;
la routine, magari collegata ad un pulsante, cancella tutte i valori immessi
dalla riga 10 alla riga NNN:

Public Sub prova()
Dim UR As Long
Dim RI As Long
With ActiveSheet
RI = 10
UR = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Range(RI & ":" & UR).Delete
Range("A10").Select
End With
End Sub

Eliano
 #3  
22.03.2009, 17:45
Nico
Ma dove devo scrivere quelle righe di programmazione che mi hai segnalato? in
Visual Basic? se dovesse essere così io non sono poi così tanto pratico con
VB.

"eliano" ha scritto:
[..]
 #4  
22.03.2009, 22:24
eliano
"Nico" ha scritto:

> Ma dove devo scrivere quelle righe di programmazione che mi hai segnalato? in
> Visual Basic? se dovesse essere così io non sono poi così tanto pratico con
> VB.


Ciao Nico.
Strana domanda, visto che in precedenza avevi scritto:

[CUT]
> > > ..., nel senso che ho creato una macro assegnata ad un tasto che
> > > inserisce automaticamente una nuova riga alla pressione del tasto.

[CUT]

La macro ce l'hai, copiala in un modulo standard, ad esempio Modulo1,
disegna sul foglio un pulsante e collegaci la macro.
Eliano
 #5  
23.03.2009, 06:56
Nico
Si, infatti, dicevo che non sapevo come fare perchè quando creo le macro le
registro, cioè faccio le operazioni in Excel, non vado mai a scriverle perchè
non saprei come farlo in VB.
Quindi per quelle righe che mi hai segnalato apro il VB da Excel e le
incollo in un nuovo file di testo?

"eliano" ha scritto:
[..]
 #6  
23.03.2009, 06:59
Nico
Ho inserito quelle righe in un nuovo modulo, l'ho trovato, però mi da un
errore sulla riga
UR = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Errore di Runtime 91: variabile di oggetto o variabile del blocco with on
impostata

"eliano" ha scritto:
[..]
 #7  
23.03.2009, 22:05
eliano
"Nico" ha scritto:

> Ho inserito quelle righe in un nuovo modulo, l'ho trovato, però mi da un
> errore sulla riga
> UR = Cells.Find("*", , , , xlByRows, xlPrevious).Row
> Errore di Runtime 91: variabile di oggetto o variabile del blocco with on
> impostata
>


Ciao Nico.
Non so che dirti, a me funziona (XL2003); il foglio di prova è disponibile.
Eliano
 #8  
23.03.2009, 22:08
eliano
"eliano" ha scritto:

>> "Nico" ha scritto:

>
> > Ho inserito quelle righe in un nuovo modulo, l'ho trovato, però mi da un
> > errore sulla riga
> > UR = Cells.Find("*", , , , xlByRows, xlPrevious).Row
> > Errore di Runtime 91: variabile di oggetto o variabile del blocco with on
> > impostata
> >

>
> Ciao Nico.
> Non so che dirti, a me funziona (XL2003); il foglio di prova è disponibile.
> Eliano


Ovviamente per "disegna un pulsante" intendevo un pulsante da Moduli.
 #9  
23.03.2009, 23:25
eliano
"eliano" ha scritto:

>> "eliano" ha scritto:
>> Ovviamente per "disegna un pulsante" intendevo un pulsante da Moduli.


Scusa Nico ma ho qualche problema con i server.
Ovviamente per "disegna un pulsante" intendevo un pulsante da Moduli.
Comunque se la tua versione di XL ha qualche problema con il Find, prova
questa versione:

Public Sub prova()
Dim UR As Long
Dim RI As Long
With ActiveSheet
RI = 10
UR = Cells(Rows.Count, "A").End(xlUp).Row
Range(RI & ":" & UR).Delete
Range("A10").Select
End With
End Sub

Saluti
Eliano
 #10  
23.03.2009, 23:35
eliano
Come non detto; il copia/incolla è impazzito anche lui.

Public Sub prova()
Dim UR As Long
Dim RI As Long
With ActiveSheet
RI = 10
UR = Cells(Rows.Count, "A").End(xlUp).Row
If UR < RI Then Exit Sub
Range(RI & ":" & UR).Delete
Range("A10").Select
End With
End Sub

Sono talmente incacchiato che avevo saltato una riga e, sinceramente, non so
come ho fatto.
Eliano
 #11  
24.03.2009, 07:51
Nico
quest'ultima versione che mi hai mandato non mi funziona, mentre la
precedente si, forse c'è un problema su quel controllo IF che hai inserito.
E comunque con la versione funzionante e precedente sembra che cancelli le
righe da A1 ad A10. io invece vorrei che quelle fino ad A10 rimangano
intatte, mentre tutte quelle successive ad A10 vengano cancellate.
 #12  
24.03.2009, 21:54
eliano
"Nico" ha scritto:

> quest'ultima versione che mi hai mandato non mi funziona, mentre la
> precedente si, forse c'è un problema su quel controllo IF che hai inserito.
> E comunque con la versione funzionante e precedente sembra che cancelli le
> righe da A1 ad A10. io invece vorrei che quelle fino ad A10 rimangano
> intatte, mentre tutte quelle successive ad A10 vengano cancellate.


Ciao Nico.
L'unica che dovrebbe funzionare indipendentemente dalla versione di XL che
utilizzi o della mancanza esplicita di alcuni parametri del Find è l'ultima.
Inoltre, dire che una macro non funziona non significa assolutamente niente
se non si specifica il perchè non funziona o il tipo di errore che si genera.
Comunque se la routine proposta non ti funziona, mentre a me funziona
correttamente, sarei dell'opinione di considerare l'argomento chiuso.
Saluti
Eliano
Discussioni simili
Cancellazione automatica SMS

Ciao a tutti volevo una info da qualcuno che se ne intende un po di cellulari Io ho la necessità di acquistare un cellulare che abbia una funzione tale che quando si...

cancellazione automatica appuntamenti?

Ho notato che sul mio imate jam, si sono (apparentemente in modo automatico) cancellati gli appuntamenti degli ultimi 4 mesi i quali rimangono fortunatamente sul PC...

cancellazione righe db

Ciao! in un'applicazione vb 6.0 che si appoggia a un db access con dao si verifica ogni tanto una sparizione di alcune righe dalle tabelle. escludendo il fatto che qualcuno...

Cancellazione automatica temporizzata

Scusate il problema forse banale. Avrei necessità di cancellare il contenuto di alcune directory in base alla data. ogni giorno dovrei cancellare i file più vecchi di una...


Tutti gli orari sono GMT. Attualmente sono le 08:20. | Privacy Policy