Envoi de mail VBA: Confirmer une boite de dialogue

Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -

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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour,

Essayez ceci

ActiveSheet.Range("B2:F10").SpecialCells(xlCellTypeVisible).Select
0
Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   1
 

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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

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

0
Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   1 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 

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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention  
 

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