DisplayAlerts

Résolu
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 12 mars 2010 à 20:19
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 14 mars 2010 à 11:52
Bonsoir à tous,

Pourriez-vous m?aider pour ce problème.

Le code ci-dessous me permet d'enregistrer le fichier Excel nommé import_12.xls de cet emplacement C:\Documents and Settings\toto\Bureau\import_gmao.xls et remplacer le fichier nommé
import_12_test.xls cet trouvant à cet autre emplacement \\moi\ import_12_test.xls par le fichier import_12.xls

Pendant cette procédure un écran DisplayAlerts m?avertit que le fichier existe déjà et si je veux vraiment le remplacer.

Dans l'affirmative tout ce passe bien et mon fichier import_12_test.xls et bien modifié en revanche si je repond NON alors plantage et me dit que la methode ?SaveAs?de l'objet? méthode à échoué.


'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
        Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\toto\Bureau\import_12.xls")
    
'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)


       
             wbExcel.SaveAs "\\moi\ import_12_test.xls"
    
 wbExcel.Close 'Fermeture du classeur Excel
appExcel.Quit
'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing




Auriez-vous une idée de comment faire pour gérer le Vbyes ou le Vbno de ce DisplayAlerts


Merci

5 réponses

Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
13 mars 2010 à 14:15
salut
'vérifier l'existence du fichier 
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
'si le fichier existe
if oFSO.FileExists("C:\Documents and Settings\toto\Bureau\import_12.xls") = true then
'on affiche une alerte
if msgbox ("le fichier exite voulez vous continuer",vbyesno) = vbyes then
kill "C:\Documents and Settings\toto\Bureau\import_12.xls"
else
'le fichier n'existe pas tu fait ce que tu veut
end if
end if


(solution pas tester)

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
3
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
13 mars 2010 à 23:34
Bonsoir à toi,


Merci pour ta réponse!

J'ai essayé ton code il fonctionne bien concernant l'existence ou non du fichier en revanche l'erreur concernant mon problème sur le DisplayAlerts d'excel,si je choisi non ou annuler (la methode ‘SaveAs’de l’objet’ méthode à échoué)est toujours là.

'Déclaration des variables

    Dim oFSO
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel


Set oFSO = CreateObject("Scripting.FileSystemObject")
'si le fichier existe
If oFSO.FileExists("C:\Documents and Settings\toto\Bureau\import_12.xls ") = True Then
'on affiche une alerte
If MsgBox("le fichier existe voulez vous continuer", vbYesNo) = vbYes Then
    Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\toto\Bureau\import_12.xls ")
'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)

'fermeture et enregistrement
'Application.DisplayAlerts = False

 wbExcel.SaveAs " \\moi\ import_12_test.xls "
  
  
  wbExcel.SaveAs " C:\Documents and Settings\toto\Bureau\import_12.xls "

  wbExcel.Close " C:\Documents and Settings\toto\Bureau\import_12.xls "
  


'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing

Else

'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing


'le fichier n'existe pas tu fait ce que tu veut
End If
End If


As-tu une idée?


Merci
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
14 mars 2010 à 00:00
pourquoi ta enlevé cette ligne:
elle sert a supprimer le fichier existant pour eviter l'arreur
kill "C:\Documents and Settings\toto\Bureau\import_12.xls"

!!!


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
0
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
14 mars 2010 à 10:34
J'ai supprimé cette ligne car je ne veux pas supprimer le fichier(Fichier commun à un import GMAO donc il doit toujours être présent sur mon bureau)


J'ai comme même essayé avec cette ligne mais le problème est toujours le même. On supprime bien le fichier import_12.xls si on choisit oui dans le DisplayAlerts microsoft d'excel, mais si je choisi non ou annuler alors message (la méthode SaveAs objet méthode à échoué)est toujours là + plantage.

Je parle bien du DisplayAlerts microsoft d'excel et non du MsgBox("le fichier existe voulez vous continuer", vbYesNo) = vbYes


J'espère que je suis clair?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
14 mars 2010 à 11:52
Merci à toi pour tes conseils et ton aide

J'ai rajouté dans le code wbExcel.Application.DisplayAlerts = False et cela fonctionne comme je le veux

Voici le code fini

'Déclaration des variables

    Dim oFSO
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel


Set oFSO = CreateObject("Scripting.FileSystemObject")
'si le fichier existe
If oFSO.FileExists("C:\Documents and Settings\toto\Bureau\import_12.xls") = True Then
'on affiche une alerte
If MsgBox("le fichier exite voulez vous continuer", vbYesNo) = vbYes Then
    Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\toto\Bureau\import_12.xls")
'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)

'fermeture et enregistrement

wbExcel.Application.DisplayAlerts = False
wbExcel.SaveAs " \\moi\ import_12_test.xls"
wbExcel.Close " C:\Documents and Settings\toto\Bureau\import_12.xls"
  

'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing

MsgBox "Opération effectuée.", vbOKOnly + vbConfirmation, "Confirmation"     'Le fichier est inexistant

Else

End If

Else

MsgBox "Le fichier import_gmao n'existe pas sur votre bureau ou a été déplacé.", vbOKOnly + vbInformation, " Fichier d'import GMAO inexistant  "     'Le fichier est inexistant

End If




Bonne journée
0
Rejoignez-nous