Ga naar inhoud

Aanbevolen berichten

Geplaatst: (aangepast)

Ik heb in een Excel file 3 tabbladen zitten.

1 uren

2 planning

3 kennis.

 

We moeten telkens de uren versturen via outlook.

We verplaatsen/kopie maken deze uren tab nu om deze als Exel file te versturen.

Kan dit ook met VBA knop?

Zo ja hoe?

 

aangepast door JTvD
Geplaatst: (aangepast)

Wil je het werkblad als bijlage versturen zal deze het beter doen.

 

Sub SendSheet()
    Fname = "Kopie_Uurstaat"
    Sheets("uren").Copy
    With ActiveWorkbook
        .SaveAs ThisWorkbook.Path & "\" & Fname, 51
        .Close False
    End With
    With CreateObject("outlook.application").createitem(0)
        .to = "hier het emailadres"
        .Subject = "hier het onderwerp of celverwijzing"
        .body = "In bijlage de gevraagde uurstaat." & vbLf & vbLf & "Groeten JTvD"
        .attachments.Add ThisWorkbook.Path & "\" & Fname & ".xlsx"
        .display
    End With
    Kill ThisWorkbook.Path & "\" & Fname & ".xlsx"
End Sub

 

aangepast door bakerman
Geplaatst:

@  Bucky, deze verzend alleen maar de inhoud het was juist de bedoeling om een tabblad te versturen

@ Bakerman: deze lijkt te werken, ik krijg een tabblad apart te zien echten dan ook gelijk een foutmelding op deze regel

.SaveAs Thisworkbook.Path & "\" & Fname, 51

De melding heeft volgens mij te maken met de module om bij het opstarten een deel leeg te maken.

Opslaan gaat dan via opslaan met macro's

 

Klopt dit en hoe kan ik dit opvangen

Geplaatst:

Ik heb even een klein opzetje gemaakt

Hierbij worden de uren leeggemaakt  tijdens het opstarten de overige info blijft staan.

 

De melding die ik krijg heeft te maken met het opslaan, 

Urentest.xlsm

Geplaatst:

De oorzaak was vrij eenvoudig (de oplossing ook :) )

 

Je hebt een ActiveX-knop gebruikt om de macro te starten. Daardoor komt de code terecht in de bladmodule van Uren werkblad.

 

Bij het maken van een kopie van het werkblad wordt deze code echter ook meegenomen. Als je dan het nieuwe bestand probeert op te slaan

 

als bestand zonder macro's (xlsx) krijg je een foutmelding.

 

Oplossing:

 

Gebruik een knop uit de FormButtons-collectie en verhuis de code naar een standaardmodule zodat dit probleem zich niet voordoet.

 

Ik heb nog 2 lijnen aan de code toegevoegd zodat de knop niet meer in het nieuwe bestand staat.

 

Sub SendMail_Click()
    Fname = "Kopie_Uurstaat"
    Application.CopyObjectsWithCells = False
    Sheets("uren").Copy
    Application.CopyObjectsWithCells = True
    With ActiveWorkbook
        .SaveAs ThisWorkbook.Path & "\" & Fname, 51
        .Close False
    End With
    With CreateObject("outlook.application").createitem(0)
        .to = "Joep@hetnet.nl"
        .Subject = "Uren"
        .body = "In bijlage de gevraagde uurstaat." & vbLf & vbLf & "Groeten JTvD"
        .attachments.Add ThisWorkbook.Path & "\" & Fname & ".xlsx"
        .display
    End With
    Kill ThisWorkbook.Path & "\" & Fname & ".xlsx"
End Sub

 

Urentest.xlsm

Geplaatst:

Hallo bakerman

 

Ik heb een knop aangemaakt via formuliersbusturingselementen, voor deze de code in de nieuwe Macro gezet.

Echter is de melding nog het zelfde.

 

Ok heb ik het niet goed begrepen?

 

Geplaatst:

Je hebt gelijk, ik heb jou bestand geopend en deze werkte wel goed.

Alles even nagelopen en vergeleken met mijn bestand en in mijn bestand stond nog een module die deze "fout" veroorzaakte.

Deze even doorgelezen en was ooit bedoeld om een mail te sturen maar werkte niet.

Eenmaal verwijderd en nu werkt het prima.

 

Dankje..

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.