Pb suite modification macro: ça fonctionne mal
Fermé
agc
-
21 déc. 2012 à 10:20
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 21 déc. 2012 à 14:54
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 21 déc. 2012 à 14:54
A voir également:
- Pb suite modification macro: ça fonctionne mal
- Macro word - Guide
- Logiciel modification pdf - Guide
- Macro logiciel - Télécharger - Organisation
- Suivi de modification word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
1 réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
Modifié par Patrice33740 le 21/12/2012 à 14:55
Modifié par Patrice33740 le 21/12/2012 à 14:55
Bonjour,
Essaies ce code :
Cordialement
Patrice
Essaies ce code :
Sub ENVOI() Dim WBK As Workbook Dim WSH As Worksheet Dim CEL As Range Dim PLAGENOMMEE As Name Dim NOM As String Dim LAF1 As String Dim LAF2 As String Dim LAF3 As String Dim LAF4 As String Dim LAF5 As String Dim LAF6 As String Dim LAF7 As String Dim LAF8 As String Dim LIBELLE As String Dim PERSONNE As String Dim SUJET As String Dim MOIS As String Dim REPONSE As Integer NOM = ActiveWorkbook.Name 'Pour que l'écran ne se modifie pas pendant l'exécution de la macro : Application.ScreenUpdating = False 'Pour expliquer par message les erreurs pouvant avoir commises : On Error GoTo TRAITERROR 'Message pour vérifier que le lancement de la macro est bien voulu : REPONSE = MsgBox("Avez-vous bien déplacé les onglets à envoyer à droite de l'onglet Paramètres ?", vbYesNo + vbQuestion) If REPONSE = vbNo Then MsgBox "Envoi par messagerie non effectué !" Exit Sub Else MsgBox "Envoi par messagerie commencé. " End If 'Message pour vérifier que la messagerie Outlook est ouverte : REPONSE = MsgBox("Est-ce que vous avez ouvert votre messagerie Outlook ?" & Chr(10) & _ "- Si OUI, choisir Oui" & Chr(10) & _ "- Si NON, choisir Non, car la macro ne pourra s'excécuter.", vbYesNo + vbQuestion) If REPONSE = vbNo Then MsgBox "La macro s'est arrêtée. Ouvrez votre messagerie et relancez la macro." Exit Sub End If MOIS = Sheets("Paramètres").Range("B26") Set CEL = Sheets("Paramètres").Range("A16") Do With CEL PERSONNE = .Value LAF1 = .Offset(0, 1).Value LAF2 = .Offset(0, 2).Value LAF3 = .Offset(0, 3).Value LAF4 = .Offset(0, 4).Value LAF5 = .Offset(0, 5).Value LAF6 = .Offset(0, 6).Value LAF7 = .Offset(0, 7).Value LAF8 = .Offset(0, 8).Value LIBELLE = .Offset(0, 9).Value End With If PERSONNE = "Pas de destinataire" Then MsgBox "Pas de destinataire pour la feuille " & LIBELLE Else 'Copier les onglets ds nv classeur Sheets(Array(LAF1, LAF2, LAF3, LAF4, LAF5, LAF6, LAF7, LAF8)).Select Sheets(Array(LAF1, LAF2, LAF3, LAF4, LAF5, LAF6, LAF7, LAF8)).Copy Set WBK = ActiveWorkbook 'Copier / collage spécial valeur de chaque page For Each WSH In WBK.Worksheets WSH.UsedRange.Value = WSH.UsedRange.Value WSH.Activate WSH.Range("A1").Activate Next WSH 'Retour sur la première feuille envoyée WBK.Sheets(1).Activate SUJET = LIBELLE WBK.SaveAs Filename:="C:\Import\" & LIBELLE ' virer les noms de champs pour gagner de la place If WBK.Names.Count > 0 Then For Each PLAGENOMMEE In WBK.Names PLAGENOMMEE.Delete Next PLAGENOMMEE End If WBK.SendMail Recipients:=PERSONNE, Subject:=SUJET, returnreceipt:=True ' MsgBox "Envoi par messagerie à " & PERSONNE SendKeys "%N", False WBK.Close (False) End If Set CEL = CEL.Offset(1) Loop Until IsEmpty(CEL) 'RETOUR SUR LA FEUILLE DE LANCEMENT DES MACROS Sheets("Macro").Activate MsgBox "L'envoi par messagerie à vos correspondants est terminé." 'Remise à jour du raffaichissement de l'écran : Application.ScreenUpdating = True Exit Sub TRAITERROR: Select Case Err.Number Case 1004 Resume Next Case Else MsgBox "Erreur n° " & Err.Number & vbCr & _ Err.Description & vbCr & vbCr & _ "Envoi interrompu." Exit Sub End Select 'Remise à jour du raffaichissement de l'écran : Application.ScreenUpdating = True End Sub
Cordialement
Patrice