Erreur 1004 sur définition de la propriété Visible=0

renaud2530

XLDnaute Nouveau
Bonjour,

Je sais que "l'erreur 1004" est une erreur courante et que de nombreux posts existent déjà sur le sujet mais je n'y pas trouvé de solution à mon problème; donc, je m'explique...
Ci-joint un classeur avec deux feuilles. Sur la première, un formulaire et un bouton qui permet d'envoyer par mail un layout qui est créé sur une deuxième feuille. La feuille de formulaire est verrouillée tandis que la feuille de layout est masquée.
A chaque premier démarrage (à l'ouverture du fichier ou après une sauvegarde) la macro s'arrête sur la propriété Visible=0. Le mail doit être envoyé "manuellement", la feuille de layout re-masquée, fermer le débogage sans rien toucher au code et là, miracle, tout fonctionne à merveille!!...jusque à la sauvegarde suivante...
Merci d'avance pour votre aide, je débute dans le milieu...

Bien à vous,
Renaud
 

Pièces jointes

  • Classeurtest.xlsm
    20.2 KB · Affichages: 22

renaud2530

XLDnaute Nouveau
En cherchant d'avantage j'ai finalement trouvé une solution...merci tout de même.
Pour ceux que cela intéresse voila ce que j'ai trouvé:

Code:
Sub Send_mail()

    Dim AWorksheet As Worksheet
    Dim Sendrng As Range
    Dim rng As Range

    On Error GoTo StopMacro

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sendrng = Worksheets("LAYOUT").Range("A1:C6")

    'Remember the activesheet
    Set AWorksheet = ActiveSheet

    With Sendrng
        .Parent.Visible = True
        ' Select the worksheet with the range you want to send
        .Parent.Select

        'Remember the ActiveCell on that worksheet
        Set rng = ActiveCell

        'Select the range you want to mail
        .Select

        ' Create the mail and send it
        ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope

            ' Set the optional introduction field thats adds
            ' some header text to the email body.
            .Introduction = "This is test mail 2."

            With .Item
                .To = Range("G1").Value
                .CC = ""
                .BCC = ""
                .Subject = "My subject"
                .Send
            End With

        End With

        'select the original ActiveCell
        rng.Select
       
    End With
Sheets("LAYOUT").Visible = 0
    'Activate the sheet that was active before you run the macro
    AWorksheet.Select

StopMacro:
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    ActiveWorkbook.EnvelopeVisible = False

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 895
Membres
103 982
dernier inscrit
krakencolas