Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Question code VBA

  • Initiateur de la discussion Initiateur de la discussion Maxou69
  • 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 !

Maxou69

XLDnaute Nouveau
Bonjour à tous,

J'ai un soucis avec mon code VBA. Enfin plutôt avec mon fichier Excel.
Mon fichier Excel comprend plusieurs onglets, il y'a déjà 2 modules qui contiennent des codes, et je créer un 3eme module avec le code suivant :

Sub ExporterParDate()
Dim wsSource As Worksheet
Dim wsNew As Worksheet
Dim rngSource As Range
Dim cell As Range
Dim startDate As Date
Dim endDate As Date
Dim OutApp As Object
Dim OutMail As Object
Dim TempFileName As String
Dim lastRow As Long

' Spécifiez la feuille de données source
Set wsSource = ThisWorkbook.Sheets("Feuil1")

' Récupérer les dates de début et de fin depuis les cellules spécifiées
startDate = CDate(wsSource.Range("A1").Value)
endDate = CDate(wsSource.Range("B1").Value)

' Spécifiez la plage de données à filtrer (à partir de la ligne S2)
lastRow = wsSource.Cells(wsSource.Rows.Count, "S").End(xlUp).Row
Set rngSource = wsSource.Range("S2:S" & lastRow)

' Créer une nouvelle feuille pour les données filtrées
Set wsNew = Sheets.Add(After:=Sheets(Sheets.Count))
wsNew.Name = "Matrice d'entree"

' Filtrer les données entre les deux dates
rngSource.AutoFilter Field:=1, Criteria1:=">=" & CLng(startDate), Operator:=xlAnd, Criteria2:="<=" & CLng(endDate)
rngSource.SpecialCells(xlCellTypeVisible).EntireRow.Copy Destination:=wsNew.Cells(wsNew.Rows.Count, "A").End(xlUp).Offset(1, 0)

' Supprimer le filtre
wsSource.AutoFilterMode = False

' Enregistrez la feuille filtrée dans un fichier temporaire
TempFileName = Environ$("temp") & "\" & "Matrice_d_entree.xlsx"
wsNew.Copy
ActiveWorkbook.SaveAs TempFileName
ActiveWorkbook.Close SaveChanges:=False

' Envoyer le fichier par e-mail
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
.To = "votre@email.com" ' Remplacez par votre adresse e-mail
.Subject = "Données filtrées entre deux dates"
.Body = "Veuillez trouver les données filtrées en pièce jointe."
.Attachments.Add TempFileName
.Display ' Ouvre le client de messagerie Outlook avec le message
End With

' Supprimer le fichier temporaire
Kill TempFileName

' Supprimer la feuille temporaire
Application.DisplayAlerts = False
wsNew.Delete
Application.DisplayAlerts = True
End Sub

J'ai fait un test sur un fichier vierge (en pièce jointe), j'y ai ajouté mes données à l'état brut et tester le code qui fonctionne !
Sauf que, lorsque j'utilise ce même code, dans mon fichier avec plusieurs onglets et déjà 2 modules, le code de ne fonctionne pas..
Je ne comprends pas pourquoi il fonctionne dans un fichier "vierge" et pas dans un fichier avec déjà des codes

Merci par avance pour votre aide

Bonne journée à vous ! 🙂
 
Bonjour @Maxou69

Quelques remarques :

1) J'attends toujours ton retour
==> https://excel-downloads.com/threads/probleme-envoi-fichier-piece-jointe.20077545/#post-20596347

2) Mettre le code entre balise c'est plus digeste !!!


3) J'ai pas vu ceci
J'ai fait un test sur un fichier vierge (en pièce jointe),

4) Ni ceci
j'utilise ce même code, dans mon fichier avec plusieurs onglets et déjà 2 modules,

Bonne lecture
 
Bonjour Phil,

Merci pour ton retour. J'ai en effet oublier la pièce jointe du fichier vierge que voici.
Désolé pour la présentation je pensais que le code se mettrait automatiquement entre guillemet..

En effet, je te répond sur l'autre discussion !

Pour l'autre fichier, je ne peux pas l'ajouter en pièce jointe de suite, il contient des données sensibles
 

Pièces jointes

- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
622
Réponses
12
Affichages
874
Réponses
3
Affichages
439
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
Réponses
3
Affichages
485
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…