Repositionnement sur textbox après msgbox
Bonjour
Nouveau problème, je voudrais que mon formulaire me affiche un message au cas ou je ferais un devis, sans avoir préalablement ajouter mon contact à l'aide d'un autre bouton de commande
ex : je clique ("Avez vous pensez à ajouter ce contact ?) si oui la macro s'éxécute et tout va pour le mieux dans le meilleur des mondes, et si non, nouveau msg box (ajouter ce contact à votre base de donnée avant de continuer) et retour à sur ma textboxNom, mais la sa bloque, quelqu'un pourrait m'aider ?
J'ai un début de code mais là je rame
Private Sub CmdFaire_un_devis_Click()
Dim rep As Integer
rep = MsgBox("Avez vous ajouter ce contact à votre base de donnée", vbQuestion + vbYesNo)
If rep = vbNo Then
End If
Dim B As Worksheet
Dim D As Worksheet
Dim DL As Integer
Set B = Sheets("BASE DE DONNEE")
Set D = Sheets("DDE DEVIS")
DL = B.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1
If txtNom.Text = "" Then
MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
txtNom.SetFocus
ElseIf txtPrenom.Text = "" Then
MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
txtPrenom.SetFocus
Else
D.Range("C24").Value = UCase(txtNom.Text)
D.Range("C25").Value = (txtPrenom.Text)
D.Range("C23").Value = (txtEntreprise.Text)
D.Range("C26").Value = (txtAdresse.Text)
D.Range("C27").Value = (txtCP.Text)
D.Range("C28").Value = (txtVille.Text)
D.Range("C32").Value = (txtEmail.Text)
D.Range("C29").Value = (txtTelFixe.Text)
D.Range("C30").Value = (txtTelPortable.Text)
D.Range("C31").Value = (txtFax.Text)
Sheets("DDE DEVIS").Activate
End If
Unload Me
End Sub
Re moi
Voilà qui est pas très propre mais qui pourras m'aider, bon courage pour la suite
Private Sub CmdFaire_un_devis_Click()
Dim rep As Integer
rep = MsgBox("Avez vous ajoutez ce contact à la base de donnée ", vbQuestion + vbYesNo)
If rep = vbNo Then
MsgBox ("Cliquez sur Ajouter")
Exit Sub
Else
End If
Dim B As Worksheet
Dim D As Worksheet
Dim DL As Integer
Set B = Sheets("BASE DE DONNEE")
Set D = Sheets("DDE DEVIS")
DL = B.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1
If txtNom.Text = "" Then
MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
txtNom.SetFocus
ElseIf txtPrenom.Text = "" Then
MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
txtPrenom.SetFocus
Else
D.Range("C24").Value = UCase(txtNom.Text)
D.Range("C25").Value = (txtPrenom.Text)
D.Range("C23").Value = (txtEntreprise.Text)
D.Range("C26").Value = (txtAdresse.Text)
D.Range("C27").Value = (txtCP.Text)
D.Range("C28").Value = (txtVille.Text)
D.Range("C32").Value = (txtEmail.Text)
D.Range("C29").Value = (txtTelFixe.Text)
D.Range("C30").Value = (txtTelPortable.Text)
D.Range("C31").Value = (txtFax.Text)
Sheets("DDE DEVIS").Activate
End If
Unload Me
End Sub
bonjour,
Pas facile de déboguer sans le fichier qui va avec ...
A minima il faut remonter le Unload Me d'une ligne (sinon tu sors du USF à tout les coups et tes MsgBox servent à rien.
Unload Me
End If
End Sub
Si ça ne suffit pas fournir le fichier avec le USF qui va avec ...
A+
Merci Galopin, mais en faite je me suis répondu à moi même plus haut tout fonctionne impeccable, je me suis dis que c'est toujours intéressant d'avoir la réponse à un sujet par contre est il possible de revenir à la ligne dans une TEXTBOX ?
et un petit souci avec une autre MACRO à savoir Sub Enregistrer(), d'après le chemin défini je devrais retrouver la feuille dans le dossier devis or, je retrouve la feuille dans mes documents ? Une piste ?
Sub Enregistrer()
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "C:\Users\jno\Documents\Devis"
MsgBox ThisWorkbook.Path
nomfichier = ActiveSheet.Range("G11") & "_DEVIS_" & Range("H8") & extension
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
End Sub