Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1843 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel] Eviter l'affichage de certains avertissements

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Excel] Eviter l'affichage de certains avertissements

n°1530951
skyst3f
Posté le 20-03-2007 à 11:15:01  profilanswer
 

Bonjour,
 
J'ai une macro qui ouvre une feuille Excel, copie cette feuille et la colle dans un autre fichier Excel. Cette opération fonctionne mais lors de la fermeture des fichiers concerné l'utilisateur à ces messages à l'écran :
 
http://img84.imageshack.us/img84/1007/averto1ht2.th.jpg
 
et
 
http://img87.imageshack.us/img87/9971/averto2sl5.th.jpg
 
Comment faire pour ne pas les afficher ou au pire, automatiser la réponse (non dans mon cas). Je vous donne le code de ma fonction qui copie/colle au cas où :
 

Code :
  1. Public Sub CopierFeuilleExcel(ByVal sMonBookDeCopie As String, ByVal sMonBookDeDestination As String, ByVal sNomFeuilleACopier As String, ByVal sNomFeuilleCopier As String)
  2. If Dir(sMonBookDeCopie) <> "" And Dir(sMonBookDeDestination) <> "" Then
  3.     Dim xlApp As Excel.Application
  4.     Dim xlBookDeCopie As Workbook
  5.     Dim xlBookDeDestination As Workbook
  6.     Dim i As Integer
  7.     Dim j As Integer
  8.     Dim wsExcel As Excel.Worksheet
  9.   If sMonBookDeCopie <> sMonBookDeDestination Then
  10.     Set xlApp = CreateObject("Excel.Application" )
  11.     Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
  12.     Set xlBookDeDestination = xlApp.Workbooks.Open(sMonBookDeDestination)
  13.    
  14.     For i = 1 To xlBookDeCopie.Sheets.Count
  15.    
  16.         If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then
  17.  
  18.            xlBookDeCopie.Activate
  19.            xlBookDeCopie.Sheets(sNomFeuilleACopier).Select
  20.            xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy After:=xlBookDeDestination. _
  21.            Sheets(xlBookDeDestination.Sheets.Count)
  22.      
  23.            For j = 1 To xlBookDeDestination.Sheets.Count
  24.          
  25.               If xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier Then
  26.          
  27.                  MsgBox "La feuille copiée n'a pas pu  être renommée, ce nom existe déjà!", vbCritical
  28.              
  29.            Exit For
  30.          
  31.               ElseIf j = xlBookDeDestination.Sheets.Count Then
  32.          
  33.                  xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier
  34.                  xlBookDeDestination.Activate
  35.                    
  36.                 Set wsTemplate = xlBookDeDestination.Worksheets(sNomFeuilleCopier)
  37.                'c'est ici que l'on renseigne la plage de cellule à séléctionné, copier, puis coller dans le nouveau document
  38.                 wsTemplate.Range("G1:AW45" ).Select
  39.                 wsTemplate.Range("G1:AW45" ).Copy
  40.                 wsTemplate.Range("G1:AW45" ).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  41.                  :=False, Transpose:=False
  42.                ' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  43.                  ':=False, Transpose:=False
  44.                 ' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  45.                  ':=False, Transpose:=False
  46.          
  47.               End If
  48.              
  49.            Next j
  50.          
  51.         Exit For
  52.        
  53.         ElseIf i = xlBookDeCopie.Sheets.Count Then
  54.        
  55.         MsgBox "La feuille à copier n'existe  pas!", vbCritical
  56.        
  57.         End If
  58.          
  59.     Next i
  60.     Application.ScreenUpdating = False
  61.     xlBookDeCopie.Close savechanges:=False
  62.     'xlBookDeCopie.Close True
  63.    ' Application.ScreenUpdating = False
  64.     xlBookDeDestination.Close True
  65.     xlApp.Quit
  66.    
  67.     Set xlBookDeCopie = Nothing
  68.     Set xlBookDeDestination = Nothing
  69.     Set xlApp = Nothing
  70.    
  71.   ElseIf sMonBookDeCopie = sMonBookDeDestination Then
  72.     Set xlApp = CreateObject("Excel.Application" )
  73.     Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
  74.     For i = 1 To xlBookDeCopie.Sheets.Count
  75.    
  76.         If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then
  77.        
  78.            xlBookDeCopie.Activate
  79.            xlBookDeCopie.Sheets(sNomFeuilleACopier).Select
  80.            xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy After:=xlBookDeCopie. _
  81.            Sheets(xlBookDeCopie.Sheets.Count)
  82.            For j = 1 To xlBookDeCopie.Sheets.Count
  83.          
  84.               If xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier Then
  85.          
  86.                  MsgBox "La feuille copiée n'a pas pu  être renommée, ce nom existe déjà!", vbCritical
  87.              
  88.            Exit For
  89.          
  90.               ElseIf j = xlBookDeCopie.Sheets.Count Then
  91.          
  92.                  xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier
  93.          
  94.               End If
  95.              
  96.            Next j
  97.        
  98.         Exit For
  99.        
  100.         ElseIf i = xlBookDeCopie.Sheets.Count Then
  101.        
  102.         MsgBox "La feuille à copier n'existe  pas!", vbCritical
  103.        
  104.         End If
  105.          
  106.     Next i
  107.    
  108.     xlBookDeCopie.Close True
  109.     xlApp.Quit
  110.    
  111.     Set xlBookDeCopie = Nothing
  112.     Set xlApp = Nothing
  113.   End If
  114.  
  115. Else
  116.     MsgBox "Le fichier n'existe pas, vérifier le chemin !", vbCritical
  117.    
  118. End If
  119. End Sub


 
Note : cette fonction provient d'Internet (vbsources.com)
 
Merci d'avance.  :)


Message édité par skyst3f le 20-03-2007 à 11:21:53
mood
Publicité
Posté le 20-03-2007 à 11:15:01  profilanswer
 

n°1530994
kiki29
Posté le 20-03-2007 à 12:04:29  profilanswer
 

A priori en adaptant et encadrant la procedure par Application.DisplayAlerts = False
....
Application.DisplayAlerts = True

n°1531064
skyst3f
Posté le 20-03-2007 à 14:11:55  profilanswer
 

kiki29 a écrit :

A priori en adaptant et encadrant la procedure par Application.DisplayAlerts = False
....
Application.DisplayAlerts = True


 
 
ça ne fonctionne pas....  :(

n°1531150
jpcheck
Pioupiou
Posté le 20-03-2007 à 16:19:34  profilanswer
 

skyst3f a écrit :

ça ne fonctionne pas....  :(


tu peux développer ta phrase stp ?
qu'est-ce qui ne fonctionne pas ? ton écran n'est pas allumé ? ton imprimante fait du bruit ? Ton code est foireux ?
Il faut un peu etre plus explicite que ca ne fonctionne pas...:o

n°1531302
Thierry_94
Posté le 20-03-2007 à 21:09:36  profilanswer
 

Bonsoir,
Il faut mettre en début de procédure
 
Application.AskToUpdateLinks = False
 
et remettre true à la fin.
 
Pour le presse papier : Application.CutCopyMode = False ....
 
Bon courage


Message édité par Thierry_94 le 20-03-2007 à 21:12:13

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel] Eviter l'affichage de certains avertissements

 

Sujets relatifs
[VBA WORD] Comment faire pour vider la mémoire ??Problème d'affichage d'une table
tableau php vers excelproblemes d'affichage de resulats de recherche
moteur de recherche: affichage des résultats sur plusieurs pagesTransfert Excel ver mysql
Rechercher fichier puis affichage d´une partie du contenu[VBA]importer textes (.lvm) sous forme BD pour access
Convertir un fichier Excel en PDFVBA access execution de macro [résolu]
Plus de sujets relatifs à : [VBA Excel] Eviter l'affichage de certains avertissements


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR