Envoi de mail VBA: Confirmer une boite de dialogue

Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 - 17 déc. 2023 à 18:27
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 23 déc. 2023 à 11:12

Bonjour,

J'ai cette macro qui me permet de faire partir un mail à moi même.
 

Sub EnvoyerParMail()

ActiveSheet.Unprotect

'Récuperer l'adresse mail
Dim OwnMail As String
    With CreateObject("Outlook.application")
    OwnMail = .GetNamespace("MAPI").CurrentUser
    End With


'Plage à envoyer
ActiveSheet.Range("B2:F43").Select

Call HideEmptyRows

'Envoi du mail
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Item.to = OwnMail
        .Item.Subject = Range("B45")
        .Introduction = "Bonjour," & Chr(13) & Chr(10) & "veuillez trouver ci-dessous notre offre pour l'ensemble"
        .Item.Send
    End With
    
MsgBox ("Envoyé par mail sur votre adresse")

Cells.EntireRow.Hidden = False

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False

End Sub

Voila mon problème, cette macro en appelle une autre qui masque des lignes. Lors de l'envoi, j'ai maintenant une demande de confirmation :"Cette feuille de calcul contient des lignes ou des colonnes masquées que le destinataire etc etc"

Est-il possible de valider ce formulaire directement ?

Merci beaucoup,

Windows / Firefox 120.0

 

A voir également:

1 réponse

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
18 déc. 2023 à 07:33

Bonjour,

Essayez ceci

ActiveSheet.Range("B2:F10").SpecialCells(xlCellTypeVisible).Select
0
Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 1
21 déc. 2023 à 11:42

Bonjour, tu peux m'expliquer stp?


En fait,c'est une feuille qui calcule un prix, après que j'ai saisi des quantités.

La macro me sert à masquer les lignes qui sont à 0 dans la range B2:F43 avant de faire partir un mail avec le contenu de cette zone (mais seulement le contenu utile)


Avant cette macro d'envoi de mail, j'ai une loop qui masque les lignes avec EntireRow.Hidden = true

0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708 > Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024
21 déc. 2023 à 11:50

Bonjour,

Cette ligne de code selectionne uniquement les cellules des lignes non masquees

0
Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 1 > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
23 déc. 2023 à 10:54

Ah yes, j'ai compris!

J'ai essayé et le résultat est le même, j'ai toujours le même message de confirmation.

Je pensais à une chose, dupliquer la feuille et supprimer les lignes au lieu de masquer...

0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708 > Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024
Modifié le 23 déc. 2023 à 11:12

Bonjour,

Pas besoin de dupliquer la feuille.

Il suffit de faire ceci dans la feuille de copie."Adaptez le nom de la feuille et la cellule

    ActiveSheet.Range("B2:F10").SpecialCells(xlCellTypeVisible).Copy Worksheets("feuilx").Range("B20")
0