trimitere automata pagina excell

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

trimitere automata pagina excell

Mesaj de 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.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesaj de 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

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

Re: trimitere automata pagina excell

Mesaj de 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!

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesaj de 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

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

Re: trimitere automata pagina excell

Mesaj de 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.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesaj de 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

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

Re: trimitere automata pagina excell

Mesaj de 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.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: trimitere automata pagina excell

Mesaj de 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

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: trimitere automata pagina excell

Mesaj de 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.

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

Re: trimitere automata pagina excell

Mesaj de 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".

Scrie răspuns

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