Condividi:        

Confronto con eliminazione numeri in due range

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

Confronto con eliminazione numeri in due range

Postdi ikwae » 01/01/18 18:26

Ciao a tutti e Auguri di Buon Anno.

questo è il mio primo post, anche se 80% del tempo che passo in rete, sono
sull’archivio del vostro Forum a leggere e scaricare le soluzioni che proponete.
Complimenti a tutto il Forum.

Scrivo per chiedere aiuto su una macro che deve compiere delle azioni.
Ho scritto qualche riga di codice per una parte del range da controllare
anche se è funzionante ma è incompleta e in alcuni casi mi da errore.
Quindi mi permetto di chiedere il vostro prezioso aiuto.

Descrivo brevemente l’aiuto che cerco nel range P4:T20 ci sono
dei numeri e nelle colonne X2: Y(end) altri numeri e confrontandoli
si devono eliminare i numeri duplicati sulle colonne facendo
scalare le celle(non la riga) solo le celle. Togliere lo 0(zero)
dalla colonna Z e i due numeri sulla sx dello 0(zero).
Se possibile estendere il confronto ad altri due range ma se
Non è possibile mi accontento di un solo range descritto sopra.

In allegato un foglio Sviluppo che da indicazioni sulla
Macro al solo scopo di non far perdere tempo a chi
mi aiuta di andarsi a trovare i riferimenti dei vari range
e poi un’altro foglio Fine su cosa si vuole ottenere.

Il codice è sul foglio Sviluppo penso che ”corra” di più.

Ringraziando anticipatamente tutti coloro che mi aiuteranno.

73 ikwae
https://www.dropbox.com/s/c4402vegzg04x ... .xlsm?dl=1
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14

Sponsor
 

Re: Confronto con eliminazione numeri in due range

Postdi Anthony47 » 02/01/18 20:04

Ispirandomi alla tua macro ti propongo questa:
Codice: Seleziona tutto
Sub ik_W()
Dim Calc0 As Long
Dim ZP, ZV, CL As Range
Dim Tabellone As Range, Verifica As Range
Dim I As Long, J As Long, vCol As Long
Dim T As Single
'
Sheets("Sviluppo").Select
'DISATTIVO LE APPLICATION PER VELOCIZZARE LA MACRO
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    xlCal = .Calculation
    .Calculation = xlCalculationManual
End With
T = Timer
Set Tabellone = Range("P4:T20")
'
For J = 0 To 2
    Set Verifica = Range("X2")
    vCol = Verifica.Column + J * 5
    Set CL = Cells(10000, vCol)
    For I = 2 To Verifica.Offset(10000, J * 5).End(xlUp).Row
        If Application.WorksheetFunction.CountIf(Tabellone, Cells(I, vCol)) > 0 Then
            Set CL = Application.Union(CL, Cells(I, vCol).Resize(1, 3))
        ElseIf Application.WorksheetFunction.CountIf(Tabellone, Cells(I, vCol + 1)) > 0 Then
            Set CL = Application.Union(CL, Cells(I, vCol).Resize(1, 3))
        ElseIf Cells(I, vCol + 2) = 0 Then
            Set CL = Application.Union(CL, Cells(I, vCol).Resize(1, 3))
        End If
    Next I
    CL.Delete xlShiftUp
Next J
'RIATTIVO LE APPLICATION
With Application
    .Calculation = xlCal
    .EnableEvents = True
    .ScreenUpdating = True
End With
'
MsgBox "Completato in (sec): " & Format(Timer - T, "0.00"), vbInformation
Range("W1").Select
'
Set Tabellone = Nothing
Set Verifica = Nothing
Set CL = Nothing
End Sub

Va messa in un "Modulo standard" del vba (es Modulo1), non nel "modulo di classe di un Foglio di lavoro).

Lavora "ambetre" i gruppi di dati.

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Confronto con eliminazione numeri in due range

Postdi ikwae » 02/01/18 20:39

Grazie la provo immediatamente. 73 ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14

Re: Confronto con eliminazione numeri in due range

Postdi ikwae » 02/01/18 21:31

Sicuro e certo che doveva essere così dopo aver letto decine e decine di post questa è la certezza.
E' super perfetta la macro fa quello che ho chiesto in tutte le sue parti. Complimenti .
Ho fatto alcune prove su range di 3.524 righe e ha impiegato 142,11 secondi .Complimenti ancora e
ti ringrazio del tuo gradito tempo che mi hai dedicato... Rinnovo gli Auguri di Buon Anno .
Adesso trovo come fare a mettere risolto.
Cordialmente ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14


Torna a Applicazioni Office Windows


Topic correlati a "Confronto con eliminazione numeri in due range":


Chi c’è in linea

Visitano il forum: Marius44 e 44 ospiti