Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

copiare righe da un foglio ad un altro con condizioni

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

copiare righe da un foglio ad un altro con condizioni

Postdi tecnuf » 08/01/16 19:32

Salve sto cercando si creare una macro per copiare alcune righe da un foglio ad un altro.Queste righe da copiare presentano in una colonna delle date;le righe da copiare sono solo quelle percui tale data è meno recente del giorno oggi.
Ho provato col registratore di macro:


Sub scaduti()
'
' scaduti Macro
'

'
Sheets("DA ARRIVARE").Select
Columns("A:J").Select
Selection.Copy
Sheets("SCADUTI").Select
Columns("A:J").Select
ActiveSheet.Paste
Range("G18").Select
Application.CutCopyMode = False
Columns("A:J").Select
ActiveWorkbook.Worksheets("SCADUTI").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("SCADUTI").Sort.SortFields.Add Key:=Range("J2:J236" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("SCADUTI").Sort.SortFields.Add Key:=Range("H2:H236" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("SCADUTI").Sort.SortFields.Add Key:=Range("F2:F236" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("SCADUTI").Sort
.SetRange Range("A1:J236")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub

A questo punto devo eliminare tutte le righe per le quali il valore della cella J (una data) è maggiore del valore
della data di oggi
Come posso fare ad aggiungere questa condizione?
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Sponsor
 

Re: copiare righe da un foglio ad un altro con condizioni

Postdi Anthony47 » 08/01/16 23:36

Prova ad accodare al tuo codice, tra End With e End Sub, queste righe:
Codice: Seleziona tutto
myMatch = Application.Match(CLng(Int(Now)), Range("J:J"))
If Not IsError(myMatch) Then
    Cells(myMatch, 1).Offset(1, 0).Resize(10000, 10).ClearContents
End If

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

Re: copiare righe da un foglio ad un altro con condizioni

Postdi tecnuf » 09/01/16 07:25

grazie tutto funziona perfettamente
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Re: copiare righe da un foglio ad un altro con condizioni

Postdi tecnuf » 10/01/16 23:31

Anthony, ho riprovata la tua macro e mi succede questo, riallego la macro

myMatch = Application.Match(CLng(Int(Now)), Range("J:J"))
If Not IsError(myMatch) Then
Cells(myMatch, 1).Offset(1, 0).Resize(10000, 10).ClearContents
End If

Funziona quando ho dei valori la cui data nella colonna J sono posteriori alla data di oggi.
(ossia cancella tutte le righe in cui la data nella colonna j è posteriore ad oggi),la cosa
strana è che se non esiste nessun valore con la data antecedente alla data di oggi, non mi cancella
più le righe con le date posteriori ad oggi)Teoricamente , se ho tutte date posteriori ad oggi , dovrebbe
cancellare tutte le righe, invece non cancella niente.

Probabilmnte andrebbe inserto una condizion, di canncellare tutte le righe se tutti i valori
(in JJ) sono posteriori alla data di oggi, ma non so come si fa!
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Re: copiare righe da un foglio ad un altro con condizioni

Postdi Anthony47 » 11/01/16 01:55

Eh gia'...
Sostituisci quella parte con
Codice: Seleziona tutto
    myMatch = Application.Match(CLng(Int(Now) ), Range("J:J"))
    If Not IsError(myMatch) Then
        Cells(myMatch, 1).Offset(1, 0).Resize(10000, 10).ClearContents
    Else
        Cells(2, 1).Resize(10000, 10).ClearContents
    End If
(cioe' ampliala con la condizione "else")

Presuppone che la riga1 contenga le intestazioni

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

Re: copiare righe da un foglio ad un altro con condizioni

Postdi tecnuf » 11/01/16 08:20

ora va da Dio grazie ancora
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22


Torna a Applicazioni Office Windows


Topic correlati a "copiare righe da un foglio ad un altro con condizioni":


Chi c’è in linea

Visitano il forum: alfrimpa, enrico43 e 4 ospiti