trimitere automata pagina excell

trimitere automata pagina excell

Mesajde cristi_lazarro » Lun Ian 18, 2010 8:45 pm

buna seara,

spuneti-mi va rog daca se poate automatiza trimiterea paginilor dintr-o carte excell, la niste adrese de mail predefinite, cu cat mai putine click-uri.
fiecare pagina va contine un nume de firma, asociez acele nume cu niste adrese de mail sau, aceste firme/clienti sunt arondate/arondati unuor agenti si sa facem corelarile de adrese mail prin agenti.......etc

se poate ceva in acest sens?


multumesc.
Avatar utilizator
cristi_lazarro
 
Mesaje: 841
Membru din: Mie Noi 04, 2009 5:57 pm

Re: trimitere automata pagina excell

Mesajde smcsa » Lun Ian 18, 2010 9:56 pm

Da, se poate cu
Workbook.SendMail "cineva@server.com", "ref. oferta"


dar doar wotkbook. Deci va trebui sa faci un artificiu, sa faci cate un workbook din fiecare sheet pe care vrei sa-l trimiti
smcsa
 
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesajde cristi_lazarro » Mar Ian 19, 2010 11:09 am

nasol,
in conditiile astea schimb intrebarea: cum pot face automat din fiecare sheet un workbook? 8-)

...evident, nu se poate....

am sa ma mai gandesc cum pot evita aceasta dorinta de neindeplinit


ms!
Avatar utilizator
cristi_lazarro
 
Mesaje: 841
Membru din: Mie Noi 04, 2009 5:57 pm

Re: trimitere automata pagina excell

Mesajde smcsa » Mar Ian 19, 2010 11:54 am

De ce nu vrei sa vezi jumatatea plina a paharului ? :D
Cod: Selectaţi tot
For Each ws In ThisWorkbook.Sheets
    ws.Copy
    ActiveWorkbook.SaveAs "c:\" + ws.Name + ".xlsx"
    ActiveWorkbook.Close
Next ws
smcsa
 
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesajde radu_moflea » Mar Ian 19, 2010 1:55 pm

Salut,
nu reusesc sa sa il pun corect ca sa imi salveze foaia "balanta" separat intr-un folder.
In "balanta" se completeaza urmatorul rand liber, de fiecare data cand ruleaza macroul, si in forma asta este inutila asa.
Vreau sa se salveze in folder separat "nir", foia "nir" (asta se face este ok), dar nu mai vreau ca foia "balanta" sa se salveze in fisierul "nir", si foaia "balanata" sa ramana doar una si sa se completeze in ea rand cu rand, (sper ca am atacat corect problema :( )

Uite si vestitul meu fisier:
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
radu_moflea
 
Mesaje: 286
Membru din: Mar Ian 19, 2010 7:36 pm
Localitate: Bucuresti

Re: trimitere automata pagina excell

Mesajde smcsa » Mar Ian 19, 2010 2:31 pm

Daca am inteles bine, vrei ca la click pe buton sa:
1. Se salveaza nir-ul
2. Se salveaza balanta
toate intr-un folder ales de tine

Cod: Selectaţi tot
nr_nir = Str(ThisWorkbook.Sheets("nir").Range("F8").Value)
ThisWorkbook.Sheets("balanta").Copy
ActiveWorkbook.SaveAs "c:\balanta.xls"
ActiveWorkbook.Close
ThisWorkbook.Sheets("nir").Copy
ActiveWorkbook.SaveAs "c:\nir" + nr_nir + ".xls"
ActiveWorkbook.Close
smcsa
 
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesajde radu_moflea » Mar Ian 19, 2010 2:41 pm

Da , asa vreau :) .
Dar nu stiu sa il "pun" corect in codul meu, am incercat, dar nu functioneaza corect :( .
Poti sa il pui tu corect in codul meu?


Multumesc.
radu_moflea
 
Mesaje: 286
Membru din: Mar Ian 19, 2010 7:36 pm
Localitate: Bucuresti

Re: trimitere automata pagina excell

Mesajde smcsa » Mar Ian 19, 2010 3:07 pm

Unde ai
Cod: Selectaţi tot
Sub CallSave()
    Run ("Salveaza_nir")
End Sub


inlocuiesti randul cu Run cu codul dat de mine
smcsa
 
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesajde Dr. Cloud » Mar Ian 19, 2010 3:11 pm

smcsa nu poate inlocui acel rand, deoarece acel rand apeleaza un Add-In pe care i l-am facut.
Uite aici codul care te intereseaza:

Cod: Selectaţi tot
Sub SalvareRegistru()
On Error GoTo err
    nr_nir = Str(ThisWorkbook.Sheets("nir").Range("F8").Value)
   
    ThisWorkbook.Sheets("balanta").Copy
    ActiveWorkbook.SaveAs "C:\Documents and Settings\mateira\Desktop\test\Balante\balanta.xls"
    ActiveWorkbook.Close
   
    ThisWorkbook.Sheets("nir").Copy
    ActiveWorkbook.SaveAs "C:\Documents and Settings\mateira\Desktop\test\Niruri\nir" + nr_nir + ".xls"
    ActiveWorkbook.Close
   
    Exit Sub
   
err:
    MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

In locatia:
C:\Documents and Settings\mateira\Desktop\test vei crea doua foldere: Balante si Niruri.
In ele se vor stoca elementele tale.
Uite si registrul atasat.
Poti rula codul de la butonul ce ti l-am inserat in pagina.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Dr. Cloud
 
Mesaje: 3329
Membru din: Mar Oct 02, 2012 11:19 am

Re: trimitere automata pagina excell

Mesajde radu_moflea » Mar Ian 19, 2010 4:45 pm

Ceva nu functioneza cum trebuie, cand am rulat pt. prima oara macroul "salveza registre separate" a functionat :) , la urmatoarea rulare nu a mai fubctionat si mia dat urmatorul mesaj "Type mismatch".
radu_moflea
 
Mesaje: 286
Membru din: Mar Ian 19, 2010 7:36 pm
Localitate: Bucuresti

Următorul

Înapoi la Visual Basic for Application (VBA) cu Excel - Intrebari tehnice

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 3 vizitatori