Empêcher l'exécution d'une macro

Bonjour le forum, bon week-end ?

Nouveau problème

felix m'a fait une macro qui détecte si une bibliothèque est installée, et j'aimerais suite à cela, faire en sorte que mon bouton soit inutilisable si justement cette bibliothèque n'est pas installée.

J'aurais juste besoin du code permettant de désactiver l'exécution d'une macro lorsqu'on clique sur son bouton mis en place pour.

Merci

hello

en fin de ta macro, si la bliblioth n'est pas intallée, mettre un truc du genre :

bouton.Visible=False

pour masquer le bouton.

Merci de ta réponse mais en fait l'objet n'est pas dans une userform (j'aurais su le faire )

C'est juste une forme automatique placé au milieu des cellules auquel j'affecte une macro.

Merci.

re

n'est-ce pas faisable quel que soit l'endroit où se trouve le bouton ?

Bonjour,

Si ta bibliothèque n'est pas installée et que tu cliques sur le bouton, que se passe-t-il dans ton appli ?

A te relire

Dan

jmd :

Effectivement je viens de voir qu'il est possible de faire ça... merci

Dan :

J'ai le message d'erreur suivant :

Erreur de compilation :

Type défini par l'utilisateur non défini

et ça surgit à cette ligne :

Dim Ol As New Outlook.Application

J'ai essayé de gérer l'erreur en renvoyer TOUTE erreur vers Erreur: où j'affiche un message mais j'aimerais réelement gérer cette erreur là, comment pourrais-je dire quelque chose comme : On Error Outlook GoTo ...

Merci

Je vous joint mon code :

Sub mail()
Dim msg As String

Dim mois As String
Dim adresse_mail As String
Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String
Dim msg As String

dossier_factu = Range(dossier_facturation).Value
dossier_technicien = Range(feuilles_technicien).Value
nom_dagence = Range(nom_agence).Value
nom_dagenceg = VBA.UCase(nom_dagence)

mois = Sheets("Feuil1").Range("A2").Value

On Error GoTo Erreur

'On demande à qui on veut envoyer le mail
adresse_mail = InputBox("Entrez l'adresse mail à laquelle vous voulez envoyer ce classeur Excel", "Envoi par mail", "mail@mail.com")

'On ouvre Outlook pour envoyer le mail
Set Ol = New Outlook.Application
Set Olmail = Ol.CreateItem(olMailItem)
With Olmail
    .To = adresse_mail
    .Subject = "Facturation " & nom_dagence & " - " & mois
    .Body = "Vous trouverez ci-joint la feuille Excel de facturation pour le site de " & nom_dagence & " pour le mois de " & mois
    .Attachments.Add (dossier_factu & "Feuilles des antennes\" & nom_dagenceg & "-" & mois & ".xls")
    .Display
'.Display = Affiche le message (et on doit cliquer sur envoyer)
'.Send = Envoi directement le message
'Penser à faire deux boutons pour ceux qui veulent pas voir le message (et dans ce cas afficher une boîte
'avec message bien envoyé
End With
Exit Sub

Erreur:
    msg = MsgBox("Une erreur est survenue" & vbNewLine & "Veuillez regarder dans l'onglet 'chemins' si les chemins d'accès au dossier sont les bons et réessayez", vbCritical)
    Sheets("chemins").Select
    Range("A6").Select
End Sub

Bonsoir,

As-tu essayé ceci --> Dim Ol As New Outlook

Dan

Bonjour,

Je viens d'essayer et j'obtiens le même problème,

N'y a t'il pas une possibilité de faire un

If "cette erreur" then

?

Merci

re,

Et tu veux quelle action s'il ya cette erreur ? Un message ou autre chose ?

A te relire

Dan

J'aimerais afficher un message (dans lequel j'inscrirais la procédure à suivre pour ajouter des les objets à la librairie), mais en même temps si j'ai ce message d'erreur c'est que la librairie n'a pas fonctionné, je vais donc afficher un simple message d'erreur personnalisé,

Merci à toi !

Je fait un petit UP pour Dan parce que mon sujet sujet est bien descendu

Re Up

re,

Si ton erreur se passe lors de la définition de la variable, tu n'arriveras pas à utiliser un message d'erreur puisque les variables sont définies et contrôlées avant d'effectuer le code

Je pense qu'une solution serait d'effectuer ce contrôle à l'ouverture du classeur car agir sur ton bouton en fonction d'une bibliothèque non installée ne me parait pas évident.

Par ailleurs le fait de définir outlook comme messagerie ne permet pas, je crois, d'utiliser une autre messagerie.

Si tu veux envoyer une feuille excel ou un fichier par mail, je pense que tu pourrais utiliser une autre code.

Mais là il faudrait que tu donnes des explications sur ton appli et le but recherché.

Tu dois aussi définir les variables dossier_fact, nom agence, etc...

A te relire

Dan

Bonjour Dan, merci de ta réponse !

Alors en fait, je veux envoyer par mail par un clic, le document actif en pièce jointe, c'est aussi simple que cela

J'ai utilisé Outlook parce que là où je fait mon stage, c'est leur messagerie par défaut.

Vous auriez peut-être une autre solution pour envoyer un mail par le client mail par défaut peut-être ?

Merci

Rechercher des sujets similaires à "empecher execution macro"