Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Eliminare specifiche righe di DATE

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

Eliminare specifiche righe di DATE

Postdi Alessandro999 » 11/02/12 17:18

Salve , stavo consultando una serie di dati su Excel in compagnia dell' immancabile neve e della bora :) ( sembra di essere nel film The day after tomorrow ) e mi sono reso conto di quanto tempo spreco per eliminare alcune righe e mi chiedevo se è possibile eseguire tale operazione più rapidamente.

Cerco di essere il più chiaro possibile :

In pratica sulla colonna A del foglio di lavoro ci sono una serie di date estese con accanto nelle colonne adiacenti altri dati di pertinenza , mi domando se è possibile automaticamente eliminare alcune intere righe "orizzontali".

Ad esempio diciamo di aver bisogno di eliminare tutte le domeniche , in questo caso ho bisogno di eliminare tutte le righe che contengono come giorno della settimana la domenica ,in maniera che dopo il sabato la linea successiva riprenda con il lunedì , devo cancellare la riga intera perchè mi serve di eliminare anche tutti i dati che ci sono nelle colonne a fianco alla domenica.

Attualmente faccio tutto questo manualmente e su serie storiche anche di 50-60 anni è una noia mortale oltre al molto tempo che richiede , nel esempio citato ho usato la domenica ma in altri casi potrebbe essere il sabato (o altri giorni dipende ) quindi dovrei cancellare tutti i sabati , spero che si sia capito :oops: ,Non devo filtrarle , devo proprio eliminare del tutto alcune righe. perchè poi devo inserire altri dati che siano cronologicamente in linea con quelli della colonna A e rappresentare il tutto tramite grafico.

Allego un immagine in modo si capisca meglio ( ecco in questo caso io elimino manualmente tutte quelle righe che ho evidenziato in rosso per un range esteso di anni , mi chiedo se c'è una formula o una macro che possa fare questo ? ) mi risparmierebbe un sacco di tempo.

Immagine


GRAZIE MILLE IN ANTICIPO PER L'EVENTUALE ATTENZIONE
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Sponsor
 

Re: Eliminare specifiche righe di DATE

Postdi CANAPONE » 11/02/12 17:53

Ciao,

potresti usare una colonna di servizio

Codice: Seleziona tutto
=giorno.settimana(A2)


Filtri gli uno ( le domeniche) e cancelli tutto con elimina righe.

Credo che con il Vba - che non conosco- si possa fare ancora più velocemente.

Giusto per darti una prima risposta.

Saluti da Firenze
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: Eliminare specifiche righe di DATE

Postdi Alessandro999 » 11/02/12 18:17

GRAZIE CANAPONE , ho provato è funziona ;)

Se poi come dici tu c'è possibilmente la possibilità di sveltire il tutto con una macro :idea: ben venga , sono tutto orecchi se c'è qualcuno ...


nel frattempo un saluto dal Veneto

ciao
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Eliminare specifiche righe di DATE

Postdi CANAPONE » 11/02/12 18:30

Ciao,

grazie a te del cortese riscontro.

In attesa di altre soluzioni.

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: Eliminare specifiche righe di DATE

Postdi Anthony47 » 11/02/12 23:44

Secondo me col filtro suggerito da canapone hai oramai fatto tutto; un' alternativa "era" questa macro:
Codice: Seleziona tutto
Sub delwday()
wday = CInt(InputBox("GIORNO DA CANCELLARE: " & vbCrLf & "1=Lunedi'" & vbCrLf & _
     "2=Martedì" & vbCrLf & ". . . . " & vbCrLf & "6=Sabato " & vbCrLf & _
     "7=Domenica"))
For I = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If Weekday(Cells(I, 1).Value, vbMonday) = wday Then
        Cells(I, 1).EntireRow.Delete
    End If
Next I
End Sub
Chiede quale giorno cancellare e poi procede.
Da testare rigorosamente dopo aver fatto due copie di backup del file originale.

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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare specifiche righe di DATE

Postdi s1ster » 12/02/12 16:19

Aprofitto di questa discussione per presentare la mia domanda che riguarda una cosa alquanto simile.
Ho un foglio di excel che contiene, riga dopo riga, collegamenti ai dati di un altro foglio.
Nella terza colonna di ogni riga c'è un parametro variabile che vorrei fosse utilizzato per compiere una routine.
Mi spiego meglio:
Vorrei che la macro "leggesse" ogni singola riga (il numero totale dei cicli è stabilito da un'apposita cella) guardando se il valore contenuto nella 3^ colonna sia corrispondente ad un determinato valore. In caso lo fosse mi deve inserire una riga appena al disotto di quella contenente il valore suddetto facendo poi il copia/incolla della riga su quella vuota appena inserita cambiando il parametro della 3^ colonna in un diverso valore (anch'esso prestabilito).
Penso che un ciclo For Next dovrebbe essere quello che ci vuole ma sono troppo digiuno di VB per venirne fuori.
Grazie di tutto l'aiuto che potrete darmi.

Roberto
s1ster
Newbie
 
Post: 8
Iscritto il: 12/02/12 16:11

Re: Eliminare specifiche righe di DATE

Postdi Alessandro999 » 12/02/12 18:08

Anthony47 ha scritto:Secondo me col filtro suggerito da canapone hai oramai fatto tutto; un' alternativa "era" questa macro:
Codice: Seleziona tutto
Sub delwday()
wday = CInt(InputBox("GIORNO DA CANCELLARE: " & vbCrLf & "1=Lunedi'" & vbCrLf & _
     "2=Martedì" & vbCrLf & ". . . . " & vbCrLf & "6=Sabato " & vbCrLf & _
     "7=Domenica"))
For I = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If Weekday(Cells(I, 1).Value, vbMonday) = wday Then
        Cells(I, 1).EntireRow.Delete
    End If
Next I
End Sub
Chiede quale giorno cancellare e poi procede.
Da testare rigorosamente dopo aver fatto due copie di backup del file originale.

Ciao



Grazie :) Anthony con il consiglio di canapone mi sono trovato benone , ma con questa macro il tutto è davvero molto più veloce , un' ultima cosa se posso , ho notato che una volta lanciata la macro se si fa un ripensamento e si decide di non eliminare nessun giorno chiudendola premendo annulla o cliccando sulla X della finestrella restituisce un errore di run-time 13

Io purtroppo non sono in grado si sistemare l'impiccio :cry: per cortesia che modifica dovrei apportare ?

Grazie infinite per la tua eventuale risposta e pazienza !

Immagine


Immagine

ecco il debug

Immagine
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Eliminare specifiche righe di DATE

Postdi ricky53 » 12/02/12 23:06

Ciao,
prova in questo modo
Codice: Seleziona tutto
Sub delwday()
    On Error GoTo Errore
    wday = CInt(InputBox("GIORNO DA CANCELLARE: " & vbCrLf & "1=Lunedi'" & vbCrLf & _
         "2=Martedì" & vbCrLf & ". . . . " & vbCrLf & "6=Sabato " & vbCrLf & _
        "7=Domenica"))
    For I = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Weekday(Cells(I, 1).Value, vbMonday) = wday Then
            Cells(I, 1).EntireRow.Delete
        End If
    Next I
    MsgBox "Elaborazione effettuata. Sono state cancellate le righe le cui date erano corrispondenti al valore inserito"
    Exit Sub

Errore:
    MsgBox "Elaborazione non effettuata"
End Sub

Adatta il messaggio a tuo piacimento
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: Eliminare specifiche righe di DATE

Postdi Alessandro999 » 13/02/12 09:07

GRAZIE Ricky , ho appena provato la tua versione della macro ed è tutto OK :)

Ringrazio ancora anche Anthony e il metodo di Canapone per la loro disponibilità e pazienza.

Buona giornata e Buon Lavoro a tutti
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Eliminare specifiche righe di DATE

Postdi ricky53 » 13/02/12 14:25

Ciao,
grazie a te per il riscontro.

Alla prossima e ... buon proseguimento.
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: Eliminare specifiche righe di DATE

Postdi ricky53 » 13/02/12 20:36

Ciao,
ovviamente il merito, va come minimo, condiviso con Anthony che ha prodotto la macro, io l'ho implementata.
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 "Eliminare specifiche righe di DATE":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti