Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Conversion d'une variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cibleo

XLDnaute Impliqué
Bonjour le forum,

A la fin de mon code, j'aimerais que la variable NbreDest apparaisse sous cette forme : 1 seul destinataire lorsqu'il est unique et comme ceci 3 destinataires lorsqu'ils sont 3.

Si je coche 1 destinataire en colonne A feuille "MesDestinataires", mon code retranscris cela 1 destinataires (Voir la Msgbox)

Code:
Sub MsgBox_Liste_destinataires()
Dim cell As Range, ListDest As String, [COLOR=red]NbreDest As Byte[/COLOR], X As Byte
With Sheets("MesDestinataires")
    If Application.CountA(.Range("A2:A8")) = 0 Then MsgBox "Il faut désigner au moins un destinataire.", _
    vbExclamation: Exit Sub
    For Each cell In .Range("B2:B8")
        If cell.Offset(0, -1).Value = "x" Then
          ListDest = ListDest & cell.Text & ", "
          [COLOR=red]NbreDest = NbreDest + 1[/COLOR]
        End If
    Next
    If ListDest <> "" Then 'partie conçue par pierrejean
       ListDest = Trim(ListDest)
       ListDest = Left(ListDest, Len(ListDest) - 1)
        If InStrRev(ListDest, ",") <> 0 Then
          X = InStrRev(ListDest, ",")
          ListDest = Left(ListDest, X - 1) & " et " & Right(ListDest, Len(ListDest) - X - 1)
        End If
       ListDest = ListDest & "."
    End If
    If MsgBox("Vous allez envoyer votre mail à " [COLOR=red]& NbreDest & " destinataires :[/COLOR] " _
    & vbCrLf & vbCrLf & ListDest & vbCrLf & vbCrLf & "Voulez-vous continuer ?", vbYesNo + vbInformation) = vbNo Then Exit Sub
    MsgBox ("La suite de mon programme")
End With
End Sub

Pouvez-vous m'aider à modifier mon code.
S'il ya des améliorations à apporter à cette macro, n'hésitez pas.

Cibleo

Ps : j'ai de gros problèmes de connexion à internet, pas sûr que je puisse vous répondre dans l'immédiat.
 

Pièces jointes

Re : Conversion d'une variable

Bonsoir Cibleao 🙂,
Code:
[COLOR=blue]Sub[/COLOR] MsgBox_Liste_destinataires()
[COLOR=blue]Dim[/COLOR] cell [COLOR=blue]As[/COLOR] Range, ListDest [COLOR=blue]As String[/COLOR], NbreDest [COLOR=blue]As Byte[/COLOR], X [COLOR=blue]As Byte[/COLOR], Msg [COLOR=blue]As String[/COLOR]
[COLOR=blue]With[/COLOR] Sheets("MesDestinataires")
    [COLOR=blue]If[/COLOR] Application.CountA(.Range("A2:A8")) = 0 [COLOR=blue]Then[/COLOR] MsgBox "Il faut désigner au moins un destinataire.", _
    vbExclamation: [COLOR=blue]Exit Sub[/COLOR]
    [COLOR=blue]For Each[/COLOR] cell [COLOR=blue]In[/COLOR] .Range("B2:B8")
        [COLOR=blue]If[/COLOR] cell.Offset(0, -1).Value = "x" [COLOR=blue]Then[/COLOR]
          ListDest = ListDest & cell.Text & ", "
          NbreDest = NbreDest + 1
        [COLOR=blue]End If[/COLOR]
    [COLOR=blue]Next[/COLOR]
    [COLOR=blue]If[/COLOR] ListDest <> "" [COLOR=blue]Then[/COLOR] [COLOR=green]'partie conçue par pierrejean[/COLOR]
       ListDest = Trim(ListDest)
       ListDest = Left(ListDest, Len(ListDest) - 1)
        [COLOR=blue]If[/COLOR] InStrRev(ListDest, ",") <> 0 [COLOR=blue]Then[/COLOR]
          X = InStrRev(ListDest, ",")
          ListDest = Left(ListDest, X - 1) & " et " & Right(ListDest, Len(ListDest) - X - 1)
        [COLOR=blue]End If[/COLOR]
       ListDest = ListDest & "."
    [COLOR=blue]End If[/COLOR]
    [COLOR=blue]If[/COLOR] NbreDest = 1 [COLOR=blue]Then[/COLOR] Msg = " seul destinataire : " [COLOR=blue]Else[/COLOR] Msg = " destinataires : "
    [COLOR=blue]If[/COLOR] MsgBox("Vous allez envoyer votre mail à " & NbreDest & Msg _
    & vbCrLf & vbCrLf & ListDest & vbCrLf & vbCrLf & "Voulez-vous continuer ?", vbYesNo + vbInformation) = vbNo [COLOR=blue]Then Exit Sub[/COLOR]
    MsgBox ("La suite de mon programme")
[COLOR=blue]End With[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Bon WE 😎
 
Re : Conversion d'une variable

bonsoir
un petit truc

 
Re : Conversion d'une variable

Bonjour à tous, 🙂
Bonjour JNP, Banzai64

Absent du forum durant 3 mois, je découvre le petit utilitaire de romain, je tacherais de l'utiliser.
Pas mal la syntaxe du Iif, merci à tous les 2.

Bon week end à tous
A bientôt Cibleo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
408
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
267
Réponses
41
Affichages
890
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…