• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

mail worksheet werkt niet!

Status
Niet open voor verdere reacties.

Yariev

Gebruiker
Lid geworden
4 okt 2004
Berichten
103
Ik maak gebruik een script van ron de bruin om sheets te versturen naar verschillende mensen. Als er een emailadres in kolom O voorkomt, zal er een mail worden verstuurd naar dat emailadres. Echter ik krijg een foutmelding.

Het script:
Sub Mail_Every_Worksheet2()
Dim sh As Worksheet
Dim wb As Workbook
Dim strdate As String
Dim MyArrIndex As Long
Dim E_Mail_Count As Long
Dim cell As Range
Dim MyArr() As String
Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If sh.Range("a1").Value Like "*@*" Then
strdate = Format(Now, "dd-mm-yy h-mm-ss")

E_Mail_Count = sh.Columns("A").Cells.SpecialCells(xlCellTypeConstants).Count
ReDim MyArr(1 To E_Mail_Count)
MyArrIndex = 1
For Each cell In sh.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
If cell Like "*@*" Then
MyArr(MyArrIndex) = cell.Value
MyArrIndex = MyArrIndex + 1
End If
Next
ReDim Preserve MyArr(1 To MyArrIndex)

sh.Copy
Set wb = ActiveWorkbook
With wb
.SaveAs "Sheet " & sh.Name & " of " _
& ThisWorkbook.Name & " " & strdate & ".xls"
.SendMail MyArr, _
"This is the Subject line"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End If
Next sh
Application.ScreenUpdating = True
End Sub


De foutmelding onstaat nadat de eerste sheet is verwerkt en is gemaild:

'Run time error 1004'

'Excel cannot access the file "C\program files\system\mapi\1033\nt

Several possible reasons:
* file name or path does not exist
* file you are trying to open is being used by another program. Close document in other program and try again.
*The name of the workbook you are trying to save is the same as the.......'

de laatste * wordt niet verder afgemaakt. De eerste 2 reasons zijn het naar mijn weten niet.
Iemand een idee hoe ik dit kan oplossen.

Deze 2 regels zou ik moeten debuggen volgens excel:

.SaveAs "Sheet " & sh.Name & " of " _
& ThisWorkbook.Name & " " & strdate & ".xls"

Het is een lang verhaal, maar kan iemand mij helpen?

Kan ik misschien zelf een map kiezen, waarin de files tijdelijk worden bewaard en waaruit ze ook weer worden verwijdert (als dit tenminste een oplossing zou zijn).

Alvast bedankt
 
Het kan zijn dat je niet of onvoldoende rechten hebt op de map waarin excel het bestand wil opslaan. In dat geval kan je 2 dingen doen:

- Neem contact op met je systeem-/netwetkbeheerder
- zorg er voor dat het bestand wordt opgeslagen in een map waar je wel (voldoende) rechten hebt.
 
Is inderdaad het geval kennelijk. Het is alleen vreemd, want hij heeft het wel eerder gedaan?

Hoe kan ik de bestanden in een map naar keuze opslaan, ik ben zelf niet zo'n programmeur nml, althans not yet ;)?

Bedankt.
 
Hmm. Ik zie in de code niet een verwijzing naar een specifieke map staan. Je zou het volgende eens kunnen proberen:

Open het bestand, en kies via Bestand->Opslaan als, een map op je locale harde schijf die je kunt benaderen.
Sla het bestand in die map op, en probeer de code nog eens.

Het kan ook zijn dat de code de standaard map van Excel gebruikt om het bestand in op te slaan. Dan zou je die kunnen veranderen via Extra->Opties->tabblad Algemeen. Verander hier de standaard bestandslocatie.

Ik hoop dat je hier wat aan hebt...:thumb:
 
MayNiak666,

T zou idd mooi zijn als ik dat in de code aan kan geven.

Ik heb de 2 opties geprobeerd van je, maar helaas zonder resultaat.
De 1ste maakte geen verschil.
In 2de optie stond er al een andere file geselecteerd (my documents) dan waar excel het bestand naartoe wilt saven.
 
Heeeeel apart, hoor. Het werkt bij mij feilloos! Ik neem aan dat je dit op je werk gebruikt?! Als ik jouw was zou ik met een systeembeheerder contact opnemen. In mijn ogen kan het niet aan de VBA-code liggen, dus ik vermoed echt dat er een of andere systeem-instelling niet fris is, en daar heb ik niet echt kaas van gegeten.
 
Idd heel apart ;(

Is het niet mogelijk om aan het script toe te voegen waar ik het tijdelijk wil saven, dat je weet?

Dat zou misschien al een oplossing zijn.
 
Ik heb het voor elkaar om het bestand(en) in een andere map te saven. T bleek makkelijker te zijn dan ik dacht.

Ik heb het volgende toegevoegd:

sh.Copy
Set wb = ActiveWorkbook
With wb
.SaveAs "C:\My Documents\test\Sheet " & sh.Name & " of " _
& ThisWorkbook.Name & " " & strdate & ".xls"

Ik heb uiteraard in deze map wel alle rechten en het lijkt te werken.

Bedankt voor je hulp en info MayNiak666.

Grtz
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan