Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Come evitare righe 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

Come evitare righe vuote.

Postdi Gianca532011 » 24/02/19 22:22

Non so se il titolo rende l'idea ma ho questo problema : in una tabella con scadenze varie talvolta, ad operazione conclusa, con una macro cancello parte del resto, senza eliminare la riga . Quindi mi restano righe vuote eccetto le colonne B e I che contengono formule.
Ora per evitare di avere dei "buchi" vedi sotto, sto arrabattando un codice che : mi trova la prima riga vuota e l'ultima piena dal basso, quindi "dovrebbe" prendere quest'ultima riga (C:H) e spostarla nella riga vuota sopra identificata. E qui mi sono perso.
Ecco il codice , che non dà errore, ma sicuramente ci sono capre e cavoli mescolati che non non si troveranno mai ( tipo long e range )
Un sentito grazie a chi vorrà insegnarmi come risolvere la cosa . Una volta tanto questo costrutto è farina del mio sacco, ecco perchè non funzia :D

Codice: Seleziona tutto
Sub aggiungiR()
    Dim sh As Worksheet
    Dim nUp, mDn  As Long
    Dim Rng As Range
    Dim WorkRng As Range
   
    Set sh = Sheets("Scadenze")
    'sh.Unprotect
   
    Application.ScreenUpdating = False
     On Error Resume Next
       Set WorkRng = Range("C10:C28")
        For Each Rng In WorkRng
        If Rng.Value = "" Then
           MsgBox "No Value, in " & Rng.Address
          'ElseIf Rng.Value <> "" Then
          GoTo xit
         End If
    Next
 
xit:
   With sh
       mDn = WorkRng.End(xlDown).Row + 1   ' trova il numero di riga della prima vuota
       nUp = Cells(WorkRng.Rows.Count, 4).End(xlUp).Row   ' trova il n.di riga  - prima piena - partendo da sotto,da inizio tabella
   
        If Rng.Address = mDn Then 'solo per conferma
         .Rows(nUp).Address.entire.Row.Copy
         .Rows(mDn).PasteSpecial xlPasteFormulas 'copia sotto una riga vuota con formule
         ElseIf Rng.Address <> mDn Then
         MsgBox " C'è qualcosa che non va !"
                 End If
    End With
    'sh.Protect
    Application.ScreenUpdating = True
    Set Rng = Nothing
End Sub


e qui l'immagine
http://www.filedropper.com/tabscad
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 234
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: Come evitare righe vuote.

Postdi Gianca532011 » 25/02/19 12:02

Come non detto, mi sono perso nel solito bicchiere d'acqua... :lol:
Qui il codice funzionante :
Codice: Seleziona tutto
Sub aggiungiR()
    Dim sh As Worksheet
    Dim nUp, nDn  As Long
    Dim Rng As Range
    Dim WorkRng As Range
   
    Set sh = Sheets("Scadenze")
    'sh.Unprotect
   
    Application.ScreenUpdating = False
     On Error Resume Next
       Set WorkRng = Range("C10:C28")
        For Each Rng In WorkRng
        If Rng.Value = "" Then
           MsgBox "Riga vuota in " & Rng.Address
          'ElseIf Rng.Value <> "" Then
          GoTo xit
         End If
    Next
 
xit:
   With sh
       nDn = WorkRng.End(xlDown).Row    ' trova il numero di riga della prima vuota
       nUp = Cells(WorkRng.Rows.Count, 3).End(xlUp).Row   ' trova il n.di riga  - prima piena - partendo da sotto,da inizio tabella
     
     If nUp = nDn Then ' non ci sono righe vuote salta alla fine
 Exit Sub
     Else
   Range(Cells(nUp, 3), Cells(nUp, 8)).Copy
   Range(Cells(nDn, 3), Cells(nDn, 8)).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False
     Application.CutCopyMode = False
        Range(Cells(nUp, 3), Cells(nUp, 8)).ClearContents
         Range(Cells(nUp, 3), Cells(nUp, 8)).Interior.ColorIndex = xlNone
       End If
    End With

    Application.ScreenUpdating = True
    Set Rng = Nothing
        'sh.Protect
End Sub
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 234
Iscritto il: 27/05/11 10:18

Re: Come evitare righe vuote.

Postdi Anthony47 » 25/02/19 12:07

Ma non basta ordinare la tabella ad esempio per la data? Questo ti portera' in coda tutte le righe non compilate...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16625
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come evitare righe vuote.

Postdi Gianca532011 » 25/02/19 14:52

Ciao Anthony,
ci avevo provato con una macro ordina, ma non ha funzionato a dovere per via della riga vuota. non ho provato con l'ordinamento di excel. Adesso ci provo .
grazie .
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 234
Iscritto il: 27/05/11 10:18

Re: Come evitare righe vuote.

Postdi Gianca532011 » 25/02/19 14:58

Provato, funziona perfettamente ANCHE con righe vuote. Non C'è alcuna emoticon che possa definire quanto sono ... "bischero" , ed è l'aggettivo meno insultante che ho rivolto a me stesso, pensa a quelli ++++
Ciao
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 234
Iscritto il: 27/05/11 10:18

Re: Come evitare righe vuote.

Postdi Anthony47 » 25/02/19 16:10

:-? :?: :evil: :?: :oops: :?:
A volte la via piu' semplice e' l'ultima a essere notata...
Avatar utente
Anthony47
Moderatore
 
Post: 16625
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Come evitare righe vuote.":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti