email avec pièce jointe dans userform (Résolu)

  • Initiateur de la discussion Initiateur de la discussion fredoud
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fredoud

Guest
Bonjour,

Comment-faire pour envoyer des emails d'une liste (colonne M par exemple) et de pouvoir ajouter une pièce jointe tout ça dans userform. J'ai commencé mais fonctionne pas.

Pouvez-vous m'aider ,

Cordialement

Frederique
 

Pièces jointes

Dernière modification par un modérateur:
Re : email avec pièce jointe dans userform

Re,

J'ai fais ceci dans le code userform "Menu" mais ce que je veux

Code:
Private Sub UserForm_Initialize()
ActiveWindow.ScrollRow = Range("Tableau1").Rows.Count + 1
...
End Sub

Ceci fonctonne se place bien sur la dernière ligne de la feuille base, ce que je veux c'est que la dernière apparaisse bien mais dans l'userform car c'est lui qui s'ouvre au démarrage, ensuite je peux utiliser les boutons de navigation ou autre chose.

Je n'ai pas ete assez claire précèdemment.

Frederique
 
Re : email avec pièce jointe dans userform

Re 🙂,
Evidemment, si tu fait tout pour que ça plante 🙄...
Quand tu charges ton USF, c'est bien les bonnes valeurs qu'il va chercher, MAIS, comme tu as un événement Change sur le nom, il réagit et va chercher le premier nom qu'il trouve (vu que tu as plein de doublons, la ligne 22) 😛...
Donc il faut que tu apprennes à gérer les interractions. J'ai mis un drapeau (booléen) qui s'appelle Flag et une sortie des événementielles si Flag = False. Du coup, à l'Initialize, il est à False, il ne déclenche pas les événementielles, et à la fin de l'Initialize, je le passe à True pour autoriser les événementielles 😉.
Je te conseille de procéder de la même façon dans les événementielles, le repasser à False au début et à True à la fin, sinon, tu vas faires des boucles à n'en plus finir 🙄...
Enfin, quand on fait une recherche de nom, on ne s'arrète pas à la première valeur, mais on charge le combo avec toutes les valeurs trouvées à l'aide de FindNext 🙂...
Bon courage 😎
 

Pièces jointes

Re : email avec pièce jointe dans userform

Bonjour JNP et le forum

JNP, j'ai fait ce que tu me conseilles mais maintenant je me retrouve avec une erreur d'exécution 13 : incompatibilité de type, je clique sur débogage, la ligne concernant le departement est soulignée en jaune dans ce code
Code:
Private Sub ComboBox_nom_Change()
Dim Cherche As Range
Dim Str As String
 
Str = Me.ComboBox_nom
If Str <> "" Then
    With ThisWorkbook.Sheets("Base")
        Set Cherche = .Range("C:C").Find(What:=Str, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cherche Is Nothing Then
            Me.TextBox_prenom.Text = Cherche.Offset(0, 1)
            Me.TextBox_adresse.Text = Cherche.Offset(0, 2)
            Me.TextBox_adresse2.Text = Cherche.Offset(0, 3)
            Me.TextBox_CP.Text = Cherche.Offset(0, 4)
            Me.TextBox_ville.Text = Cherche.Offset(0, 5)
            Me.TextBox_dept.Text = Cherche.Offset(0, 6)
            Me.TextBox_tel.Text = Cherche.Offset(0, 7)
            Me.TextBox_tel2.Text = Cherche.Offset(0, 8)
            Me.TextBox_portable.Text = Cherche.Offset(0, 9)
            Me.TextBox_email.Text = Cherche.Offset(0, 10)
            Me.TextBox_categorie.Text = Cherche.Offset(0, 11)
            Me.TextBox_statut.Text = Cherche.Offset(0, 12)
            Me.TextBox_note.Text = Cherche.Offset(0, 13)
            Set Cherche = Nothing
        End If
      End With
End Sub

Question, j'ai des homonymes dans ma liste de noms, est-ce que ça peu poser ?

Merci

Frederique
 
Re : email avec pièce jointe dans userform

Re 🙂,
Commence déjà par ne pas utiliser comme nom de variable une fonction 😡...
Str est une fonction de VBA, donc ça ne peux que planter 🙄...
Pour tes variables, utilise plutôt des noms français, quand ils n'existent pas en anglais, ça t'évitera bien des désagréments 😛 !
Bon courage 😎
 
Re : email avec pièce jointe dans userform

Bonsoir,

Est-ce que la réponse du genre
Code:
Dim Cherche As Range
Dim Mavariable as string
 
Mavariable = Me.ComboBox_nom
If Mavariable <> "" Then
    With ThisWorkbook.Sheets("Base")
        Set Cherche = .Range("C:C").Find(What:=Mavariable, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cherche Is Nothing Then
            Me.TextBox_prenom.Text = Cherche.Offset(0, 1)
...
convient ?
Je ne vais pas t'étonner mais après lecture de divers sites, je ne suis pas sure que mon code soit bon, comment je modifie pour mettre en français. Un petit coup supplémentaire ne serait pas un luxe en te remerciant d'avance JNP. J'ai bien avancé et en partie grâce à toi.

Au plaisir de te relire,

Frederique
 
Dernière modification par un modérateur:
Re : email avec pièce jointe dans userform

Re 🙂,
Je ne comprends pas, je viens de tester
Code:
Private Sub ComboBox_nom_Change()
Dim Cherche As Range
Dim Mavariable As String
Mavariable = Me.ComboBox_nom
If Mavariable <> "" Then
    With ThisWorkbook.Sheets("Base")
        Set Cherche = .Range("C:C").Find(What:=Mavariable, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cherche Is Nothing Then
            Me.TextBox_prenom.Text = Cherche.Offset(0, 1)
        End If
    End With
End If
End Sub
Je n'ai pas d'erreur 😕 ...
A + 😎
 
Re : email avec pièce jointe dans userform

Re

En relisant les posts precedents, je me souviens que tu me disais "il y a des doublons", c'est normal car c'est un fichier exemple. Bon, j'ai repris le fichier en post 32 et modifier, je me retrouve avec erreur de dll, j'ai regarder dans référence, library 14.0 inexistante normale d'apès mes souvenirs, tu l'as déjà dit. Par compte, j'ai d'autres problemes, "Private Sub Workbook_Open()" souligne en jaune lié peut etre au probleme dll, et l'erreur d'exécution 13 : incompatibilité de type, et donc pa d'affichage du dernier client en ouvrant l'userform "menu".

Peux-tu me rectifier le fichier, je sais bien que c'est unième fois,

en te remerciant d'avance

Frederique
 

Pièces jointes

Re : email avec pièce jointe dans userform

Bonsoir,

JNP, j'ai une question concernant un remplissage automatique d'une combobox. Voici le principe :
J'ouvre une userform Intervention, je commence à compléter la combobox nom si inexistant dans feuille Clients, une autre userform AjoutClient s'ouvre afin de créer une nouvelle fiche client puis je valide pour l'ajouter dans feuille Clients et c'est là qu'intervient la question, comment faire pour que la combobox nom soit rempli automatiquement dès que l'userform AjoutClient s'est fermée ?
Il faut ajouter quelque lignes à la suite de ce code
Code:
Private Sub ComboBox_nom_Change()
Dim Recherche As Range
Dim Variable As String
 
Variable = Me.ComboBox_nom
If Variable <> "" Then
    With ThisWorkbook.Sheets("Clients")
        Set Recherche = .Range("B:B").Find(What:=Variable , LookIn:=xlValues, LookAt:=xlWhole)
        If Not Recherche Is Nothing Then
            Me.TextBox_assistance.Text = Recherche.Offset(0, 2)
...
            Set Recherche = Nothing
        Else
            MsgBox "Le client est inexistant"
            Ajouter_client.Show 0
        End If
    End With
End If
End Sub
je suppose mais lesquels

Merci pour le soutient de mon projet jusqu'ici et qui m'a permis d'avancer, je me répète mais je trouve important de rappeler l'aide que tu m'apportes.

Frederique
 
Re : email avec pièce jointe dans userform

Re 🙂,
Dans le code de lUSF AjoutClient, après avoir envoyé les données dans le tableau, tu dit que
Code:
Intervention.ComboBox_Nom.Text = Me.LeNomDeTonComboAjoutClient.Text
Bon dimanche 😎
 
Re : email avec pièce jointe dans userform

bonjour JNP,

j'ai mis ce que tu me conseilles (donc : "CBox_nom = Me.Nom") dans userform Ajouter_client, ça ne fonctionne pas. Je l'ai peux etre inserrer au mauvais endroit voici le code
Code:
Private Sub UserForm_Initialize()

TextBoxDate = Date
Me.Nom = Ajouter_intervention.ComboBox_nom
With Sheets("Clients")
    If Lig = 0 Then
        Me.Valider.Caption = "Ajouter"
        Lig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        Me.Numero = Val(.Range("A" & Lig - 1)) + 1
        CBox_nom = Me.Nom
    Else
        Me.Valider.Caption = "Modifier"
        Me.Numero = .Range("A" & Lig)
...
    End If
End With
End Sub
En faites, c'est une sorte de mise à jour dès que la fenetre est fermer ! est-ce que la rowsource utilisée et qui fait référence à Clients_nom de la feuille Clients alimenté par userform Ajouter_client jouerai un role dedans ? propriété RowSource avec Range("A1").End(xlDown).Row. Quel est la syntaxe et ou la placée ?

Merci

Frederique
 
Re : email avec pièce jointe dans userform

Re 🙂,
j'ai mis ce que tu me conseilles (donc : "CBox_nom = Me.Nom") dans userform Ajouter_client, ça ne fonctionne pas. Je l'ai peux etre inserrer au mauvais endroit voici le code
En faites, c'est une sorte de mise à jour dès que la fenetre est fermer ! est-ce que la rowsource utilisée et qui fait référence à Clients_nom de la feuille Clients alimenté par userform Ajouter_client jouerai un role dedans ? propriété RowSource avec Range("A1").End(xlDown).Row. Quel est la syntaxe et ou la placée ?
Non, tu n'as pas fait ce que je t'ai dit 🙄...
Une fois qu'AjoutClient est quitté, il est vide 😱 !
D'où, c'est depuis AjoutClient qu'il faut modifier Intervention, avant de décharger AjoutClient (dans le OK d'AjoutClient) 😛 !
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
178
Réponses
4
Affichages
227
Deleted member 453598
D
Réponses
3
Affichages
314
  • Question Question
Microsoft 365 Suivi charge/capa
Réponses
10
Affichages
359
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
Retour