IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment ne pas avoir de bug en ne voulant pas enregistrer un fichier déjà existant [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Comment ne pas avoir de bug en ne voulant pas enregistrer un fichier déjà existant
    Bonjour à tous

    J'utilise cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveWorkbook.SaveAs Filename:="Name.xls"
        ActiveWorkbook.Close
    Mais si le fichier existe déjà une boite s'affiche en demandant si on veut remplacer le fichier déjà existant.

    Si on clique sur OUI, tout se passe bien
    Mais si on clique sur NON, ça bug et la première ligne s'affiche surligné

    Merci de m'aider

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Que veux tu conrètement faire avec ce code?
    Je veux dire: Veux tu toujours écraser le fichier existant ? Jamais, parfois?

    Si c'est toujours, tu peux utiliser ceci qui correspond à appuyer sur la touche Entrée donc dire oui (A placer après la ligne du save as)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendKeys String:="{Enter}", wait:=false
    Sinon donne plus de détail sur la raison de ce bout de code.

    A+

    Edit: Maintenant que j'y repense pas certain que le sendkey fonctionne dans ce cas, je vérifie...ce que j'aurais du faire avant

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Ben non en fait,
    Je voudrais que si je clique sur OUI, il l'écrase
    Si je clique sur non il ne l'écrase pas
    et si je clique sur annuler, il le laisse ouvert sans l'enregistrer
    Oui quelque chose du genre

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Je te propose ceci alors, passer par une boite de dialogue qui pose la question, à toi d'adapter les textes si ça te convient. Je n'ai laissé que les option Oui/Non, si oui, il écrase et ferme, sinon rien, tu peux toujours ajouter un message demandant de changer de nom (mais comme je sais pas d'où vient le nom du fichier...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub TestSave()
     
    Monchoix = MsgBox("Voulez vous écraser le fichier existant?", vbYesNo, "Sauvegarde")
        If Monchoix = vbYes Then
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:="Name.xls"
            ActiveWorkbook.Close
            Application.DisplayAlerts = True
        End If
     
    End Sub
    A+

    P.S. Pour répondre à mon Edit de la première réponse, le sendkey ne passe pas , il faut le DisplayAlerts

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Merci pour la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2014, 16h55
  2. Instal comment ne pas avoir "éditeur inconnu" ?
    Par Ehjoe dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/11/2009, 11h38
  3. Réponses: 2
    Dernier message: 14/11/2008, 18h31
  4. Réponses: 2
    Dernier message: 25/04/2008, 10h43
  5. Réponses: 8
    Dernier message: 27/10/2006, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo