Condividi:        

[Excel] mail list "condizionale" da anagrafica

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] mail list "condizionale" da anagrafica

Postdi megatony99 » 14/05/06 22:36

ciao a tutti/e. ho un foglio di lavoro in excel con l'elenco degli iscritti ad un'associazione. nelle prime colonne ci sono i soliti dati (nome,cognome, indirizzo, tel., ecc.), poi c'è una colonna per l'indirizzo e-mail.
le colonne successive hanno tutte il valore "1" oppure "0" a seconda che l'iscritto possieda o meno la caratteristica (o corrisponda alla caratteristica) che è in testa alla colonna. mi spiego: se la colonna N è intestata "esportatore" allora "1" significa che il soggetto/la ditta in questione esporta all'estero i suoi prodotti altrimenti "0" vuol dire che vende solo in italia.
ora, vorrei poter creare di volta in volta una macro o un altro automatismo che, in base al tipo di circolare che spedisco agli iscritti mi selezioni solo quelli che hanno "1" nelle caratteristiche che scelgo di volta in volta. per es. se devo informare gli iscritti "esportatori" di una qualche opportunità allora vorrei spedire la mail con il testo in questione solo a loro selezionando l'indirizzo e-mail presente nell'anagrafico solo se nella colonna interessata c'è il valore "1".
purtroppo premetto che non so usare e non ho idea di cosa sia il Visual Basic........
spero di essere stato chiaro nello spiegare il problema.
grazie a tutti in anticipo.
ciao. Antonio

***** Metti titoli più esatti la prossima volta Grazie
megatony99
Utente Senior
 
Post: 176
Iscritto il: 19/11/01 01:00
Località: ODERZO (TV)

Sponsor
 

Postdi Alexsandra » 15/05/06 14:10

Guarda questa immagine.
http://freefilehosting.net/bin/?id=pdjxmq/b
Se invece di mettere 0 e 1 metti solo 1 o quello che vuoi,basta che la cella sia piena copia questo codice in un modulo vba e lo associ al pulsante.
Quando fai clik ti nasconde tutte le celle vuote nella colonna E
Codice: Seleziona tutto
Sub cerca()
Range("E:E").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
per rimettere tutto come prima altro pulsante con questo codice
Codice: Seleziona tutto
Sub Mostra()
    Cells.Select
    Selection.EntireRow.Hidden = False
    Range("A2").Select
End Sub
Puoi associare le 2 macro an una combinazione di tasti
(es. CTRL+Z=Nascondi le righe e CTRL+A=MOstra le righe)
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi megatony99 » 15/05/06 14:35

ciao. scusa per il titolo e in effetti mi devo essere spiegato male.
quello che hai scritto in effetti lo sapevo già fare con la funzione "filtro" di excel. considera poi che nel tuo esempio c'è solo la colonna "E" come colonna con la caratteristica di interesse, ma nel file ce ne sono altre di colonne e potrei avere bisogno di condizionare la scelta in base a più parametri.
ma diamo per buono che possa selezionare gli iscritti che mi interessano con il VBA o con un filtro di excel; la cosa che mi interessa maggiormente sarebbe poter estrarre (cioè senza doverli ricopiare tutti) e mettere automaticamente nel campo "a" di un messaggio e-mail gli indirizzi di posta elettronica che compaiono nella colonna dedicata a questo dato all'interno dell'anagrafica. so che se clicco sull'indirizzo e-mail si apre in automatico un messaggio e-mail indirizzato al destinatario corrispondente a quell'indirizzo ma così vorrebbe dire cliccarli tutti uno alla volta....
grazie ancora e ciao
antonio
megatony99
Utente Senior
 
Post: 176
Iscritto il: 19/11/01 01:00
Località: ODERZO (TV)

Postdi Alexsandra » 15/05/06 17:40

Urca se ti spieghi bene.
Il mio non è un filtro,con l'opzione filtro di excel ti esce un list pieno di 1 e 0 tanti quanti sono i record che compongono la colonna filtrata.

Cosa intendi di condizionare la scelta in base a più parametri ? quali?

Comunque tu vuoi spedire delle e mail, ma cosa vuoi spedire? nel 1° post parlavi di circolare, è un foglio di excel? lo vuoi spedire con Outlook? oppure vuoi scrivere un messaggio "Chiuso per ferie dal al"??

Posta uno screen del tuo foglio e spiega meglio quello che vuoi fare.

PS. In ogni caso devi sempre cliccare sul tasto invia ogni volta
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 15/05/06 18:41

Ciao megatony,
mi sembra che tu stia cercando il modo di avere l' insieme degli indirizzi in funzione di un flag che hai in una colonna.
Supponiamo che hai gli indirizzi in colonna C e il flag in colonna D, dalla riga 2 in giu'; allora prova a mettere in E2 =E3&SE(D2=1;C2&"; ";""), copiando poi la formula sulle righe successive fino all' ultimo utente.

In questo modo avrai in E2 tutti gli indirizzi dei destinatari flaggati, separati da "punto-e-virgola": Contr-c per copiare E2, Contr-v per incollare sull' area "send to" del tuo software di posta.

Non so quanti indirizzi devi gestire, c' e' il rischio che superi la lunghezza massima delle stringhe gestibili da excel; io l' ho collaudato con 256 indirizzi in output e fino a 13000 crt su E2; oltre non so che succede.

Se vuoi qualcosa di piu' automatico devi attendere altri suggerimenti.

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

Postdi Alexsandra » 15/05/06 19:58

Non credo Antony che sia come dici tu
megatony99 ha scritto: considera poi che nel tuo esempio c'è solo la colonna "E" come colonna con la caratteristica di interesse, ma nel file ce ne sono altre di colonne e potrei avere bisogno di condizionare la scelta in base a più parametri.
Per mè ha fatto varie colonne (Importatore,Grossista,Rivenditore etc...) e su ogni colonna sceglie con 0 e 1 dove alloccare il cliente presente nella determinata riga.
mentre si potrebbe tranquillamente lavorare su una colonna sola,inserendo varie opzioni di identificazione (0,1,2,3,4,5, etc..) e in base ad una scelta filtri tutti i dati.
Ma questo lo deve dire l'utente, in questo modo è molto difficila aiutare andando per supposizioni.

....a quell'indirizzo ma così vorrebbe dire cliccarli tutti uno alla volta....
In VBA puoi fare un'altra cosa,scelto il "genere" inviare a tutti un foglio (la tua circolare) e copiarlo nella cartella di posta in uscita(devi usare Outlook) e appena apri il Browser te li spedisce tutti.

Devi però spiegarti meglio
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi megatony99 » 15/05/06 21:08

ciao. allora avete ragione entrambi: Anthony47 ha azzeccato quello che voglio fare, cioè avere un elenco di indirizzi e-mail corrispondenti agli iscritti che hanno "1" in una certa colonna dell'anagrafico; Alexsandra invece ha, giustamente, complicato la cosa perchè effettivamente le colonne con la caratteristica (o il flag come lo vogliamo chiamare) possono essere più di una. dico "possono" perchè questa anagrafica non è ancora stata creata ma prima di mettermi al lavoro stavo cercando un sistema per l'invio di circolari e/o informative su argomenti che possono essere i più vari e interessare a volte alcuni a volte altri degli iscritti, proprio in base al fatto di avere o meno il flag in questione.
l'aspetto dovrebbe essere più o meno questo

http://freefilehosting.net/bin/?id=pdjwkK3Z

(ovviamente gli indirizzi sono di fantasia spero non corrispondano a nessuno ;) ). in questo esempio ho applicato la formula di Anthony nella colonna E ed in effetti posso fare il copia-incolla della cella E2 nel campo degli indirizzi di un messaggio di posta elettronica con Outlook, allegando il file della circolare periodica che dovrò spedire.
ora la cosa che non capisco è come applicare questa formula nel caso in cui di colonne come la D ce ne siano più di una.....

Alexsandra non ho capito questi due passaggi, me li puoi spiegare meglio per favore?
mentre si potrebbe tranquillamente lavorare su una colonna sola,inserendo varie opzioni di identificazione (0,1,2,3,4,5, etc..) e in base ad una scelta filtri tutti i dati

In VBA puoi fare un'altra cosa,scelto il "genere" inviare a tutti un foglio (la tua circolare) e copiarlo nella cartella di posta in uscita(devi usare Outlook) e appena apri il Browser te li spedisce tutti


grazie ancora a tutti. ciao. antonio
megatony99
Utente Senior
 
Post: 176
Iscritto il: 19/11/01 01:00
Località: ODERZO (TV)

Postdi Anthony47 » 15/05/06 21:51

Stavo rispondendo ad Alexandra ed e' comparsa anche la nota di Megatony; cosi' rispondo ad ambedue.

Si, Alexandra, nel messaggio di megatony si parla di "colonne successive tutte con 1 o 0", e avevo capito che c' erano piu' flag. Nella mia proposta c' e' un flag globale, che puo' essere costruito sulla base dei flag esistenti o invece dei flag esistenti (che penso sia quello che tu intenda con la frase "mentre si potrebbe tranquillamente lavorare su una colonna sola,inserendo etc etc".

Ad esempio, se nella cella D2 ci sono gli attributi di quell' utente, accanto (da E2) si possono mettere N colonne per filtrare N attributi, messi in testa (E1, F1, ...) e in E2 la formula
Codice: Seleziona tutto
=SE(VAL.ERRORE(RICERCA(E$1,$D2)),1,0);
si copia in orizzontale per quanti filtri si vogliono ipotizzare (meglio abbondare) e si fa un flag globale come somma dei flag precedenti; es in J2
Codice: Seleziona tutto
=SOMMA(E2:I2)

Se tutti gli attributo dichiarati in testata (E1, F1, ...) sono trovati in D2, allora il flag globale e' 0, altrimenti e' maggiore.
Cosi' facendo va invertito il test nella prima formula da me suggerita, che deve diventare (in K2)
Codice: Seleziona tutto
=k3&SE(D2=0;C2&"; ";"")
Se serve un suggerimento specifico, allora e' utile che megatony illustri meglio quelli che sono i dati di partenza e come pensa di dover lavorare.

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

Postdi Alexsandra » 15/05/06 22:22

Io ho pensato di poter utilizzare una colonna sola con flag diversi (1,2,3,4,5 oppure a,b,c,d,e,)
Es. 1=Clienti,2=fornitori 3=dipendenti 4=esportatori e così via,riguardando adesso il post meglio sarebbe usare le lettere,quando voglio spedire una mail penso che venga allegato un documento, allora parto dalla colonna A ,fino all'ultima cella e calcolo il range scritto,lo ordino in base alla richiesta che verrà fatta (può essere un inputbox o un combo) ordinati i dati (es. ho scelto A mi ritrovo tutti i record con flag A ordinati) nascondo tutte le altre righe del range che abbiamo trovato prima.
Se associ ad ogni flag un documento tipo (es. c:\doc_tipo\a.doc.....b.doc....c.doc etccc) avrai per ogni categoria un documento già pronto per essere spedito.
Per spedirlo puoi usare anche il codice che hai messo tu e che vedo nella colonna E e spedirli
Codice: Seleziona tutto
ActiveWorkbook.SendMail Recipients:=Alex("nome1", "nome2",etcc)
così fai un multiinvio.
Comunque è un programma complesso per Excel e bisogna vedere quante mail deve spedire Megatony, non sò se ne valga la pena
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 17/05/06 00:41

Megatonyyyyy..., dove sei??

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] mail list "condizionale" da anagrafica":


Chi c’è in linea

Visitano il forum: Nessuno e 46 ospiti