Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[vba2003]:Eliminare gruppo di righe uguali copiando i valori

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

[vba2003]:Eliminare gruppo di righe uguali copiando i valori

Postdi karug64 » 21/11/11 23:34

Salve a tutti.
Sul mio foglio1, alla fine di tutte le elaborazioni, avrei la
necessita' di cancellare le righe che hanno il valore in "A" uguale,
ma copiando il contenuto della cella B nell'unica che resta.
Mi spiego con un esempio:

A, B

111, io
111, tu
111, noi
111, tu
111, io
111, loro

222, tu
222, io
222, tu

333, noi
333, noi

alla fine dell'eleborazione dovrei avere solo 3 righe cosi' composte:

111,io,tu,noi,loro
222,io,tu
333,noi

Preciso che i valori presenti nella colonna B possono essere solo 4
tipi.
Non interessa se i valori "io,tu,noi,loro" siano messi in una sola
cella come stringa concatenata, oppure su singole celle adiacenti.
Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi Flash30005 » 22/11/11 08:58

Prova questa macro

Codice: Seleziona tutto
Sub TraslaB()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
M_Val1 = ""
For RR1 = 1 To UR1
TR = 0
    Val1 = Ws1.Range("A" & RR1).Value
    Val2 = Ws1.Range("B" & RR1).Value
    If M_Val1 = Val1 Then
        UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
        UC2 = Ws2.Cells(UR2, 100).End(xlToLeft).Column + 1
        For CC2 = 2 To UC2 - 1
            If Ws2.Cells(UR2, CC2).Value = Val2 Then TR = 1
        Next CC2
        If TR = 0 Then
            Ws2.Cells(UR2, 1).Value = Val1
            Ws2.Cells(UR2, UC2).Value = Val2
        End If
    Else
        UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
        Ws2.Cells(UR2, 1).Value = Val1
        Ws2.Cells(UR2, 2).Value = Val2
        M_Val1 = Val1
End If
Next RR1
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi karug64 » 22/11/11 13:41

Risolto.
Grazie infinite.
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi karug64 » 29/11/11 16:58

Salve. Riprendo questo post (di cui sino l'autore) perché avrei bisogno che la stessa routine non eliminasse le righe uguali ma si limitasse a scrivere sulla prima riga duplicata tutti i valori. Nell'esempio avrei 222,tu,io
222,tu

333,noi

111,io,tu,noi,loro
111,tu
111,noi
111,tu
111,io
111,loro

Grazie
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi Flash30005 » 29/11/11 21:48

Ma stai giocando o cosa?

Prego leggere qui
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi karug64 » 29/11/11 22:43

Flash30005 ha scritto:Ma stai giocando o cosa?

Prego leggere qui


Ciao e scusami in anticipo, ma non e' mia intenzione far perdere tempo a nessuno.
Il problema e' che, oggi, testando il prg con dei colleghi ci siamo accorti che quella routine (che fa il suo lavoro egregiamente) deve essere modificata.
Ti spiego:

Nel programma io crea un elenco , poi richiamo la tua routine, ma ho un problema.
Questa elimina tutti i doppioni calcolandoli solo su un campo: io dovrei eliminarli solo se DUE campi sono uguali.

111,333,aa
111,333,bb
111,444,cc
111,333,dd

in questo caso, la routine attuale mi produce (cosi' come da mia errata antecedente analisi)

111,aa,bb,cc,dd

io invece dovrei avere:

111,333,aa,bb,dd
111,444,cc

La mia richiesta, nasceva quindi dal fatto che se non togliessi i duplicati, potrei passare l'elenco da un'altra routine che eliminerebbe solo le righe con due campi uguali.

Scusandomi ancora per il disguido confido ancora una volta sul vostro aiuto.
Grazie
Quindi, avevo pensato di modificare questa,
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi Flash30005 » 29/11/11 23:16

Secondo te quello che hai chiesto qui: ore 16:58
karug64 ha scritto:Salve. Riprendo questo post (di cui sino l'autore) perché avrei bisogno che la stessa routine non eliminasse le righe uguali ma si limitasse a scrivere sulla prima riga duplicata tutti i valori. Nell'esempio avrei 222,tu,io
222,tu

333,noi

111,io,tu,noi,loro
111,tu
111,noi
111,tu
111,io
111,loro



e quello che chiedi qui ore 22:43
karug64 ha scritto:
Nel programma io crea un elenco , poi richiamo la tua routine, ma ho un problema.
Questa elimina tutti i doppioni calcolandoli solo su un campo: io dovrei eliminarli solo se DUE campi sono uguali.

111,333,aa
111,333,bb
111,444,cc
111,333,dd

in questo caso, la routine attuale mi produce (cosi' come da mia errata antecedente analisi)

111,aa,bb,cc,dd

io invece dovrei avere:

111,333,aa,bb,dd
111,444,cc



E' la stessa cosa?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [vba2003]:Eliminare gruppo di righe uguali copiando i va

Postdi Anthony47 » 29/11/11 23:20

111,333,aa
111,333,bb
111,444,cc
111,333,dd
Se parliamo di col A, B e C allora puoi creare su Foglio2 un elenco che in col A contiene Foglio1!A1&","&Foglio1!B1 e in col B Foglio1!C1.
Su questi dati, probabilmente dopo aver trasformato i risultati in valori, fai girare la macro.
Infine, sul risultato, inserisci una colonna vuota tra la A e la B e sulla col A fai Testo in colonna usando il separatore "virgola".
Tutto questo puo' facilmente essere integrato in una macro autoregistrata.

Guarda anche il messaggio di Flash sopra.
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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[vba2003]:Eliminare gruppo di righe uguali copiando i valori":


Chi c’è in linea

Visitano il forum: saxas e 10 ospiti