prova a sostituire questa parte di codice:
rng.Copy
With NewWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
con questa:
Ash.Range("1:4").Copy
With NewWB.Sheets(1)
.Cells(1, 1).PasteSpecial Paste:=8
.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
.Cells(1, 1).Select
Application.CutCopyMode = False
End With
rng.Copy
With NewWB.Sheets(1)
.Cells(5, 1).PasteSpecial Paste:=8
.Cells(5, 1).PasteSpecial Paste:=xlPasteValues
.Cells(5, 1).PasteSpecial Paste:=xlPasteFormats
.Cells(5, 1).Select
Application.CutCopyMode = False
End With
Fai sapere se hai risolto, grazie.
Bye!
Scossa
Il 28/07/10 22.00, Scossa ha scritto:
"Patty" <pat...@fastwebnet.it> ha scritto nel messaggio
news:9mh4o.218296$813....@tornado.fastwebnet.it...
Ottimo, grazie per il riscontro.
> Mi rimane solo una
> questione irrisolta per ottenere il risultato perfetto: inviare ciascuna
> email a più di un destinatario. Attualmente la macro prende l'indirizzo
> mail del destinatario dalla sola colonna B del foglio maillist, in
> realtà mi servirebbe che l'allegato venisse inviato a un numero X di
> destinatari, posti sulle rispettive colonne B, C, D, ... n.
aL volo, DA TESTARE, sostituisci questa parte di codice:
If Rcount >= 2 Then
For Rnum = 2 To Rcount
'Look for the mail address in the MailInfo worksheet
mailAddress = ""
On Error Resume Next
mailAddress = Application.WorksheetFunction. _
VLookup(Cws.Cells(Rnum, 1).Value, _
Worksheets("Mailinfo").Range("A1:B"
& _
Worksheets("Mailinfo").Rows.Count), 2, False)
On Error GoTo 0
If mailAddress <> "" Then
con questa:
If Rcount >= 2 Then
For Rnum = 2 To Rcount
mailAddress = ""
Set RngSrc = Worksheets("Mailinfo").Range("A1:B" & _
Worksheets("Mailinfo").Rows.Count)
With RngSrc
Set RngAdd = .Find(what:=Cws.Cells(Rnum, 1).Value, _
After:=.Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, MatchCase:=False)
End With
'Look for the mail address in the MailInfo worksheet
If Not RngAdd Is Nothing Then
With RngAdd
Do
nOff = nOff + 1
sAdd = .Offset(0, nOff).Value
mailAddress = mailAddress & sAdd & ";"
Loop While .Offset(0, nOff + 1).Value <> ""
End With
End If
If mailAddress <> "" Then
Ricordati di aggiungere alle altre queste dichiarazioni delle
variabili:
Dim RngAdd As Range
Dim RngSrc As Range
Dim nOff As Long
Dim sAdd As String
Il 29/07/10 20.50, Scossa ha scritto:
Puoi ridepositare il file col codice modificato?
Bye!
Scossa
Il 30/07/10 20.12, Patty ha scritto:
Aspettiamo domani sera, comunque qpuoi aggiungere dopo:
If mailAddress <> "" Then
questa riga:
msgbox mailAddress
così vedi se la stringa deggli indirizzi dei destinatari è corretta.
Bye!
Scossa
Il 01/08/10 19.52, Scossa ha scritto:
C'è qualcosa che non va, non riesco a scaricarlo (server error), puoi
ri-depositarlo o depositarlo su un altro server (p.e.: rapidshare.com)
Bye!
Scossa
> C'č qualcosa che non va, non riesco a scaricarlo (server error), puoi
Ciao Patty,
non so perchè non funzioni il metodo .sendmail (non ho ancora
configurato l'account su Outlook), comunque ho fatto un paio di
modifiche:
http://rapidshare.com/files/411264598/template_6_web.xls
provalo.
Altrimenti ho fatto una versione che utilizza i riferimenti a
"Microsoft Outlook 11.0 Object Library" (la attivi dall'editor del VBE
in Strumenti -> Riferimenti, la 11.0 è per Outlook 2003 se 2007
probabilmente è la 12.0) e funziona perfettamente:
http://rapidshare.com/files/411264383/template_7_web.xls
Puoi anche inserire il testo del messagio (.body = "testo del
messaggio") e scegliere se inviare direttamente (.send) o preparare
l'email per l'invio da Outlook (.Display).
non ci siamo, continua a non funzionare! pazienza, tanto...
>
> Altrimenti ho fatto una versione che utilizza i riferimenti a
> "Microsoft Outlook 11.0 Object Library" (la attivi dall'editor del VBE
> in Strumenti -> Riferimenti, la 11.0 è per Outlook 2003 se 2007
> probabilmente è la 12.0) e funziona perfettamente:
>
> http://rapidshare.com/files/411264383/template_7_web.xls
>
questa invece funziona, ma ha un comportamento strano: a casa (win xp,
office 2003) non da' problemi. In ufficio le finestre di richiesta di
conferma che appaiono (la prima con l'elenco dei destinatari e la
seconda con la conferma della volontarietà dell'invio) appaiono "dietro"
le rispettive finestre di excel e outlook, obbligandomi a minimizzarle e
a spostarle in continuazione cliccandoci sopra. Le versioni del SO e di
Office sono le stesse, da cosa potrà mai dipendere? Sarebbe bello se la
finestra con i destinatari nemmeno apparisse, ma se proprio deve farlo
almeno che appaia in primo piano e non in background! (certe cose mi
fanno impazzire, ero così contenta che a casa fosse tutto perfetto e
invece ci si mette l'ufficio a darmi i grattacapi!). Mah.
commenta o cancella la riga
MsgBox "a: " & mailAddress
poi aggiungi sotto la riga
.Display
questa riga:
.Application.ActiveInspector.WindowState = olMaximized
alla fine prima di end sub inserisci questa riga:
Excel.Application.WindowState = xlMinimized
Fai sapere, grazie.
Bye!
Scossa
>
> commenta o cancella la riga
>
> MsgBox "a: "& mailAddress
>
Ecco, mi è bastato fare questo e si è risolto tutto!
>
> Fai sapere, grazie.
>
Ora ho la macro dei miei sogni! Funziona tutto perfettamente!
Ancora grazie mille, senza di te non ce l'avrei mai fatta!
Grazie a te per il cortese riscontro :-)
Bye!
Scossa