XL 2019 VBA msgbox IF ELSE et END IF

watt3211

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis dont je n'arrive pas à le résoudre. J'ai un onglet "saisie" qui me permet de faire mon devis. Une fois la saisie effectuée, un aperçu du devis s'ouvre dans un onglet caché. Dans cet aperçu j'ai un bouton qui ouvre une boite de dialogue avant confirmation/archivage.
Mon problème c'est que une fois confirmé en appuyant sur "Oui" je souhaite:
Mettre la feuille en format pdf dans un fichier (et à défaut le créer si il n'existe pas)
  1. Dupliquer la feuille "Devis" en format "valeur"
  2. Changer le numéro de devis en passant à la valeur suivante +1 (Il s'agit d'une cellule de 3 cases fusionné)
  3. Cacher la feuille "valeur"
  4. Cacher la feuille "Devis"
  5. Ouvrir la feuille "Saisie"
  6. Effacer les données de saisie de la feuille "Saisie"
Ci-dessous la procédure que j'ai essayé de faire sans prendre en compte certains éléments au dessus.

VB:
'Procédure archivage feuille Excel

Sub ArchivageRapport()

    'Déclaration des variables
    Dim CheminAcces As String
    Dim Reponse As Integer
    Dim oWksh As Worksheet
    Dim oRng As Range
    
    'Affectation de la variable
    CheminAcces = "C:\Users\Nicol\Documents\Mars'eyes\Devis\"
    Reponse = MsgBox("T'as touuuuut verifié? ", vbQuestion + vbYesNo, "ENREGISTREMENT")
    
    'On teste la réponse de l'utilisateur
    If Reponse = vbYes Then
    
                Feuil4.ExportAsFixedFormat xlTypePDF, CheminAcces & "Devis " & Feuil4.Range("E5").Value & " " & Feuil3.Range("b2").Value & ".pdf", xlrqualityStandard, True, False, , , False
                MsgBox "Et hop c'est enregistré! Format PDF dans le dossier Devis", vbOKOnly + vbInformation, "Sauvegarde"
    
    'Création d'un onglet caché et copie les valeurs du devis
    
    
                Set oRng = Worksheets("Devis à confirmer").UsedRange
                Set oWksh = Worksheets.Add(After:=Worksheets(Worksheets.Count))
 
                With oWksh
                        .Name = "Devis n°" & oRng.Range("E5")
                        .Range("A1").Resize(oRng.Rows.Count, oRng.Columns.Count) = oRng.Value
                Dim rs As Worksheet
    
    Sheets("Devis à confirmer").Visible = False
    .Visible = False
    Sheets("Saisie").Visible = True
  
    Else
           Exit Sub
        
        'On quitte la procédure
        
    End If
End Sub

Merci pour votre aide!
 

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 715
Membres
102 637
dernier inscrit
TOTO33000