Boite de dialogue écraser fichier exsistant

Delirium

XLDnaute Occasionnel
Bonsoir à tous les XLliens.

J'ai créer une appli XL qui permet d'enregistrer une copie d'un classeur XL dans un dossier (qui s'appel dossier :p ).

Le problème est que si le classeur exsite déja, XL affiche une boite de dialogue qui propose d'écraser le fichier exsistant.
Si on clique sur 'Oui' pas de problème il ecrase le fichier. Mais si on Clique sur 'Non' ou sur 'Annuler' cela fait buguer ma macro.

Je voudrais que à la place de la boite de dialogue d'XL apparaisse le message box suivant :

Code:
EtudeExiste_Err:
msg = 'L'étude ' & TextBoxNomSite.Value & ' existe déjà. Voulez vous l'écraser ? Oui pour écraser le fichier existant. Non pour saisir un nouveau nom à votre étude. Annuler pour ouvrir l'étude existante.'
        Style = vbYesNoCancel + vbDefaultButton2
        Title = 'Attention !'
       Réponse = MsgBox(msg, Style, Title)
        Exit Sub
et que si on clique sur 'Oui', cela écrase le fichier exsistant , si on clique 'Non' on revient sur mon userform et si on clique 'Annuler' cela ferme mon userform.

P.S : les fichiers avec les extensions '.thx' et '.cxl' sont des classeur excel standard sans aucune macro. Ils ont ces extension car il sont ouvert par un de mes logiciel qui ne lit que les fichiers avec ces extensions.

Merci de me donner un petit coup de main.

@+
 

Delirium

XLDnaute Occasionnel
désidément il veut pas suivre !!!!!!!!!! [file name=exemple_nouveau_dossier.zip size=29381]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_nouveau_dossier.zip[/file]
 

Pièces jointes

  • exemple_nouveau_dossier.zip
    28.7 KB · Affichages: 24

ZZR09

XLDnaute Occasionnel
Bonjour Delirium, le forum
Merci à Excalibur et Fifi qui m'on donné ce code hier ;)
Si j'ai bien compris, dans ton userform, sur le bonton enregistrer, tu teste l'existence du fichier et lancer ton message d'alerte avec trois propositions voici ce que je te propose pour garder la main:

NouvelleEtude.hide...
msg...

Code:

if reponse = vbYes then
application.displayAlerts=False ' Pour annuler les alertes du système (Ce qui peut faire bugger)
goto continuer
End If
if reponse = vbNo then
NouvelleEtude.textbox1.setfocus
NouvelleEtude.textbox1.selstart=0
NouvelleEtude.textbox1.sellength=len(me.textbox1)
NouvelleEtude.show 'Focus sur la séléction douteuse
Exit Sub
End If
if reponse = vbCancel then Exit Sub

continuer:


Quote:
Ce qui te permet de garder la main c'est ça :
Application.DisplayAlerts=False
Il ne faudra pas oublier de le remettre sur true un peu plus loin, quand le fichier sera remplacé.

Pour ma part ça a buggé ensuite car si le fichier existe déjà, je le remplace ... mais il faut aussi vérifier qu'il n'est pas déjà ouvert.

Au passage, comment tu fais pour savoir si ce fichier est déjà ouvert?

La méthode que j'utilise est un peu longue : je compare tous les classeurs déjà ouverts à mon nouveau. J'ai récupéré un IsOpenFile(pathname) mais ça ne marche pas!

Bon j'espère avoir répondu à ta question :)
A+

Il est possible (probable) que réponse prenne des valeurs numériques, auquels cas il faudra adapter:
if réponse = 1 then ...

A+

Message édité par: zzr09, à: 22/08/2005 16:15
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Delirium, le Forum

Je n'ai pas trop le temps de faire une correction de ton code qui me semble un peu 'fouillu'
mais en tout cas il me semble que ton problème vient du fait que tu ne gère pas bien la réponse faite à ta MsgBox...

Voici un exemple basic :

Sub MessagevbYesNo()
Dim Msg As Byte

Msg = MsgBox('OUI ou NON ? ', vbYesNo)
   
If Msg = vbYes Then
            MsgBox 'Action Yes'
       
Else
            MsgBox 'Action No'
   
End If

End Sub


Que l'on peut écrire indifféremment ainsi :
Sub MessagevbYesNo()
Dim Msg As Byte

Msg = MsgBox('OUI ou NON ? ', 4)
   
If Msg = 6 Then
            MsgBox 'Action Yes'
       
Else
            MsgBox 'Action No'
   
End If

End Sub

Regarde l'aide à : 'MsgBox, constantes'

Bonne Journée et semaine
[ol]@+Thierry[/ol]


[ol]EDITION !!![/ol]

Bonjour ZZ, sorry je ne ta'vais pas vu.

Message édité par: _Thierry, à: 22/08/2005 08:09
 

Delirium

XLDnaute Occasionnel
Bonjours Thierry et ZZR09.

En faite dans mon userform, le bouton 'Enregistrer' réalise les actions suivantes :
- crée un nouveau fichier dans le dossier 'Dossier', qui est une copie d'un fichier type.
-Ouvre un fichier temporaire (qui sert aprés à mon mon application), pour renseigner dans la cellule A1 le chemin du fichier qui vient d'être créer dans 'Dossier' et les données qui sont présente dans le fichier temporaire dans la plage de A2:O70. Puis le classeur temporaire et refermer.

En faite ce que je veus, c'ets que dans le cas ou le fichier que l'on veut créer exsiste dans 'Dossier' mon message box soit afficher.

Mais je ne sais pas quel code il faut écrir pour cela (jusque ici, je faisais des macro uniquement pour moi, alors je ne me servais pas des message box et je ne sais pas les gérer).

J'ai en partie la solution avec vos reponses, mais je ne vois pas le code à écrire pour lancer le MsgBox quand le fichier exsiste.

Je supose que ça doit être un truc dxu style :
If files exsist then GoTo 'NomDuMessageBox_Err

Pour le moment je ne peut pas testé vos solution car je suis à mon taf sur un poste ou il n'y a pas XL.

Je vais voir cela ce soir et vous tien au courant.

Merci à vous deux.

@+
 

ZZR09

XLDnaute Occasionnel
Bonsoir Delirium, le forum

Je viens de passer quelques heures à essayer de me dépatouiller de cette question, en vain :eek:

j'ai rajouté une macro (piquée ailleurs) FileSearch et je l'ai adaptée, avec le message d'erreur et les options que nous souhaitions.

mais je bute sur un message perso qui ne sort de je ne sais pas où et qui correspond à ton message d'erreur du fichier déjà existant.

Je ne sais pas comment tu l'actives mais si tu peux le supprimer, cela résoudra peut-être le problème :unsure:

D'autre part, je ne comprends pas la macro viderPressePapier.
Peux-tu me l'expliquer?
Moi je suis out x) on verra ça demain.
Peut-être même qu'un cador se sera penché sur le problème.

A+ [file name=copierFichier2.zip size=45480]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copierFichier2.zip[/file]
 

Pièces jointes

  • copierFichier2.zip
    44.4 KB · Affichages: 39

Delirium

XLDnaute Occasionnel
Bonsoir ZZR09.

Merci pour ton aide.

Je vais testé ton fichier, mais je ne peut pas le télécharger en ce moment. J'ai un problème de deconnection avec mon FAI.

Dés que j'ai résolu mon prbléme je te tien au courant.

Merci et @+
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 988
dernier inscrit
Feonix