Bonjour à tous!
Je me retrouve confronté à un problème assez gênant lorsque je tente de faire fonctionner 2 classeurs différents contenant chacun une macro liée à un application.ontime, et qui me fait me demander s'il est même simplement techniquement possible de faire tourner 2 tableaux avec des macros sur le même PC.
Ils ne se déclenchent pas du tout aux même heures, l'un est un Today + Timevalue, et l'autre est un Now + Timevalue (je mets les codes ci-dessous).
Ces 2 tableaux sont situés dans un répertoire commun, pas dans le même dossier cela dit. Ils sont ouverts sur un PC qui tourne 24/24.
Tableau 1 doit faire une impression .pdf de lui-même et l'expédier en pj d'un mail 2 fois par jour (à 08h00 et à 20h00). Il est opérationnel seul depuis des semaines sans problème.
Tableau 2 doit faire une extraction .csv de lui-même, et l'envoyer en pj à une autre liste de diffusion mail 1x par jour à 23h. Il est en phase de test pour le moment.
Les 2 automatismes fonctionnent très bien quand ils sont seuls.
Au début j'ai même fait des tests sur tableau 2 sans extraction csv ni pj, juste en lui faisant envoyer un mail test, donc avec un code vraiment très simple.
J'ai eu différents bugs en laissant les 2 tableaux tourner en même temps, mais en gros tableau 1 se retrouve bloqué (la macro ne fonctionne plus) parfois, ou fonctionne mais envoi une impression pdf de tableau 2 (chose que personne ne lui demande). Depuis que j'ai ajouté l'extraction .csv dans tableau 2, ce code qui fonctionne parfaitement seul, se retrouve à tout bloquer quand je le met en test sur le PC 24/24 suite erreur de compilation sur une des lignes de la partie extraction .csv. Et de fait, tableau 1 est bloqué dans son exécution aussi à cause de ça... j'ai également aussi eu des problèmes d'envoi multiples de mail (entre 3 et 8 dans la même minutes) sur tableau 1 et 2.
Enfin bref, c'est n'importe quoi.
Dans tous les cas ça fait que je n'ai malheureusement pas beaucoup de retour et donc de précision sur les bugs, car j'ai absolument besoin que tableau 1 fonctionne tout le temps, ce qui me limite dans les possibilité de tester les défaillances...
Est-ce que cela semble cohérent ou parlerait à quelqu'un? J'ai fait quelques recherches mais difficile de trouver les bons mots clés pour ça...
Pour les 2 codes:
Tableau 1
	
	
	
	
	
		
TABLEAU 2
	
	
	
	
	
		
Je pense qu'il y a beaucoup d'éléments pas forcément utile pour cibler le problème, mais je laisse plus ou moins tel qu'utilisé au cas où un expert d'ici verrais une fonction annexe susceptible de générer un bug.
Merci d'avance pour vos idées!
	
		
			
		
		
	
				
			Je me retrouve confronté à un problème assez gênant lorsque je tente de faire fonctionner 2 classeurs différents contenant chacun une macro liée à un application.ontime, et qui me fait me demander s'il est même simplement techniquement possible de faire tourner 2 tableaux avec des macros sur le même PC.
Ils ne se déclenchent pas du tout aux même heures, l'un est un Today + Timevalue, et l'autre est un Now + Timevalue (je mets les codes ci-dessous).
Ces 2 tableaux sont situés dans un répertoire commun, pas dans le même dossier cela dit. Ils sont ouverts sur un PC qui tourne 24/24.
Tableau 1 doit faire une impression .pdf de lui-même et l'expédier en pj d'un mail 2 fois par jour (à 08h00 et à 20h00). Il est opérationnel seul depuis des semaines sans problème.
Tableau 2 doit faire une extraction .csv de lui-même, et l'envoyer en pj à une autre liste de diffusion mail 1x par jour à 23h. Il est en phase de test pour le moment.
Les 2 automatismes fonctionnent très bien quand ils sont seuls.
Au début j'ai même fait des tests sur tableau 2 sans extraction csv ni pj, juste en lui faisant envoyer un mail test, donc avec un code vraiment très simple.
J'ai eu différents bugs en laissant les 2 tableaux tourner en même temps, mais en gros tableau 1 se retrouve bloqué (la macro ne fonctionne plus) parfois, ou fonctionne mais envoi une impression pdf de tableau 2 (chose que personne ne lui demande). Depuis que j'ai ajouté l'extraction .csv dans tableau 2, ce code qui fonctionne parfaitement seul, se retrouve à tout bloquer quand je le met en test sur le PC 24/24 suite erreur de compilation sur une des lignes de la partie extraction .csv. Et de fait, tableau 1 est bloqué dans son exécution aussi à cause de ça... j'ai également aussi eu des problèmes d'envoi multiples de mail (entre 3 et 8 dans la même minutes) sur tableau 1 et 2.
Enfin bref, c'est n'importe quoi.
Dans tous les cas ça fait que je n'ai malheureusement pas beaucoup de retour et donc de précision sur les bugs, car j'ai absolument besoin que tableau 1 fonctionne tout le temps, ce qui me limite dans les possibilité de tester les défaillances...
Est-ce que cela semble cohérent ou parlerait à quelqu'un? J'ai fait quelques recherches mais difficile de trouver les bons mots clés pour ça...
Pour les 2 codes:
Tableau 1
		VB:
	
	
	Sub MAIL_TABLEAU_1()
           '  Cadencement de la diffusion (pour activer, cliquer sur l'icône Email dans le tableau une première fois).
                  
       Application.OnTime Now + TimeValue("12:00:00"), "MAIL_TABLEAU_1"
      
    
           'Procédure rafraichissement des liaisons avec 2 autres tableaux data bases
        
            Dim NomFich$, Wsh As Worksheet
 
     NomFich = "chemin database 1"
 
     For Each Wsh In ThisWorkbook.Worksheets
          Wsh.Cells.Replace What:=NomFich, Replacement:=NomFich _
             , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     Next
    
    
      Dim NomFichB$, WshB As Worksheet
 
     NomFichB = "Chemin data base 2"
 
     For Each WshB In ThisWorkbook.Worksheets
          WshB.Cells.Replace What:=NomFichB, Replacement:=NomFichB _
             , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     Next
  
            '   Export du tableau en PDF:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "chemin extraction.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
'
            'Création nouveau mail :
Dim Outapp As Object
Dim Outmail As Object
 
 
   Set Outapp = CreateObject("Outlook.Application")
   Set Outmail = Outapp.CreateItem(0)
 
    With Outmail
  
        .SentOnBehalfOfName = "mail@expéditeur.com"
      
        .To = "Liste@diffusion.com"
    
        .Subject = "Suivi mis à jour le " & Date & " à " & Time
          
      
        .HTMLBody = "Bonjour," & "<br><br>" & _
                    "Veuillez trouver ci-joint le suivi tel que connu au " & Date & " à " & Time & "<br><br>" & _
                
          .Attachments.Add "chemin pièce jointe.pdf"
'
        .Send 
          
    End With
  
          'Nettoyage
    Set Outmail = Nothing
    Set Outapp = Nothing
'
End SubTABLEAU 2
		Code:
	
	
	Sub Tableau_2()
        '  Cadencement (pour activer, cliquer une première fois sur l'icône flèches dans le tableau).
          Application.OnTime Today + TimeValue("23:00:00"), "Tableau_2"
           
    
      'Mise à jour des liaisons
     Dim NomFichA$, WshA As Worksheet
 
     NomFichA = "Chemin data base 1"
 
     For Each WshA In ThisWorkbook.Worksheets
          WshA.Cells.Replace What:=NomFichA, Replacement:=NomFichA _
             , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     Next
  
       Dim NomFich$, Wsh As Worksheet
 
     NomFich = "Chemin data base 2"
 
     For Each Wsh In ThisWorkbook.Worksheets
          Wsh.Cells.Replace What:=NomFich, Replacement:=NomFich _
             , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     Next
    
    
          '   Export du tableau en CSV :
        Dim Chemin As String, Fichier As String
        Application.ScreenUpdating = False
        Chemin = "Chemin extraction" & "\"
        Fichier = "BILAN" & Format(Now, "yyyymm")
        ThisWorkbook.Worksheets("Feuille 1").Copy
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:=xlCSV, Local:=True
        ActiveWorkbook.Close
        'Application.DisplayAlerts = True
    
    
    
       'Création nouveau mail:
Dim Outapp As Object
Dim Outmail As Object
 
 
   Set Outapp = CreateObject("Outlook.Application")
   Set Outmail = Outapp.CreateItem(0)
 
     With Outmail
  
           'Choix adresse mail expéditeur:
        .SentOnBehalfOfName = "Mail@expéditeur.com"
     
        
        .To = "Liste@destinataires.com"
        .Subject = "TEST Tableau 2 " & Date & " à " & Time
          
      
        .HTMLBody = "Bonjour," & "<br><br>" & _
                    "Fonction diffusion du tableau 2 validée OK le " & Date & " à " & Time & "<br><br>"
                               
         .Attachments.Add Chemin & "\" & Fichier & ".csv"
      
'
       .Send
      
          
    End With
  
          'Nettoyage
    Set Outmail = Nothing
    Set Outapp = Nothing
    
    
End SubJe pense qu'il y a beaucoup d'éléments pas forcément utile pour cibler le problème, mais je laisse plus ou moins tel qu'utilisé au cas où un expert d'ici verrais une fonction annexe susceptible de générer un bug.
Merci d'avance pour vos idées!
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		