Accéder à un bout de code
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
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
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
-
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 -
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 -
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