Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Riferimento assoluto cancella righe vuote Vba

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] Riferimento assoluto cancella righe vuote Vba

Postdi Maverick85 » 07/12/14 16:05

Salve a tutti, complimenti per il forum innanzitutto, sto trovando tantissime informazioni utili per migliorare il mio utilizzo di Excel.
Detto questo, premetto che io sto provando ad imparare il codice VBA (qualsiasi consiglio è ben accetto).
Mi sono imbattuto, nella macro di cancellazione delle righe vuote scritta in VBA:

Sub eliminarighevuote()
With ActiveSheet.UsedRange
alex = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = alex To 1 Step -1
If Application.Count(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub

è ottima e funziona facilmente, la mia unica richiesta è di poterla applicare in maniera leggermente diversa.
Infatti, se il database di lavoro parte dalla 10° riga, l'applicazione in automatico cancella le righe vuote, le accorpa e le fa partire dalla riga 1. Nel mio caso, avendo una intestazione aziendale, mi crea non pochi problemi.
Cosa modifico del codice vba?? Vi ringrazio anticipatamente dell'aiuto.
:)
Maverick85
Newbie
 
Post: 6
Iscritto il: 07/12/14 15:41

Sponsor
 

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi ricky53 » 07/12/14 17:02

Ciao,
cambia
Codice: Seleziona tutto
For r = alex To 1 Step -1


con
Codice: Seleziona tutto
For r = alex To 10 Step -1
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi Maverick85 » 07/12/14 21:31

Grazie Mille Ricky53.
Per determinare l'uso di questa macro soltanto in un foglio, cambio la riga:

With ActiveSheet.UsedRange
con
Sheets("Foglio1").Select

Non ho capito, ancora come scrivere il comando di determinazione del foglio.
Scusate le domande sciocche.
Maverick85
Newbie
 
Post: 6
Iscritto il: 07/12/14 15:41

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi ricky53 » 08/12/14 02:14

Ciao,
NO.
Devi aggiungere, come prima istruzione della macro, la selezione del foglio:
Codice: Seleziona tutto
Sub eliminarighevuote()
   Sheets("Foglio1").Select '<<==== Aggiunta
   With ActiveSheet.UsedRange
' ...



Ho l'impressione che la tua necessità sia un po' diversa da come l'hai esposta !!!
Vero ???
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi Maverick85 » 08/12/14 12:37

Ciao,
guarda Ricky la mia necessità è quella di gestire un database di magazzino a partire da un foglio che considero "Master".
Mi spiego meglio:
il foglio principale per la gestione dati è organizzato in maniera tale che delle caselle combinate mi controllino la "disponibilità"
e la non "disponibilità" di un prodotto. In funzione di questa condizione, nel foglio di interesse(che sarà spedito al cliente), attraverso una semplice funzione "se" ripropongo gli oggetti effettivamente pronti alla vendita.
Ovviamente all'interno dell'elenco ho delle righe vuote che devo compattare per rendere il foglio presentabile ad un esterno.
Per questo motivo mi serviva una "macro" che mi permettesse di andare veloce.

C'è un problema però: la funzione va alla grande, ma all'interno del foglio sono presenti alcune righe di intestazione, esempio scemo...:
Immagine
Quando applico la macro, le righe compattate "cancellano" le righe di intestazione.
Ecco.Tutto qua.
Grazie mille per la disponibilità
Maverick85
Newbie
 
Post: 6
Iscritto il: 07/12/14 15:41

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi ricky53 » 08/12/14 21:29

Ciao,
la colonna "A" può essere utilizzata con colonna sulla quale verificare mediante un controllo:
se la cella "A.." è vuota allora la riga si può cancellare
altrimenti
è da lasciare?

Se "SI" allora modificando il codice rimuoveresti l'anomalia che hai esposto.

Attendo una tua risposta e poi modificheremo il codice.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi Maverick85 » 09/12/14 13:26

Si si può fare!
La colonna A può funzionare da criterio!!
Il cancellamento delle righe, manterrebbe cmq le intestazioni sopra, Rick?!
Maverick85
Newbie
 
Post: 6
Iscritto il: 07/12/14 15:41

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi ricky53 » 09/12/14 13:27

Ciao,
SI!
Appena posso ti invio il codice che cancella le righe in base a quanto contenuto nella colonna "A".
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi Maverick85 » 09/12/14 13:28

Fai tranquillo!
Ci mancherebbe! :)
Maverick85
Newbie
 
Post: 6
Iscritto il: 07/12/14 15:41

Re: [Excel] Riferimento assoluto cancella righe vuote Vba

Postdi ricky53 » 09/12/14 13:40

Ciao,

prova questo codice
Codice: Seleziona tutto
Option Explicit

Sub Elimina_righe_vuote()
    Dim UR As Long, I As Long, Cancellate As Long
   
    Cancellate = 0
    UR = Range("A" & Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False
    For I = UR To 2 Step -1
        If Cells(I, "A") = "" Then
            Rows(I).Delete
            Cancellate = Cancellate + 1
        End If
    Next I
    Application.ScreenUpdating = True
    MsgBox "Sono state cancellate  '" & Cancellate & "'  righe", vbInformation
End Sub


Se il tuo foglio ha molte celle con formule potrebbe risultare lenta ... in caso faremo una modifica.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Riferimento assoluto cancella righe vuote Vba":


Chi c’è in linea

Visitano il forum: tex willer e 9 ospiti