Condividi:        

Excel Elimina celle vuote e numeri doppioni

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 Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 12:34

Ciao a tutti,
come da titolo,ho un problema ad eliminare sia le celle vuote che i numeri doppioni,
Esempio ho 10 righe di 80 colonne,Range N8:CO17 in ogni riga ci sono valori di una singola decina,
dovrei fare in modo di eliminare le celle vuote tra i numeri della riga ed eliminare i numeri doppioni,
il risultato deve essere in C8:L8 cosi come stanno in riga cioè non ordinati,
questo per tutte le 10 righe.
posto una foto
ho messo come esempio solo 2 righe.



Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Sponsor
 

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 15:10

Ho risolto il problema delle celle vuote.
Devo solo sistemare i doppioni,
stò leggendo un vecchio topic "Eliminare numeri doppioni",al momento non riesco a modificare la macro.
intanto ci riprovo.
in attesa di un aiuto.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 15:32

Allego la foto di come deve essere



Immagine

Uploaded with ImageShack.us
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi pietrol » 27/07/10 16:30

Ciao statix
se vuoi provare questa macro, vedi se fa quello che ti serve.
Mi sono accorto solo dopo averla fatta che non mi è chiaro una cosa: nelle immagini che posti c'è una zona di partenza e una di arrivo. Io ho dato per scontato che fosse solo per spiegare cosa vuoi ottenere e che in effetti i numeri si devono semplicemente raggruppare verso sx (senza doppioni) senza spostarli tutti in un'altra zona.
Se ho capito male fallo sapere che modfichiamo la macro.

Codice: Seleziona tutto
 Sub Raggruppa()
    PrimaCol = 2       'Varibili che identificano la zona con i numeri da raggruppare
    UltimaCol = 16     'correggere questi valori per adattarli ai dati effettivi
    PrimaRig = 6       '
    UltimaRig = 7      '
    For rig = PrimaRig To UltimaRig
        colcorrente = PrimaCol
        For col = PrimaCol To UltimaCol
            If Cells(rig, col).Value <> "" Then
                If col < UltimaCol Then
                    With ActiveSheet.Range(Cells(rig, col + 1), Cells(rig, UltimaCol))
                        Set c = .Find(Cells(rig, col).Value, LookIn:=xlValue, lookat:=xlWhole)
                        Do While Not c Is Nothing
                            Range(c.Address).ClearContents
                            Set c = .FindNext(c)
                        Loop
                    End With
                End If
                If col > colcorrente Then
                    Cells(rig, colcorrente) = Cells(rig, col)
                    Cells(rig, col) = ""
                End If
                colcorrente = colcorrente + 1
            End If
        Next col
    Next rig
End Sub


ciao
pietrol
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 15:34

Re: Excel Elimina celle vuote e numeri doppioni

Postdi maxmula » 27/07/10 17:03

Causa "interruzione volante" :) posto in ritardo una soluzione analoga a quella di pietrol, solo fatto interamente da VBA in modo un po' più semplice (forse... ma è solo una mia opinione).

Codice: Seleziona tutto
R_INIZIO = 8
    N_RIGHE = 10
    COL_INIZIO = 20
    COL_FINE = 100
    COL_DEST_INIZIO = 8
    COL_DEST_FINE = 18
    NUMERI_TROVATI = 0
    Dim LISTA_NUMERI(1 To 80)
   
    R_FINE = R_INIZIO + N_RIGHE
    For R = R_INIZIO To R_FINE
        'legge i numeri, saltando i duplicati
        For c = COL_INIZIO To COL_FINE
            NUMERO = Cells(R, c).Value
            If NUMERO <> "" Then
                For Q = 1 To NUMERI_TROVATI
                    If LISTA_NUMERI(Q) = NUMERO Then GoTo PROSSIMO_NUMERO
                Next
                NUMERI_TROVATI = NUMERI_TROVATI + 1
                LISTA_NUMERI(NUMERI_TROVATI) = NUMERO
            End If
     
PROSSIMO_NUMERO:
        Next
        'scrive i numeri trovati nelle celle destinazione
        COL_DEST = 1
        For M = 1 To NUMERI_TROVATI
            Cells(R, COL_DEST_INIZIO + M - 1).Value = LISTA_NUMERI(M)
        Next
     Next



Come puoi vedere, la strada è questa ;)

Ciao!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 964
Iscritto il: 18/08/04 19:28
Località: N44°59'45 E09°00'34

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 17:25

ciao maxmula,
ho provato la tua macro,
funziona solo sulla prima riga,poi
ritrascrive di nuovo su tutte le righe,
come riferimenti vedi ultima immagine postata
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 17:27

Ecco cosa succede

Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi maxmula » 27/07/10 17:43

Ecco cosa succede quando t'interrompono mentre stai programmando.

Dovrebbe bastare una piccola modifica:
Codice: Seleziona tutto
        R_INIZIO = 8
        N_RIGHE = 10
        COL_INIZIO = 20
        COL_FINE = 100
        COL_DEST_INIZIO = 8
        COL_DEST_FINE = 18
       
        Dim LISTA_NUMERI()
       
        R_FINE = R_INIZIO + N_RIGHE
        For R = R_INIZIO To R_FINE
            NUMERI_TROVATI = 0
            ReDim LISTA_NUMERI(1 To 80)
            'legge i numeri, saltando i duplicati
            For c = COL_INIZIO To COL_FINE
                NUMERO = Cells(R, c).Value
                If NUMERO <> "" Then
                    For Q = 1 To NUMERI_TROVATI
                        If LISTA_NUMERI(Q) = NUMERO Then GoTo PROSSIMO_NUMERO
                    Next
                    NUMERI_TROVATI = NUMERI_TROVATI + 1
                    LISTA_NUMERI(NUMERI_TROVATI) = NUMERO
                End If
         
PROSSIMO_NUMERO:
            Next
            'scrive i numeri trovati nelle celle destinazione
            COL_DEST = 1
            For M = 1 To NUMERI_TROVATI
                Cells(R, COL_DEST_INIZIO + M - 1).Value = LISTA_NUMERI(M)
            Next
         Next




Dimenticavo di reinizializzare l'array dei valori trovati. Così ad ogni giro diventava sempre + lungo!

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 964
Iscritto il: 18/08/04 19:28
Località: N44°59'45 E09°00'34

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 17:49

Ciao maxmula,
provata ,va tutto ok
per eventuali modifiche di range
è da modificare solo quì
Codice: Seleziona tutto
R_INIZIO = 8
        N_RIGHE = 10
        COL_INIZIO = 20
        COL_FINE = 100
        COL_DEST_INIZIO = 8
        COL_DEST_FINE = 18


grazie
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi Statix » 27/07/10 18:02

Ciao maxmula,
scusa se ti disturbo ancora,
volendo fare le modifiche per questi riferimenti:
mettere i dati senza doppioni in C29:L38
I dati delle celle da eliminare i doppioni C40:BZ49
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1055
Iscritto il: 12/05/06 22:55
Località: Provincia di Caserta

Re: Excel Elimina celle vuote e numeri doppioni

Postdi maxmula » 27/07/10 19:48

Puoi impostare le variabili R_INIZIO, N_RIGHE, COL_INIZIO E COL_FINE A SECONDA DI QUELLO CHE TI SERVE!

Per convertire le lettere delle colonne in numeri, ti basta contarle, iniziando da 1... oppure impostare Excel in modo che visualizzi i riferimenti in formato "R1C1".
Trovi l'opzione in menu Opzioni/Generale (è la prima checkbox in alto a sinistra)

Nel tuo caso:
Codice: Seleziona tutto
R_INIZIO = 29
N_RIGHE = 10
C_INIZIO = 3
C_FINE = 12


...credo (è meglio se verifichi di persona)

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 964
Iscritto il: 18/08/04 19:28
Località: N44°59'45 E09°00'34


Torna a Applicazioni Office Windows


Topic correlati a "Excel Elimina celle vuote e numeri doppioni":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti