Mise en ordre macro

Bonjour

Je me suis lancer dans une macro un peu trop complexe pour moi et j'ai besoin d'un coup de main !

Dans l'ensemble sa fonctionne plutôt pas mal, sauf qu'elle s’exécute dans le désordre en partie !

Explications : Pour la partie verte sa fonctionne, sauf si j'ai le malheur de cliquer sur non, lorsque qu'un dossier (portant le même nom) à déja été créée, j'ai une erreur d'éxécution 1004

La méthode 'saveAs' de l'objet '_Workbook à échoué

Sa je peut vivre avec !

Pour la partie plus bas, mon USERFORM apparait mais il me demande seulement après si je veux ajouter ce devis aux opportunités, donc pas du tout logique !

En gros je voudrais

1) Apparition du USERFORM

2) Msgbox :" Souhaitez vous ajoutez ce devis à vos opportunitées ?" oui ou non ?

Si, Oui Msgbox "Veuillez cliquer sur ajouter ", et si par grand malheur, ma TEXTBOX NOM est vide, Msgbox :"Veuillez remplir le nom de votre contact"

3)Si, Non ! mon USERFORM se ferme tout simplement

Si quelqu'un peut m'aider merci

Sub ENREGISTRER()

Dim Path As String

Dim File As String

Dim rep As Integer

Application.ScreenUpdating = False

Sheets(Array("DDE DEVIS", "NETTOYAGE", "data")).Copy

With ThisWorkbook.Sheets("NETTOYAGE")

File = "C:\Users\jno\Documents\Devis"

Path = "C:\Users\jno\Documents\Devis" & "\" & .Range("G11").Value & "DEVIS" & .Range("H8").Value

'Teste si le repertoire existe sinon creation

If Len(Dir(Path, vbDirectory)) = 0 Then

MkDir (File & "\" & .Range("G11").Value & "DEVIS" & .Range("H8").Value)

End If

'sauvegarde du fichier Excel

ActiveWorkbook.SaveAs Filename:=Path & "\" & "DEVIS" & " " & .Range("G11").Value & " " & .Range("H8").Value & " - " & Format(Date, "dd-mm-yy") & ".xls"

ActiveWorkbook.Close

.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path & "\" & "DEVIS" & " " & .Range("G11").Value & " " & .Range("H8").Value & " - " & Format(Date, "dd-mm-yy") & ".pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

From:=1, To:=2, OpenAfterPublish:=False

UserForm2.Show

rep = MsgBox("Souhaitez vous ajoutez ce devis à vos opportunitées ?", vbQuestion + vbYesNo)

If rep = vbNo Then

Unload UserForm2

End If

Exit Sub

If rep = vbYes Then

End If

MsgBox ("Cliquez sur Ajouter")

If txtNom.Text = "" Then

MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"

txtNom.SetFocus

End If

txtNom.Value = Sheets("Nettoyage").Range("G11").Value

txtdevis.Value = Sheets("Nettoyage").Range("H8").Value

TextBox2.Value = Sheets("Nettoyage").Range("H99").Value

TextBox3.Value = Sheets("Nettoyage").Range("H102").Value

Bonjour

Un petit up !

Bonjour,

un code ne se trompe pas ni ne s'exécute dans le désordre : il suit juste ses directives …

S'il ne fonctionne pas, il n'y est pour rien car c'est la faute de son concepteur !

Rien qu'en progressant dans le code en mode pas à pas via la touche F8, cela permet de trouver ses boulettes …

Bonjour

J'ai revu ma macro, j'utiliserais call pour qu'elle fonctionne avec l'autre cependant j'ai un petit problème, mon UserForm qui ne se ferme pas, après ajout.

Quelqu'un aurait une idée ?

Sub test()
Dim rep As Integer
rep = MsgBox("Souhaitez vous ajoutez ce devis à vos opportunitées ?", vbQuestion + vbYesNo)
If rep = vbNo Then
End If
If rep = vbYes Then
MsgBox ("Cliquez sur Ajouter")
UserForm2.Show
End If
If txtNom = " " Then
MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
txtNom.SetFocus
If Sheets("Nettoyage").Range("G11").Value = "0" Then
MsgBox ("Entrez le nom du client")
End If
txtNom.Value = Sheets("Nettoyage").Range("G11").Value
txtdevis.Value = Sheets("Nettoyage").Range("H8").Value
TextBox2.Value = Sheets("Nettoyage").Range("H99").Value
TextBox3.Value = Sheets("Nettoyage").Range("H102").Value
End If
Unload UserForm2
Exit Sub
End Sub
Rechercher des sujets similaires à "mise ordre macro"