Fonctionnement MsgBox VbYesNoCancel

Et non justement, je ne trouve pas la solution pour que lorsque je clique sur le bouton "Envoyer mail" de la fenêtre "Consultation" ça m'ouvre le devis au format pdf pour que je le vérifie et quand je le ferme, ça ouvre outlook avec le mail pré-rédigé et le devis au format pdf en pièce jointe.

Je n'ai pas trouvé tes modifications dans le fichier que tu as mis en pièce jointe dans ta réponse de ce matin... ou alors je ne suis pas réveillé...

Excuse moi Tranbi mais la je comprends plus

Moi je me suis occupé jusqu'a maintenant de envoie devis dans l'userform Devis et maintenant tu me parles de consultation...

J'ai regardé ta macro de envoie devis dans consultation ça m'a l'air correct...

Non ce n'est pas correct

quelle est la valeur de rep et de parcours?

regarde la macro que j'ai fait dans devis....

et oublie pas le attachement nom du fichier

A+ François

En fait, je me suis lancé dans ce projet un peu à la va vite...

Du coup, comme je débute en vba, je découvre au fur et à mesure ses possibilités.

C'est pour ça que j'ai regroupé le UserForm Devis sur le UserForm Consultation. D'où la confusion dans nos échanges.

Donc maintenant, je travaille uniquement sur les UserForm Saisie nouveau bateau et Consultation (multipage dans lequel on retrouve la partie Devis)

J'ai donc voulu faire un peu de nettoyage en supprimant les UserForm qui n'avaient plus d'intérêt (FicheB Bateau et Devis) et je découvre que je ne peux plus enregistrer de nouvelles saisies. Est-ce que le problème peut venir de la suppression des UserForm ?

erreur compilation

Et si je supprime le paramètre vbdefaultbutton1, c'est MaMessagerie qui devient la variable non définie...

Pour ce qui est de l'envoi du mail au demandeur, ça fonctionne presque nickel. Je n'arrive juste pas à définir le chemin d'accès par défaut. J'ai modifié la structure du nom de fichier en supprimant la variable LaDate pour que le nom de fichier corresponde à mes attentes. Mais si je modifie le dossier d'enregistrement, la fois suivante je me retrouve dans le dernier dossier où j'ai enregistré ma pièce jointe.

Sinon, c'est nickel pour ce qui est de l'ouverture de la pièce jointe puis de l'envoi du mal avec cette même pièce jointe.

Private Sub BoutonMailDemandeur_Click()

    Dim i As Long, MonDevis As Object
  i = Sheets("LISTE").Range("V1").Value

    [t_Bateaux].Item(i, 31) = tb_DdeurChgt
    [t_Bateaux].Item(i, 32) = Me.tb_DdeurTrp
    [t_Bateaux].Item(i, 34) = Consultation.tb_PrestChgt
    [t_Bateaux].Item(i, 35) = Consultation.tb_PrestTrp
    Sheets("Devis_transport").Visible = True
    Sheets("Devis_transport").Select
    ActiveWorkbook.RefreshAll
    Sheets("Devis_transport").Range("D4") = Date 'Date du jour
    Sheets("Devis_transport").Range("B6") = [t_Bateaux].Item(i, 4).Value 'Nom détenteur
    Sheets("Devis_transport").Range("B8") = [t_Bateaux].Item(i, 9).Value & " - " & [t_Bateaux].Item(i, 10).Value & " " & [t_Bateaux].Item(i, 11).Value 'Adresse détenteur
    Sheets("Devis_transport").Range("B11") = [t_Bateaux].Item(i, 3).Value 'Nom du bateau
    Sheets("Devis_transport").Range("B13") = [t_Bateaux].Item(i, 15).Value & "m" 'Longueur
    Sheets("Devis_transport").Range("D13") = [t_Bateaux].Item(i, 16).Value & "m" 'Largeur
    Sheets("Devis_transport").Range("B16") = [t_Bateaux].Item(i, 6).Value 'Localisation bateau
    Sheets("Devis_transport").Range("C18") = [t_Bateaux].Item(i, 23).Value 'Distance en km
    Sheets("Devis_transport").Range("B21") = [t_Bateaux].Item(i, 21).Value 'Type de de véhicule pour le transport
    Sheets("Devis_transport").Range("C21") = Val(Replace([t_Bateaux].Item(i, 31), ",", ".")) + Val(Replace([t_Bateaux].Item(i, 32), ",", ".")) 'Prix chargement + transport
    Sheets("Devis_transport").Range("D21") = (Val(Replace([t_Bateaux].Item(i, 31), ",", ".")) + Val(Replace([t_Bateaux].Item(i, 32), ",", "."))) * 1.2 'Prix TTC

        'conversion pdf du listing et affichage
    Dim PieceJointe As String
    Dim repertoire As String, nomFichier As String, extension As String
    repertoire = "C:\Users\b.lastennet\Documents\AO APER\Suivis\Test"
    'au cas où l'usager annule au lien d'enregistrer
    On Error Resume Next
    nomFichier = "Devis transport bateau " & tb_Bateau & " - " & tb_NomDemandeur
    extension = ".pdf"
    PieceJointe = Application.GetSaveAsFilename(nomFichier, fileFilter:="Pdf (*.pdf), *.pdf")
'    If PieceJointe <> False Then
     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
     PieceJointe, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
     From:=1, To:=1, OpenAfterPublish:=True
     Sheets("Devis_transport").Visible = False
     Set MonDevis = CreateObject("Outlook.Application") 'Création d'un objet Outloook
     Set MonDevis = MonDevis.CreateItem(0)
     MonDevis.Display
     With MonDevis
        .To = tb_Mail
        .Subject = "Demande devis transport bateau" & " " & tb_Bateau & " - " & FicheBateau.tb_Immat & " - " & tb_NomDemandeur
        .htmlbody = "Bonjour," & "<br><br>" & _
                    "Veuillez trouver en pièce jointe le devis pour le transport de votre bateau"
        .Attachments.Add PieceJointe
        .Display 'afficher le mail avant de l'envoyer sinon placer send pour l'envoyer
     End With
 '   End If
End Sub

Bon, j'espère que je n'ai tout foutu en l'air...

A te lire en espérant que tu puisses me rassurer

Bonne soirée

20test-suivi-aper-9.zip (484.37 Ko)

Bonjour

Problème de mail résolu

Bonjour

Pour les nouveaux bateaux tu as toujours l'userform accessible de la page d'accueil

Voir ajouter un bouton sur la feuille suivi_Aper

A+ François

4test-suivi-10.zip (508.29 Ko)

Bonjour Fanfan et le forum,

Après une semaine de facturation, me voila de retour aux affaires...

Pour commencer, la feuille Suivi_APER ne sera pas visible, c'est juste pour naviguer entre la feuille et l'usf durant la conception du projet.

A l'ouverture du fichier, seule la fenêtre menu apparaîtra.

Problème, dans mon usf Consultation, à l'ouverture, si je clique sur le bouton Relance commercial, ça affiche l'onglet Relance commercial... Normal... Mais si dans la foulée, sans rien saisir, je clique sur Devis ça m'indique un premier message qui, lui, est bien prévu à ce moment là, mais quand je le valide, un second message qui n'a rien à faire là apparaît. Et quand je le valide, la fenêtre de débogage s'ouvre.

Là, j'avoue que je ne sais pas du tout à quoi cela est dû...

Un peu d'aide serait la bienvenue

Merci d'avance

Bonjour

Quand tu clic sur Relance commercial tu rempli la listbox 2

quand tu clic sur devis tu interroge la listbox 1.....

J'ai donc rempli la listbox1 avec les données de la listbox 2...

7test-suivi-10.zip (462.05 Ko)

A+ François

Bonjour Fanfan,

Nickel, ça marche. J'ai réorganisé la procédure BoutonDevis car les messages apparaissaient dans le désordre et provoquaient des bugs.

Question : pour un confort de navigation entre les différents onglets de l'usf Consultation, est-ce que je dois prévoir tous les cas de figure et les rédiger un à un, ou est-ce qu'il y a un moyen plus simple ? C'est pas très clair comme question, j'en conviens, mais je ne vois pas comment l'exprimer...

J'essaye de m'y remettre un peu plus sérieusement histoire d'avancer plus vite, mais c'est pas gagné...

Bonne soirée

@+ Bertrand

4test-suivi-11.zip (438.91 Ko)

Bonjour

J'ai modifié l'usf consultation

Pour le reste malheureusement il n'y a pas de solution miracle

Il faut tout tester un à un

4test-suivi-11.zip (447.05 Ko)

A+ François

Bonjour

Est-ce qu'on peut lancer une procédure sur le changement de page d'un multipage ?

Par exemple, lorsque je quitte la page "Fiche bateau", le textbox1 et son label disparaissent. Ils réapparaissent à la réouverture de la page "Fiche bateau".

Je pense que ça me faciliterait les choses.

Bon week-end

Bertrand

Il suffit de demander... lol

3test-suivi-11.zip (447.35 Ko)

A+ François

Bonjour

J'ai un problème avec le message qui s'affiche lors de l'enregistrement d'un nouveau bateau. En effet, si le combobox "Devis nécessaire" est "OUI", alors il faut envoyer un mail au commercial. Ca c'est bon.

En revanche, si le combobox "Devis nécessaire" est "NON", la question ne pose pas et il y a juste à enregistrer les données.

J'ai essayé de bouger l'envoi du mail mais ça ne marche pas...

J'imagine que c'est simple, mais bon...

Bon week-end à tous

5test-suivi-14.zip (465.68 Ko)

Bonjour

J'espère que ça répond à tes souhaits...

5test-suivi-14.zip (457.14 Ko)

A+ François

Bonjour

J'ai remonté la ligne

If [t_Bateaux].Item(1, 1) <> "" Then n = [t_Bateaux].Rows.Count + 1 Else n = 1

au-dessus de l'enregistrement des données, sinon celles-ci s'enregistraient dans l'en-tête de colonne.

Et j'ai également rajouté une MsgBox pour dire que le bateau était bien enregistré même lorsqu'il n'y a pas de devis.

Sinon, c'est nickel. Je pense que je n'en serai pas arrivé là sans ton aide.

Mais il reste encore du chemin à parcourir...

Bonne soirée

Bonjour

Petit blocage pour lequel je ne trouve pas de solution viable.

Dans mon usf Consultation, sur l'onglet Devis, s'il n'y a pas de date de réponse du commercial, le statut est "En attente devis du commercial". J'essaye de faire en sorte que lorsque je saisie une date dans ce textbox, le statut se mette à jour.

J'ai essayé avec différents événements (change, exit...) mais je n'y arrive pas...

7test-suivi-16.zip (475.11 Ko)

Bonjour

J'espère que ça te va

9test-suivi-16.zip (464.80 Ko)

A+ François

Bonjour,

Je reviens à la charge avec mon fichier après une période de boulot bien chargée où j'ai laissé mon projet un peu de côté.

Lorsque j'enregistre mon formulaire de saisie, il y a une vbYesNoCancel qui me demande si je veux envoyer un mail au commercial (mail1). Ça ça fonctionne.

Dans la foulée, je souhaite envoyer un mail au demandeur, sous condition :

  • s'il demande un devis, je lui envoie un mail le prévenant qu'on va lui envoyer un devis (mail2)
  • s'il ne demande pas de mail, je lui envoie un mail lui demandant de nous contacter pour fixer un rdv (mail3)

Le mail1 pour le commercial se génère bien, ainsi que le mail2 pour le demandeur s'il a demandé un devis. En revanche, je n'arrive pas à générer le mail3.

Je pense que j'ai un problème de condition, mais je ne m'en sors pas...

EnvoyerMail = MsgBox("Bateau enregistré avec succès!" & Chr(10) & "Voulez-vous envoyer un mail au commercial ?", vbYesNoCancel + vbExclamation + vbdefautltbutton1, "Bateau enregistré")
    If EnvoyerMail = vbCancel Then Exit Sub ' on quitte la macro
    If EnvoyerMail = vbNo Then
      [t_Bateaux].Item(n, 1) = Sheets("LISTE").Range("Z2")
    Else 'si envoyerMail=OUI on envoie le mail
      [t_Bateaux].Item(n, 25) = Date
      [t_Bateaux].Item(n, 1) = Sheets("LISTE").Range("Z3")

'Envoi du mail au commercial
      Set MaMessagerie = CreateObject("Outlook.Application") 'Création d'un objet Outloook
      Set MonMessage = MaMessagerie.CreateItem(0)
      MonMessage.Display
      MaSignature = MonMessage.htmlbody
      With MonMessage
            .To = Sheets("LISTE").Range("B18")
           .Subject = "Demande devis transport bateau" & " " & tb_Bateau & " - " & tb_Immat & " - " & tb_NomDemandeur & " " & tb_PrenomDemandeur
           .htmlbody = "Bonjour," & "<br><br>" & _
                    "Merci de me transmettre un devis pour le transport du bateau cité en objet et dont les éléments sont en pièces jointes" & "<br><br>" & _
                    "Nom du demandeur : " & tb_PrenomDemandeur & " " & tb_NomDemandeur & "<br>" & _
                    "Téléphone du demandeur : " & tb_Telephone & "<br>" & _
                    "Mail du demandeur : " & tb_Mail & "<br>" & _
                    "Nom du bateau : " & tb_Bateau & "<br>" & _
                    "Type du bateau : " & ComboBox_Typologie & "<br>" & _
                    "Matériaux du bateau : " & ComboBox_Materiaux & "<br>" & _
                    "Longueur du bateau : " & tb_Longueur & "m" & "<br>" & _
                    "Largeur du bateau : " & tb_Largeur & "m" & "<br>" & _
                    "Localisation du bateau : " & tb_AdresseBateau & "<br>" & _
        .Display 'afficher le mail avant de l'envoyer sinon placer send pour l'envoyer
      End With
    End If

'Envoi du mail au demandeur si demande de devis
    MsgBox ("Envoi du mail au demandeur")
    If SaisieBateau.ComboBox_Devis.Value = "OUI" Then
      Set MaMessagerie = CreateObject("Outlook.Application") 'Création d'un objet Outloook
      Set MonMessage = MaMessagerie.CreateItem(0)
      MonMessage.Display
      MaSignature = MonMessage.htmlbody
      With MonMessage
            .To = tb_Mail
           .Subject = "Demande déconstruction bateau" & " " & tb_Bateau & " - " & tb_Immat & " - " & tb_NomDemandeur & " " & tb_PrenomDemandeur
           .htmlbody = "Bonjour," & "<br><br>" & _
                    "Nous avons bien reçu votre demande de déconstruction du bateau cité en objet." & "<br><br>" & _
                    "Comme vous l'avez indiqué dans votre demande, vous souhaitez faire appel à nos service pour réaliser le transport de votre navire." & "<br><br>" & _
                    "Notre commercial va se déplacer afin de vérifier l'accessibilité de votre bateau et de définir les conditions d'enlèvement." & "<br>" & _
                    "Un devis vous sera transmis une fois la situation de vote bateau étudiée." & "<br>" & _
                    "Pour rappel, le bateau doit être débarrassé de tout élément autre que le matériel de navigation, et les engins pyrotechniques (fusées de détresse, feux à main, fusées parachute...), les bouteilles de gaz et les extincteurs sont interdits." & "<br>" & _
                    "Dans le cas où votre bateau ne serait pas débarrassé de ces éléments, nous nous verrions dans l'obligation de refuser la livraison de votre bateau et de vous facturer le déplacement." & "<br><br><br>" & _
                    "A compléter" & "<br>" & _
            .Display 'afficher le mail avant de l'envoyer sinon placer send pour l'envoyer
      End With
'Envoi du mail au demandeur si pas de devis
    Else
    Set MaMessagerie = CreateObject("Outlook.Application") 'Création d'un objet Outlook
      Set MonMessage = MaMessagerie.CreateItem(0)
      MonMessage.Display
      MaSignature = MonMessage.htmlbody
      With MonMessage
            .To = tb_Mail
           .Subject = "Demande déconstruction bateau" & " " & tb_Bateau & " - " & tb_Immat & " - " & tb_NomDemandeur & " " & tb_PrenomDemandeur
           .htmlbody = "Bonjour," & "<br><br>" & _
                    "Nous avons bien reçu votre demande de déconstruction du bateau cité en objet." & "<br><br>" & _
                    "Comme vous l'avez indiqué dans votre demande, vous souhaitez apporter vous-même votre bateau sur notre site." & "<br><br>" & _
                    "Merci de nous contacter au ########### afin de convenir d'un rendez-vous pour la livraison de votre navire." & "<br><br><br>" & _
                    "A compléter" & "<br>" & _
            .Display 'afficher le mail avant de l'envoyer sinon placer send pour l'envoyer
      End With
    End If
fin:
    MsgBox ("Bateau enregistré avec succès!")
    Unload Me
    Sheets("LISTE").Range("V1").Value = ""
    SaisieBateau.Show
End Sub

Je vous mets le fichier en pièce jointe.

Merci d'avance pour le coup de main

34test-suivi-23.zip (564.45 Ko)
Rechercher des sujets similaires à "fonctionnement msgbox vbyesnocancel"