Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel 2013 - associazione tra 2 colonne

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 2013 - associazione tra 2 colonne

Postdi femon » 25/02/18 16:12

Salve a tutti, ho questo problema con excel:
Ho una colonna A con un nome per ogni riga; Ho una colonna B con una serie di date;
Avrei bisogno di una macro che associasse ad ogni nome della colonna A tutte le date della colonna B.
Il tutto in 2 colonne: Nella colonna A i nomi che vengono ripetuti più volte a seconda di quante date ci sono nella colonna B.
esempio:
inizio:
andrea 13/07/2018
paolo 27/07/2018
mario 31/08/2018

risultato:
andrea 13/07/2018
andrea 27/07/2018
andrea 31/08/2018
paolo 13/07/2018
paolo 27/07/2018
paolo 31/08/2018
mario 13/07/2018
mario 27/07/2018
mario 31/08/2018

Logicamente non sono a conoscenza di quanti sono i nomi o le date in quanto possono variare.
Grazie a chi mi può aiutare.
Federico.
femon
Utente Junior
 
Post: 83
Iscritto il: 12/03/14 18:51

Sponsor
 

Re: Excel 2013 - associazione tra 2 colonne

Postdi Anthony47 » 26/02/18 00:30

Allora supponiamo che i dati di partenza siano in Foglio3, da A2:B2 verso il basso, e che il riepilogo lo vogliamo creare in Foglio4.

Puoi allora usare una macro come questa:
Codice: Seleziona tutto
Sub cioppa()
Dim I As Long, DC As Long, dSh As Worksheet, myNext As Long
'
Set dSh = Sheets("Foglio4")             '<<< Il foglio dove si creera' il riepilogo
Sheets("Foglio3").Select                '<<< Il foglio con i dati di partenza
'
dSh.Range("A2:B50000").ClearContents    '!!! VEDI TESTO
I = 1
DC = Application.WorksheetFunction.CountA(Range("B2:B1000"))
Do
DoEvents
    I = I + 1
    If Cells(I, 1) = "" Then Exit Do
    myNext = dSh.Cells(Rows.Count, 1).End(xlUp).Row + 1
    dSh.Cells(myNext, 1).Resize(DC, 1) = Cells(I, 1)
    dSh.Cells(myNext, 2).Resize(DC, 1) = Range("B2").Resize(DC, 1).Value
Loop
MsgBox ("Completato...")
End Sub
Le 2 istruzioni marcate <<< vanno impostete come da commento
Le colonne A:B del foglio del riepilogo verranno AZZERATE senza preavviso all'avvio della macro; se questo non va bene (es si vuole accodare il nuovo elenco a dati preesistenti) allora va eliminata la riga marcata !!!

Va messa in un Modulo standard del vba (es Modulo1) e lanciata all'occorrenza.

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

Re: Excel 2013 - associazione tra 2 colonne

Postdi femon » 26/02/18 12:18

Perfetto Anthony!!!
Funziona tutto a meraviglia.
(Non avevo dubbi)!
Grazie.
Federico.
femon
Utente Junior
 
Post: 83
Iscritto il: 12/03/14 18:51


Torna a Applicazioni Office Windows


Topic correlati a "Excel 2013 - associazione tra 2 colonne":

Dimensioni celle excel
Autore: nippon
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti