Choix variable suivant bouton utilisé

Bonsoir amis programmeurs,

j'ai besoin de votre aide.

dans le classeur"PourImpr" ci-joint, j'aimerais que suivant le bouton choisi, la liste des destinataires d'un email corresponde aux destinataires dont l'adresse mail est située dans les colonnes T à AC.

Je vous joints aussi la partie du code qui permet d'enregistrer le fichier en pdf et de l'envoyer par mail. Comme vous le verrez, les destinataires sont toujours les mêmes, quelque soit le bouton sur lequel on clique. Chose que je souhaiterais donc changer. En d'autres termes, à chaque bouton doit correspondre une liste respective de destinataires.

Le fichier est protégé par le mdp: "tpm".

Merci d'avance !

Jojo la frite

Sub FFSPrintPO()
Dim dest, PDF_PJ, ListDif As String
 Dim OutApp, OutMail As Object

    Application.ScreenUpdating = False

    NomFour = Range("A60")

' Commentaire
    datatexte = Range("E12")

' Copie du commentaire
    Windows(NomFour & ".xls").Activate
    Range("B65000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(rowOffset:=0, columnOffset:=2).Select

' Test si présence d'un commentaire
' Err.Number = 91 est le numéro d'erreur qui apparait quand il n'y a pas de commentaire associé à la cellule
    On Error Resume Next
    Commentaire = ActiveCell.Comment.Text
    If Err.Number <> 91 Then Exit Sub

    ActiveCell.AddComment
    ActiveCell.Comment.Text Text:=datatexte
    ActiveCell() = "v"
    ActiveCell.Offset(rowOffset:=0, columnOffset:=-2).Select

    Windows("PourImpr.xls").Activate
    Sheets(PointOrange).Select

 ' Impression de la feuille
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1

 ' enregistrement d'une copie au format pdf
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="C:\Users\Joël\Desktop\Journal\points oranges\" & Format(Now(), "yymmdd") & "-PointOrange-" & NomFour, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

    ' envoie du point orange en pdf par email
         dest = "C:\Users\Joël\Desktop\Journal\points oranges\" & Format(Now(), "yymmdd") & "-PointOrange-" & NomFour & ".pdf"

    PDF_PJ = dest
    ListDif = Range("T10") & ";" & Range("T11") & ";" & Range("T12") & ";" & Range("T13") & ";" & Range("T14")

        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    PDF_PJ, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    'destinataires
        .To = ListDif
        .Cc = ""
        .Attachments.Add PDF_PJ
        .Subject = "point orange" & NomFour
        .Display
        .Body = datatexte
        .Send
    End With

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    ActiveWorkbook.Close SaveChanges:=False
    Application.CutCopyMode = False

End Sub
13pourimpr.zip (32.63 Ko)

dans le classeur "PourImpr" ci-joint...

voici le fichier.

8pourimpr.zip (32.63 Ko)

Bon...Jour !

Modifier la macro de la manière suivante :

Sub FFSPrintPO(i%)
Dim dest$, PDF_PJ, ListDif$, ii%, iLR%
Dim OutApp, OutMail As Object
'la suite sans changement jusqu'à...
    PDF_PJ = dest
'Supprimer la ligne suivante
    'ListDif = Range("T10") & ";" & Range("T11") & ";" & Range("T12") & ";" & Range("T13") & ";" & Range("T14")
et remplacer par :
    iLR = Cells(10, i).End(4).Row
    ListDif = Cells(10, i).Value
    For ii = 11 To iLR
        ListDif = ListDif & ";" & Cells(ii, i).Value
    Next
'la suite sans changement

A+

Bon....jour, bonne nuit, je ne sais plus

Merci pour votre aide.

Je n'ai plus le courage d'essayer, la fatigue a eu raison de moi.

Je vous tiendrai au courant dès que j'aurai modifier mon code.

Encore merci !

Jojo la frite

Heu... La nuit porte conseil !

Bien entendu il faudra modifier tes macros d'appel pour qu'elles envoient le paramètre :

La syntaxe exacte est assez subtile :

Private Sub PressesBlocs_Click()
Y = Application.Run("'FFS.xls!FFSPrintPO'", "20")
End Sub

Private Sub PressesBilles_Click()
Y = Application.Run("'FFS.xls!FFSPrintPO'", "21")
End Sub

Private Sub LigneBuses_Click()
Y = Application.Run("'FFS.xls!FFSPrintPO'", "22")
End Sub
'et ainsi de suite . . .

Merci d'y avoir encore réfléchi.

Je n'ai toujours pas eu le temps de tester.

Je vous tiendrai informé.

À bientôt !

Nickel !

C'est exactement ce que j'attendais !

Merci et bon weekend !

Jojo la frite

Rechercher des sujets similaires à "choix variable suivant bouton utilise"