Condividi:        

Selezione dati e creazione subset

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

Selezione dati e creazione subset

Postdi JOHNNYC » 02/08/11 13:42

Ciao a tutti,
prima di rimanere in ferie per qualche giorno (diventerò papà :D ) ho un lavoretto da finire... (tanto per cambiare :) )
Ho un file excell nel quale sono elencati una serie di dati ed è presente un codice identificativo, specifico per ogni cliente, nella colonna C (in questo caso l'identificativo è un numero, ma potrebbe capitare, per altre lavorazioni, anche una stringa di testo); il problema è che, per ogni cliente, ci possono essere più righe. Ciò premesso ho necessità di creare una macro che generi un subset di dati in cui sia riportata solo la prima riga per ogni cliente in modo tale da eliminare tutte le altre. Avevo visto in passato un topic al riguardo ma non riesco a trovarlo. Potete aiutarmi o suggerirmi una macro al riguardo?
Grazie come sempre per i preziosi suggerimenti.
JOHNNYC
Utente Junior
 
Post: 33
Iscritto il: 06/07/10 10:59
Località: Mantova

Sponsor
 

Re: Selezione dati e creazione subset

Postdi Flash30005 » 02/08/11 14:57

Auguroni per l'imminente evento :)

Non sapendo se volevi eliminare le righe su quel foglio oppure avere solo le prime righe in un altro foglio in maniera da mantenere i dati originali.
Ho considerato, quindi che hai i dati originali nel Foglio1
e le righe senza ripetizioni di Cliente nel Foglio2.
Se così
usa questa macro
Codice: Seleziona tutto
Sub Copia()
Dim WS1, WS2 As Worksheet
Set WS1 = Worksheets("Foglio1") '<<<< assegnare qui il nome effettivo del foglio origine
Set WS2 = Worksheets("Foglio2")  '<<<< assegnare qui il nome effettivo del foglio destinazione
UR1 = WS1.Range("C" & Rows.Count).End(xlUp).Row
If UR1 < 2 Then UR1 = 2
UR2 = WS1.Range("C" & Rows.Count).End(xlUp).Row
If UR2 < 2 Then UR2 = 2
For RR1 = 2 To UR1
Esiste = 0
    Cli1 = WS1.Range("C" & RR1).Value
    For RR2 = 2 To UR2
        Cli2 = WS2.Range("C" & RR2).Value
        If Cli1 = Cli2 Then Esiste = 1
    Next RR2
    If Esiste = 0 Then WS1.Range("A" & RR1 & ":IV" & RR1).Copy Destination:=WS2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Cli:
Next RR1
End Sub


Se vuoi sostituire il foglio dati originali puoi farlo manualmente selezionando tutte le celle del foglio2 e incollarle nel foglio1
Volendo anche automaticamente attraverso un breve codice di macro

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Selezione dati e creazione subset

Postdi JOHNNYC » 03/08/11 15:57

Come sempre, fantastico: l'efficienza e la perfezione... un dono di pochi!!! ;)
Grazie.
JOHNNYC
Utente Junior
 
Post: 33
Iscritto il: 06/07/10 10:59
Località: Mantova

Re: Selezione dati e creazione subset

Postdi Flash30005 » 04/08/11 03:22

:)
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Selezione dati e creazione subset":


Chi c’è in linea

Visitano il forum: Nessuno e 57 ospiti