Condividi:        

Chi compie gli anni oggi?

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

Chi compie gli anni oggi?

Postdi ssm » 16/06/15 17:00

buongiorno chi mi puo aiutare?
ho il foglio excel A in cui c'è un elenco di persone in continuo aggiornamento dove sono riportati nome e data di nascita oltre ad altri dati che per questa cosa non hanno interesse.
Vorrei che nel foglio B ogni giorno mi venissero riportate le persone che compiono gli anni
Come posso fare?
grazie
Paola
ssm
Newbie
 
Post: 3
Iscritto il: 16/06/15 16:53

Sponsor
 

Re: Chi compie gli anni oggi?

Postdi alfrimpa » 16/06/15 17:45

Ciao Paola e benvenuta.

A prima vista direi che puoi anche risolvere con un filtro dati sempre sul foglioA?

Hai la necessità di avere i dati sul foglioB?
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Chi compie gli anni oggi?

Postdi alfrimpa » 16/06/15 18:47

Ciao Paola

Con i filtri puoi fare così:

1) Vai su Menu dati, Filtro
2)) clicca sulla tendina DATA DI NASCITA
3) Scegli Filtri per date
4) Clicca su Oggi

Oppure con questa macro

Codice: Seleziona tutto
Sub Macro1()
    Range("a1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$B$5").AutoFilter Field:=2, Criteria1:= _
        xlFilterToday, Operator:=xlFilterDynamic
    Range("a1").CurrentRegion.Copy Destination:=Worksheets("Foglio2").Range("a1")
End Sub
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Chi compie gli anni oggi?

Postdi ssm » 16/06/15 19:12

grazie Alfrimpa,
con i filtri lo so fare, mi sarebbe piaciuto riportare i dati in un altro foglio. Il primo foglio non lo uso quotidianamente, mentre l'altro si perché contiene una sorta di to do list, e quindi averli li immediati mi verrebbe "comodo".
Ovviamente in alternativa, utilizzerò i filtri come suggerisci tu grazie per avermi segnato comandi e istruzioni per filtro/macro
ssm
Newbie
 
Post: 3
Iscritto il: 16/06/15 16:53

Re: Chi compie gli anni oggi?

Postdi alfrimpa » 16/06/15 19:39

Ciao Paola

La macro che ti ho indicato fa proprio quello che chiedi.

Comunque, per facilitarti,le cose, allega un tuo file di esempio (lo puoi fare con un sito,di file sharing tipo Filedropper o Dropbox) che abbia la struttura del tuo (ma ovviamente con dati fittizi) ed io te lo riallego con la macro funzionante.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Chi compie gli anni oggi?

Postdi ssm » 16/06/15 21:31

scusami non avevo capito! domani dal pc ci guardo e se non riesco ti allego il file. grazie ancora!
ssm
Newbie
 
Post: 3
Iscritto il: 16/06/15 16:53

Re: Chi compie gli anni oggi?

Postdi Anthony47 » 16/06/15 21:39

Ciao, mi intrometto perche' ho l' impressione che il criterio suggerito da Alfredo, oggi selezionera' solo coloro che hanno la data di nascita pari a oggi, e non anche coloro che oggi compiono gli anni.
Io lo farei con una colonna di appoggio e poi con macro autoregistrata che sposta su Foglio2 quanto filtrato su Foglio1.
All' uopo:
-supponiamo che le date di nascita siano in colonna A e che la colonna M sia libera e possa essere usata come colonna di appoggio.
-in M2 calcola quanti giorni mancano al prossimo compleanno con la formula
Codice: Seleziona tutto
=SE(A2="";"";SE(DATA(ANNO(OGGI());MESE(A2);GIORNO(A2))<OGGI();DATA(ANNO(OGGI())+1;MESE(A2);GIORNO(A2))-OGGI();DATA(ANNO(OGGI());MESE(A2);GIORNO(A2))-OGGI()))
(scusate, ho provato a semplificarla ma mi veniva piu' incasinata)

-copia M2 verso il basso per coprire certamente tutta la lunghezza dell' elenco che sara' contenuto nel foglio; si puo' esagerare.

A questo punto interviene la macro autoregistrata; solo che invece di spiegare come va registrata e come va poi modificata mi e' piu' semplice allegarne il codice, che e' questo:
Codice: Seleziona tutto
Sub BDay()
    Sheets("Foglio1").Select            '<<< Foglio1 contiene l'anagrafica
    Columns("M:M").AutoFilter
    ActiveSheet.Range("$M:$M").AutoFilter Field:=1, Criteria1:="=0"
    Range("A:M").Copy Destination:=Sheets("Foglio2").Range("A1")        '<<< Foglio2 e' la destinazione
    Application.CutCopyMode = False
    ActiveSheet.Range("$M:$M").AutoFilter Field:=1
    Range("A1").Select
    Sheets("Foglio2").Select
    Range("A1").Select
End Sub

Come si usa:
-da Excel, premere Alt-F11 per aprire l' editor delle macro
-Menu /inserisci /Modulo
-copia il codice e incollalo nel frame di dx del modulo appena creato
-personalizza le righe marcate <<<

Torna su Excel ed esegui la macro BDay:
-premi Alt-F8, scegli BDay dall' elenco di macro disponibili, premi Esegui
Eventualmente crei su Foglio1 un pulsante e gli associ la macro BDay, cosi' bastera' premere il pulsante per avere in Foglio2 l' elenco aggiornato.
Nota che in Foglio2 le colonne che vengono copiate da Foglio1 (A:M, nell' esempio) saranno completamente cancellate senza preavviso; quindi non mettere formule o altri dati "sotto" l' elenco perche' non li troverai piu'; eventualmente usa le colonne a destra dell' elenco.
Segnalo la possibilita' di modificare il filtro per ottenere risultati piu' ampi; ad esempio se invece di Criteria1:="=0" usassi Criteria1:="<7" potresti ottenere l' elenco di quelli che compiono gli anni oggi o entro i prossimi 7 giorni.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Chi compie gli anni oggi?

Postdi alfrimpa » 16/06/15 22:19

Hai perfettamente ragione Anthony, volevo farla semplice semplice; chiedo scusa a Paola per averla portata fuori strada!
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli


Torna a Applicazioni Office Windows


Topic correlati a "Chi compie gli anni oggi?":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti