• 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.

VBA Sheet naam "Book1" aan Email veranderen in een aan een cel gerelateerde waarde

  • Onderwerp starter Onderwerp starter PK58
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

PK58

Gebruiker
Lid geworden
4 sep 2014
Berichten
13
Hallo Allemaal,

repost van mijn vraag van 11 september voor VBA specialisten.

Als de volgende opdracht in VBA wordt uitgevoerd wordt keurig de sheet "TEST" verzonden maar de naam ervan is "Book1".
Hoe kan ik de naam (Book1) veranderen in een bepaalde (variabele) cel-waarde???

With ActiveWorkbook
.Sheets("TEST").Copy

With ActiveWorkbook
.SendMail "ontvanger@gmail.com", "TEST"
.Close False
End With
End With

Wampier stelde dit voor

.name = .sheets("TEST").cells(1,1).value
.sendmail ...


dit heb ik op alle manieren getest maar ik krijg een compileerfout "kan niet toewijzen aan een alleen lezen eigenschap"

heeft iemand ideeën ??


BVD
Peter (PK58)
 
Gebruik het indexnummer van je werkblad ipv de naam. Nadeel is wel dat je dit dan nooit mag verplaatsen.
Of gebruik de CodeName v/h werkblad.
 
Hallo Warm Bakkertje,

bedankt voor het reageren!

De naam van het werkblad veranderen is het probleem niet, maar de naam van het bestand dat aan de email gehangen wordt...., juist die naam wil ik de naam van een aantal cellen geven
Wat ik ook probeer de naam het verzonden bestand blijft "book1" .

het onderstaande werkt ook niet en krijg de melding "kan niet toewijzen aan een alleen lezen eigenschap"*(rode regel)
Eerst de naam van het werkblad veranderen gaat wel maar in de email heet hij weer "book" ! :confused:

Sub Blad_emailen()
With ThisWorkbook
.Sheets("5").Copy
.Name = .Sheets(5).Cells(7, 4).Value
With ActiveWorkbook

.SendMail "ontvanger@gmail.com", "ONDERWERP"
.Close False
End With
End With
End Sub

Peter (PK58)
 
Code:
Sub Blad_emailen()
    With ThisWorkbook.Sheets("5")
        .Copy
        fName = .Cells(7, 4).Value
    End With
    With ActiveWorkbook
        .SaveAs ThisWorkbook.Path & "\" & fName & ".xlsx", 51
        .SendMail "ontvanger@gmail.com", "ONDERWERP"
        .Close False
    End With
    Kill ThisWorkbook.Path & "\" & fName & ".xlsx"
End Sub
 
Beste Rudi,

bedankt voor je reactie :thumb:

Ik begrijp uit de code dat het er eerst een file opgeslagen wordt met de juiste aan de cellen gerelateerde naam, hierna wordt de file geopend en dan aan de mail gehangen, en de file weer verwijdert.

Het gaat nu bijna goed, ik krijg nog een melding : "de volgende zaken kunnen niet worden opgeslagen in werkmappen zonder macro's :VB project, als u een bestand met deze functies wilt opslaan klikt u op nee.....klik op ja om het bestand op te slaan als een werkmap zonder macro's."

het antwoord is hier altijd JA (werkmap zonder macro's), hoe kan deze melding omzeild worden ?

mvg
Peter (PK58)
 
Probeer eerst eens met Application.displayalerts = false boven de saveas regel (onder de regel terug op true zetten).
Anders niet het werkblad maar de inhoud kopiëren naar een nieuw bestand.
 
Beste Rudi,

HET WERKT

MEGA dank voor je hulp:thumb:

mvg
Peter (PK58)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan