Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Le celle vuote non sono vuote!

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Le celle vuote non sono vuote!

Postdi LucaXls » 19/09/06 02:04

Salve, tempo fa imparai da voi (anthony e Alexandra) una utilissimo codice in VBA, e cioè:
Codice: Seleziona tutto
Sub CelleVuote()
    Range("A:A").SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
End Sub
Questa bella funzione toglie tutte le celle "vuote" dell'intera colonna A.
Ora, il problema, è capire cosa intenda per vuote...
Se per esempio in una cella scrivo +""
cioè il cosiddetto "testo vuoto", quella cella non è più vuota ma è piena, anche se visibilmente continua ad esser vuota.
Ed in questo modo, la funzione "CelleVuote()" la considera come una cella "piena" e quindi non la cancella, mentre io vorrei che lo facesse.

Suggerimenti???
Grazie mille!
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Sponsor
 

Postdi Anthony47 » 19/09/06 02:53

A quest' ora puoi provare questa:
Codice: Seleziona tutto
Sub Vuote()
AADD = Range("A65536").End(xlUp).Row
Range("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:="="
On Error GoTo fine
Range("A2:A" & AADD).SpecialCells(xlCellTypeVisible).Select   '<<<< A1???
Selection.Delete Shift:=xlUp

fine:
ActiveSheet.ShowAllData
End Sub


Ciao,
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi LucaXls » 19/09/06 10:25

Sì grazie, così và, con i giusti accorgimenti... sei un mostro di cortesia e celerità!

Ma giusto per curiosità:

Anthony47 ha scritto:A quest' ora puoi provare questa:
Codice: Seleziona tutto
Sub Vuote()
[b]AADD = Range("A65536").End(xlUp).Row[/b]
Range("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:="="
On Error GoTo fine
Range([b]"A2:A" & AADD[/b]).SpecialCells(xlCellTypeVisible).Select   '<<<< A1???
Selection.Delete Shift:=xlUp

fine:
ActiveSheet.ShowAllData
End Sub


Ciao,


Che vuol dire di preciso quel codice che ti ho messo in grassetto?
Non arrivo a capirlo...[/b]
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Postdi LucaXls » 19/09/06 10:28

Ops forse il grassetto non è venuto... mi scuso per questo....
Ti riporto le due righe che non ho capito:

AADD = Range("A65536").End(xlUp).Row
'questa non l'ho proprio capita!


Range("A2:A" & AADD).SpecialCells(xlCellTypeVisible).Select
'di questa non ho capito l'intervallo selezionato
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Postdi Anthony47 » 19/09/06 10:50

così và, con i giusti accorgimenti...

Una macro ha il pregio e il difetto di fare quello che e' programmata per fare. Io in genere NON CANCELLO dati "inutili", magari copio quelli "utili" in altra area e poi li elaboro; cosi' evito di avere risultati che non posso verificare da dove vengono fuori.

AADD = Range("A65536").End(xlUp).Row
'questa non l'ho proprio capita!


Con questa operazione la variabile AADD (e' un nome di fantasia, inizialmente avevo scritto ADR poi non avevo tempo di verificare se ADR fosse una parola riservata) viene compilata con il numero di riga dell' ultima cella occupata nel range A1:A65536.

Range("A2:A" & AADD).SpecialCells(xlCellTypeVisible).Select
'di questa non ho capito l'intervallo selezionato

Sapendo cosa e' AADD, questa domanda e' superata; vero?

Ciao,
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi LucaXls » 19/09/06 12:42

Sì perfetto! Non avevo capito che AADD fosse semplicemente il nome di una variabile...


Un'ultima cosa:

Avendo imparato che la riga di comando

"Range("A:A").SpecialCells(xlCellTypeBlanks).Select"

seleziona nella colonna A tutte le celle vuote (dove ahimè il classico ="" non è considerato vuoto) ti chiedo: non è possibile, con un comando molto simile a questo, chiedere di selezionare tutte le celle il cui valore è "PLUTO", per esempio??

Come sempre... grazie!
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Postdi Anthony47 » 19/09/06 14:06

Per l’ uso di Range("A:A").SpecialCells, guarda nell’ help del vba alla voce Metodo SpecialCells quale e’ la sintassi e quali sono le opzioni che il metodo mette a disposizione.

Oppure continui a usare la Sub Vuote() che to ho passato con le dovute personalizzazioni, esempio
Range("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:="PLUTO"

(o anche il piu’ stringato Range("A:A").AutoFilter Field:=1, Criteria1:="PLUTO")

Ciao,
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Le celle vuote non sono vuote!":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti