XL 2019 Macro + message d'alerte

Utilisateur222.222

XLDnaute Nouveau
Bonjour à tous.

Je rédige des documents de rapports.

Chaque rapport est enregistré dans la façon suivante : NumeroRapport_(NumeroIdentification)

Le numéro de rapport ainsi que le numéro d’identification sont chacun renseignés dans une cellule du fichier excel comme présenté dans le fichier joint.
J'ai crée une macro me permettant d'enregistrer un pdf automatiquement.

Cependant, j'aimerais que l'on m'affiche un message ( avec MsgBox par exemple) comme "Veuillez vérifier les numéros de rapports" si jamais le NumeroRapport n'est pas le même que celui contenu dans la cellule du fichier excel et de même pour le NumeroIdentification s'il n'est pas le même que celui renseigné dans le fichier excel.

Cela permettrait de ne plus avoir d'erreur avec un rapport qui porterait le numéro d'un autre ( oubli du changement du numero de rapport si l'on en prends un ancien pour le modifier ou autre par exemple)

J'aimerais donc de l'aide dans la façon de rédiger ceci dans le programme de la macro, un exemple avec le fichier joint me serait d'une grande aide.

Je vous remercie de vos réponses
 

Pièces jointes

  • 987654_(123456).xlsx
    9 KB · Affichages: 4

Jacky67

XLDnaute Barbatruc
Bonjour à tous.

Je rédige des documents de rapports.

Chaque rapport est enregistré dans la façon suivante : NumeroRapport_(NumeroIdentification)

Le numéro de rapport ainsi que le numéro d’identification sont chacun renseignés dans une cellule du fichier excel comme présenté dans le fichier joint.
J'ai crée une macro me permettant d'enregistrer un pdf automatiquement.

Cependant, j'aimerais que l'on m'affiche un message ( avec MsgBox par exemple) comme "Veuillez vérifier les numéros de rapports" si jamais le NumeroRapport n'est pas le même que celui contenu dans la cellule du fichier excel et de même pour le NumeroIdentification s'il n'est pas le même que celui renseigné dans le fichier excel.

Cela permettrait de ne plus avoir d'erreur avec un rapport qui porterait le numéro d'un autre ( oubli du changement du numero de rapport si l'on en prends un ancien pour le modifier ou autre par exemple)

J'aimerais donc de l'aide dans la façon de rédiger ceci dans le programme de la macro, un exemple avec le fichier joint me serait d'une grande aide.

Je vous remercie de vos réponses
Bonjour,
J'ai crée une macro me permettant d'enregistrer un pdf automatiquement.
Il n'y a aucune macro de ce type dans le classeur en pj
 

Utilisateur222.222

XLDnaute Nouveau
Le programme de la macro pour générer le fichier pdf est le suivant :

Sub macro_test()
'
' macro_test Macro
'

''Pour la generation du PDF

Chemin = ThisWorkbook.Path & "\"
NomFichier = Split(ThisWorkbook.Name, ".")(0)
NomFeuille = ActiveSheet.Name

' Construction du chemin complet

CheminComplet = Chemin & NomFichier & ".pdf"
' Création fichier PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminComplet, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True


End Sub
 

Jacky67

XLDnaute Barbatruc
Le programme de la macro pour générer le fichier pdf est le suivant :

Sub macro_test()
'
' macro_test Macro
'

''Pour la generation du PDF

Chemin = ThisWorkbook.Path & "\"
NomFichier = Split(ThisWorkbook.Name, ".")(0)
NomFeuille = ActiveSheet.Name

' Construction du chemin complet

CheminComplet = Chemin & NomFichier & ".pdf"
' Création fichier PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminComplet, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True


End Sub
Re..
Un classeur .Xlsx ne peut pas contenir de macro
Selon l'exemple donné, la macro pourrait ressembler à ceci
VB:
Sub macro_test()
    Dim chemin$, NomFichier$
    chemin = ThisWorkbook.Path & "\"
    NomFichier = Split(ThisWorkbook.Name, ".")(0)
    If Trim(Replace(Replace(NomFichier, "_(", ""), ")", "")) = Replace([c6], "N°", "") & [d18] Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & NomFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    Else
        MsgBox "Saisie incorrecte" & vbLf & "Le classeur n'est pas enregistré", vbCritical, "Information"
    End If
End Sub
 

Pièces jointes

  • 9876543_(1234567) .xlsm
    21.2 KB · Affichages: 11
Dernière édition:

Utilisateur222.222

XLDnaute Nouveau
Re..
Un classeur .Xlsx ne peut pas contenir de macro
Selon l'exemple donné, la macro pourrait ressembler à ceci
VB:
Sub macro_test()
    Dim chemin$, NomFichier$
    chemin = ThisWorkbook.Path & "\"
    NomFichier = Split(ThisWorkbook.Name, ".")(0)
    If Trim(Replace(Replace(NomFichier, "_(", ""), ")", "")) = Replace([c6], "N°", "") & [d18] Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & NomFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    Else
        MsgBox "Saisie incorrecte" & vbLf & "Le classeur n'est pas enregistré", vbCritical, "Information"
    End If
End Sub
Parfait, j'ai essayé votre proposition et elle fonctionne très bien merci beaucoup, et merci pour l'information également
 

Discussions similaires

Réponses
9
Affichages
424
Réponses
14
Affichages
515

Statistiques des forums

Discussions
315 093
Messages
2 116 130
Membres
112 667
dernier inscrit
foyoman