saisie modification et Email

jean123

XLDnaute Occasionnel
Bonjour à tous, étant novice en la matière, je sollicite votre aide afin de pouvoir créé un usf de saisie et de modification.

J'ai réussi à adapter une macro tant bien que mal sur une feuille Excel, mais j'aimerais passer par un usf, et là, je bloque.

Un grand merci pour votre aide.
 

Pièces jointes

  • paiement.xlsm
    44.3 KB · Affichages: 13
  • paiement.xlsm
    44.3 KB · Affichages: 17

Lone-wolf

XLDnaute Barbatruc
Re : saisie modification et Email

Bonsoir jean,

ton fichier en retour. Mais ça serait bien d'enregistrer les données en feuil2 en cas de modification adresse mail par exemple. Ensuite faire une recherche avec la combo modification(non opérationnelle pour l'instant). Puis avec le bouton Modification faire les changements.

J'ai modifié la formule pour le calcul de la taxe qui n'était pas correcte.




A+ :cool:
 

Pièces jointes

  • Copie de paiement.xlsm
    45.5 KB · Affichages: 25
  • Copie de paiement.xlsm
    45.5 KB · Affichages: 29

herve62

XLDnaute Barbatruc
Supporter XLD
Re : saisie modification et Email

Bonsoir
Eh Lone ça démarre comment pour le USF en direct ?
Sinon ensuite je pense qu'il faudra envoyer le résultat par mail en auto. ?
Ensuite j'avais fait une "Polémique" sur les Calandar ( j'étais encore avec 2007) qui ne fonctionnait plus avec 2010 et là il y en a un ??? on va encore dire que c'est juste un Monthview !!! moi cela me suffisait mais il semblerait que cela ne fonctionnera plus aussi , 2013 ... 2016 plus on avance ... Moins MS en fait
 

Lone-wolf

XLDnaute Barbatruc
Re : saisie modification et Email

Bonjour jean, herve

@jean: en PJ, la première partie(Sans Outllook), vois si celà te convient. J'ai substitué la formule par une ligne de code et ajouter le N" automatique pour chaque enregistrement. Il y a donc ajout - modification et recherche par combobox.

@herve + jean : pour commencer double-cliquez sur Afficher.


A+ :cool:
 

Pièces jointes

  • Copie de paiement-V2.xlsm
    35.7 KB · Affichages: 39
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : saisie modification et Email

Bonjour jean

Merci pour le retour, c'est vachement sympa
Tu demande de l'aide et tu t'en vas.
Mais on viens télécharger le fichier
Et pas un mot pour remercier.



Tiens, ça pourrait-être une chanson.
 

jean123

XLDnaute Occasionnel
Re : saisie modification et Email

C'est nickel un très grand merci à toi.
Pour l'envoi de mail, j'ai juste à intégrer la macro sur le bouton validé ?

Encore désolé pour ne pas avoir été plus réactif pour le message de remerciement
 
Dernière modification par un modérateur:

Lone-wolf

XLDnaute Barbatruc
Re : saisie modification et Email

Bonjour jean,

désolé, je viens de voir ton message.

Si c'est pour l'envoyer tout de suite, oui. Soit tu l'intègre au bouton Valider, soit tu crée une Sub à part
(Sub EnvoisMail() par ex.) et à la fin de la macro du bouton Valider tu écrit Call EnvoisMail.


A+ :cool:
 

jean123

XLDnaute Occasionnel
Re : saisie modification et Email

J'ai besoin de ton aide, j'ai suivi tes consignes pour la macro mais, j'ai un message d'erreur (erreur de compilation, variable non définie)
sur le texte en rouge (mail =)
Option Explicit
Dim lig As Integer, cel As Range, tot

Private Sub CmbRech_Change()
With Feuil2.Range("a2:a65536")
Set cel = .Find(Me.CmbRech, , xlValues, xlWhole)
If Not cel Is Nothing Then
Me.TextBox2 = cel.Offset(0, 0) 'Nom
Me.TextBox1 = Format(cel.Offset(0, 5), "dd.mm.yyyy") 'Date de paiement
Me.TextBox3 = cel.Offset(0, 1) 'Adresse mail
Me.ComboBox1 = cel.Offset(0, 3) 'N° de parking
Me.ComboBox2 = cel.Offset(0, 4) 'Mode de paiement
Me.TextBox4 = Replace(Me.TextBox4, ",", ".") 'Montant HT
Me.TextBox4 = Format(cel.Offset(0, 6), "0.00")
Feuil1.Range("i14") = cel.Offset(0, 6)
Feuil1.Range("i16") = cel.Offset(0, 7)
End If
End With
End Sub

Private Sub CmdModif_Click()
With Feuil2.Range("a2:a65536")
Set cel = .Find(Me.CmbRech, , xlValues, xlWhole)
If Not cel Is Nothing Then
cel.Offset(0, 0) = Me.TextBox2 'Nom
cel.Offset(0, 1) = Me.TextBox3 'Adresse mail
cel.Offset(0, 2) = Feuil1.Range("e3") 'Date d'enregistrement
cel.Offset(0, 3) = Me.ComboBox1 'N° de parking
cel.Offset(0, 4) = Me.ComboBox2 'Mode de paiement
cel.Offset(0, 5) = Me.TextBox1 'Date paiement
cel.Offset(0, 6) = Me.TextBox4 'Montant HT
cel.Offset(0, 6) = Format(Me.TextBox4, "# ##0.00\ €")
cel.Offset(0, 7) = cel.Offset(0, 6) * (Feuil1.Range("i15").Value + 1)
cel.Offset(0, 7) = Format(cel.Offset(0, 7), "# ##0.00\ €")
Feuil1.Range("f4") = Me.TextBox1
Feuil1.Range("c10") = Me.TextBox3
Feuil1.Range("f12") = Me.ComboBox1
Feuil1.Range("f14") = Me.ComboBox2
Feuil1.Range("i14") = cel.Offset(0, 6)
Feuil1.Range("i16") = cel.Offset(0, 7)
End If
End With
End Sub

Private Sub CmdQuitter_Click()
Unload Me
End Sub

Private Sub CmdValider_Click()

With Feuil1
.Range("c3") = .Range("c3") + 1
.Range("e3") = Date
.Range("f4") = Me.TextBox1
.Range("c8") = Me.TextBox2
If Me.TextBox3 Like "*@*.*" Then Feuil1.Range("c10") = Me.TextBox3
.Range("f12") = Me.ComboBox2
.Range("f14") = Me.ComboBox1
.Range("i14") = Format(Me.TextBox4, "# ##0.00\ €")
.Range("i16") = Me.TextBox4 * (.Range("i15").Value + 1)
.Range("i16") = Format(.Range("i16"), "# ##0.00\ €")
End With
With Feuil2
lig = .Range("a655236").End(xlUp).Row + 1
.Cells(lig, 1) = Me.TextBox2 'Nom
.Cells(lig, 2) = Me.TextBox3 'Adresse mail
.Cells(lig, 3) = Feuil1.Range("e3") 'Date d'enregistrement
.Cells(lig, 4) = Me.ComboBox1 'N° de parking
.Cells(lig, 5) = Me.ComboBox2 'Mode de paiement
.Cells(lig, 6) = Me.TextBox1 'Date paiement
.Cells(lig, 7) = Format(Me.TextBox4, "# ##0.00\ €") 'Montant HT
.Cells(lig, 8) = Format(Feuil1.Range("i16"), "# ##0.00\ €") 'Montant TTC
.Range("A:H").Columns.AutoFit
End With

Call EnvoisMail

End Sub

Private Sub TextBox1_AfterUpdate()
Me.TextBox1 = Format(Me.TextBox1, "dd.mm.yyyy")
End Sub

Private Sub TextBox3_AfterUpdate()
If Me.TextBox3 Like "*@*.*" Then
Me.TextBox3 = Me.TextBox3
Else
MsgBox "Ce n'est pas une adresse mail valide", , "PARKING"
Me.TextBox3 = ""
End If
End Sub

Private Sub UserForm_Activate()
Me.CmbRech = ""
End Sub

Private Sub UserForm_Initialize()
Dim x As Long, j As Integer

With Feuil2
For j = 2 To .Range("A65536").End(xlUp).Row
Me.CmbRech = .Range("A" & j)
If Me.CmbRech.ListIndex = -1 Then CmbRech.AddItem .Range("A" & j)
Next j
End With

With Me.ComboBox2
.AddItem "Cartes Bancaires"
.AddItem "Chèques"
.AddItem "Espèces"
End With

With Me.ComboBox1
For x = 1 To 8
.AddItem "Parking " & x
Next x
End With
End Sub

Private Sub EnvoisMail()

Dim OutlookApp As Object
Dim outlookMail As Object

Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)

CurFile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

With Mail
.SentOnBehalfOfName = "ADRESSE@EMAIL"
.To = ActiveSheet.Range("C10").Text
.Subject = "Duplicata De Reçu "
.Body = olFormatHTML
.HTMLBody = "<br><br>" & GetBoiler("CHEMIN DU FICHIER SIGATURE HTM")
.Attachments.Add CurFile
.Send
End With
ActiveWorkbook.Save


If Workbooks.Count = 1 Then
Application.Quit
Else: ActiveWorkbook.Close
End If
End Sub

Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function

End Function
 

Discussions similaires

Réponses
1
Affichages
124
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 316
Messages
2 087 176
Membres
103 491
dernier inscrit
bilg1