Erreur Windows VBA!!!!

Fermé
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009 - 10 juin 2008 à 09:05
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009 - 10 juin 2008 à 15:26
Bonjour,

Je cherche a modifier le code de ma macro car lorsque jenvoi mon programme il est censé enregistrer mon fochier sous un nom défini comme il existe deja, windows me demande si je veux l'ecraser:
Si je mets oui tout se passe correctement
si je mets non ilo execute quand meme la macro
et si je mets annuler c'est la même chose!!!!


VOICI UN BOUT DE CODE!!


On Error Resume Next
Set NewClasseur = Workbooks.Add 'Création du classeur contenant les différentes requetes de N2
With NewClasseur
.Title = "Requetes Niveau 2"
.Subject = "Query N2"
.SaveAs Filename:=File_Out_N2
End With
If Err.Number = 1004 Then
' Renseigne l'utilisateur. Puis efface l'objet Err.
Dim Msg1 As Variant
Msg1 = "Le fichier : " & File_Out_N2 & " est déjà ouvert " & Chr(13) & _
" Il va être fermé ! "
MsgBox Msg1, , " MESSAGE D'ERREUR "
Err.Clear ' Efface les champs d'objet Err
End If
Workbooks(File_Out_N2 & ".xls").Close SaveChanges:=False 'ferme le fichier xls déjà ouvert
'Fin traitement d'erreur
Application.ScreenUpdating = False 'désactive la mise à jour de l'écran
A voir également:

3 réponses

onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120
10 juin 2008 à 09:12
Tu peux, par exemple tester l'existence du fichier File_Out_N2 avant de lancer ton code d'ajout de classeur :
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.fileexists(File_Out_N2 ) Then
   ' Ici ton code de création
End If
0
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009
10 juin 2008 à 10:13
En fait si tu veux j'aimerai pouvoir travailler sur chaque bouton de la fenêtre windows, j'ai cherché dans le dictionnaire j'arrive pas a trouver al bonne syntaxe donc voila...
Je sais pas si tu peux m'aider mais voia!!!
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120 > medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009
10 juin 2008 à 10:36
Je n'arrive pas à comprendre ce que veux dire "Travaille sur chaque bouton de la fenêtre Windows", mais as-tu essayé de remplacer ton bout de code par celui ci ?

Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.fileexists(File_Out_N2) Then
    ' Si le Fichier File_Out_N2 n'existe pas on le crée
    Set NewClasseur = Workbooks.Add 'Création du classeur contenant les différentes requetes de N2
    With NewClasseur
        .Title = "Requetes Niveau 2"
        .Subject = "Query N2"
        .SaveAs Filename:=File_Out_N2
    End With
End If
0
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009 > onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008
10 juin 2008 à 10:45
Je veux le rentrer ton bout de code mais au cas ou si quand la fenêtre de windows s'affiche (je parle de celle qui me demande si je veux ecraser le fichier deja existant) et que je clique sur non

Ce que je t'ai demandé c'est comment configurer chaque bouton de cette fenêtre en vba?
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120 > medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009
10 juin 2008 à 10:50
Elle n'apparaitra pas la fenêtre vu que l'ajout du classeur ne se fera que si le fichier File_Out_N2 n'existe pas
0
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009 > onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008
10 juin 2008 à 11:46
Le truc c'est que j'ai voulu que les requêtes aient le même nom au final c'est ce qu'on m'a demandé de faire

J'ai essayé
If xlDialogSaveAs = vbNo Then            
                Workbooks.Close



Par exemple mais c'est pareil je trouve pas la bonne syntaxe j'ai essayé NON, FALSE........ Je ne trouve pas
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
10 juin 2008 à 14:57
Bonjour onesdf, sorry, mais ca commence à m'énervé ces gens qui multiplie les postes et ne réponde pas au solution proposées dans leurs autres postes. Je le suis depuis... j'ai déjà réparer plusieure parties de sa macro et voilà...
http://www.commentcamarche.net/forum/affich 6646503 vba probleme macro excel

medeuy,
Le fait de multiplié tes postes avec le même problème ne t'apportera pas de solution supplémentaire, fait d'abord ce que je préconise dans ton poste précédant.
0
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009
10 juin 2008 à 15:08
Ecoute j'ai fait ce que tu m'as dit tu comencais a perdre patience et ne comprenais pas ce que je voulais faire...One sdf ma expliqué je vien de le faire et ca marche donc voila...
Jprefere prendre un peu partout et essayer,a ce que je sache ta pa repondu aux deux tu ma expliqué sa a marché je ten remerci sur dautres chose jarivai pa donc voila!!!Merci
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
10 juin 2008 à 15:17
Mais abandonne c pa grave je vais cherché une autre methode et je te soliciterai si je n'y arrive toujours pas.
Réponse..
Faut pas abandonner vite... examine bien mes rematques..


J'espere que tas compris sinon laisse tomber jvois pas comment texpliqué !!
Réponse..
Et ont va pas laisser tomber, c'est pas ma nature :D

ET C'est moi qui perd patience, tu aurrais du être bien content d'avoir quelqu'un qui a eu autant de patience avec tes explications à la noix.
En ce qui me concerne je met ton Pseudo en liste noire.
0
medeuy Messages postés 44 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 28 décembre 2009
10 juin 2008 à 15:26
Oue une explication ou ta limpression que la personne presque en a marre derriere son ordi c 'est pour sa que je voulais pas te prendre la tete...Mais la je vois pas ce qui t'arrive
Je suis faible MALHEURESEMENT, tu m'explique si tu veux si tas pas envi zape et puis voila Monsieur va chercher pourquoi il demande une explication a un tel alor que je lui ai donné.

2 expériences instruisent plus sûrement que 2 conseils (André Gide)
0