Accéder à un bout de code

Résolu
Bonjour,

Je souhaiterai mettre un bouton de commande sur un onglet excel (excel 2010) et qui me renvoie directement à un bout du code dans le module 2 par exemple.

Il s'agit en fait de pouvoir changer l'adresse mail programmé en VBA.

Si vous avez une solution plus simple, je suis preneur

3 réponses

  1. Modérateur
    Bonjour,
    Voir peut être le problème dans l'autre sens...
    Si j'ai bien compris, votre code VBA fait appel à une adresse mail "en dur" dans le code. Il suffit, si j'ai bien compris votre question, de placer cette adresse mail dans votre cellule et que le code fasse appel à cette cellule.

    Exemple :
    avant :
    Dim AddMail As String
    AddMail = "machin.truc@bidule.fr"

    après :
    Dim AddMail As String
    AddMail = Sheets("Feuil18").Range("C11").Value

    et saisir, en feuille Feuil18, dans la cellule C11 votre adresse mail. A chaque changement, le code en tiens compte...

    ... ou alors je n'ai rien compris à la demande
    1. Bonjour Pijaku,

      Il me semble que tu as tout compris !!!!
      J'essaie ça au plus vite. En tout cas merci pour la réactivité !
  2. Bonjour Pijaku,

    Merci pour cette idée qui était l'optimisation que je cherchais.

    Une autre question, comment de cette manière mettre plusieurs receveurs, disons 4 au maximum mais si les cellules ne sont pas remplis cela prends en compte seul celles qui sont remplies.

    Voici le code que j'utilise

    Sub EnvoiMail()
      Workbooks("Tableau de bord").SendMail Recipients:=Sheets("Sommaire").Range("C20").Value, _
                              Subject:="Tendance", _
                              ReturnReceipt:=False
                              
    End Sub
    1. Modérateur
      Bonjour,
      comment de cette manière mettre plusieurs receveurs
      avec une boucle :
      Sub EnvoiMail()
      Dim Lig As Byte
      'pour les lignes de 20 à 30 (donc de la cellule C20 à C30 :
      For Lig = 20 To 30
      Workbooks("Tableau de bord").SendMail Recipients:=Sheets("Sommaire").Range("C" & Lig).Value, _
                                Subject:="Tendance", _
                                ReturnReceipt:=False
      Next Lig       
      End Sub

      mais si les cellules ne sont pas remplis cela prends en compte seul celles qui sont remplies
      en ajoutant un test :
      Sub EnvoiMail()
      Dim Lig As Byte
      For Lig = 20 To 30
           If Sheets("Sommaire").Range("C" & Lig).Value <> "" Then
                Workbooks("Tableau de bord").SendMail Recipients:=Sheets("Sommaire").Range("C" & Lig).Value, _
                                Subject:="Tendance", _
                                ReturnReceipt:=False
           End If
      Next Lig
      End Sub