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

VB.NET Discussion :

Récupérer message Excel "fichier existe déjà"


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut Récupérer message Excel "fichier existe déjà"
    Bonjour,
    Je crée un fichier Excel sous vb.net

    Lors du lancement l'enregistrement du fichier Excel j'ai un message qui m'indique que ce fichier existe déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classeur.SaveAs(Application.StartupPath & "\DATA\EtiquettesQ2.xlsx")
    "Voulez-vous le remplacer Oui Non Annuler"
    Oui ne pose pas de problème
    J'aimerais récupérer l'action des boutons Non et Annuler afin de fermer ma form VB
    Merci d'avance
    FikoU

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 127
    Par défaut
    Salut

    Il me semble qu'il est possible de récupérer l'information en attribuant une variable à la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Retour = Classeur.SaveAs(Application.StartupPath & "\DATA\EtiquettesQ2.xlsx")
    If Retour = ? Then
    Par contre je ne me souvient plus des entiers retournés qui correspondent au bouton choisi.

    [edit]
    pour les valeur renvoyées je pense que tu peux te fier à:
    https://support.microsoft.com/fr-fr/...6-ba9f1749f4c0 pargraphe Renvoyer des valeurs
    [/edit]
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Merci pour ta réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sRetour As String
            sRetour = Classeur.SaveAs(Application.StartupPath & "\DATA\Liste tireurs.xlsx")
    J'ai le message : Cette expression ne produit pas de valeur...
    C'est pas une msgbox que j'ai créé mais un message d'Excel

    FikoU

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 512
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 512
    Par défaut
    Tu utilises quel package pour agir sur ton excel ? Interop/PIA ?
    Tu peux aussi utiliser la méthode Save() si le classeur existe déjà (aucune confirmation ne sera demandé, puisque tu sauvegardes le classeur sur lequel tu travailles) https://learn.microsoft.com/en-us/do...view=excel-pia

    Je ne comprends pas trop ta demande de récupération des actions des boutons Non ou annuler en revanche.
    A priori, comme évoqué, pas possible de savoir (simplement du moins) quel bouton a été appuyé.

    Avant d'enregistrer, tu peux vérifier si le fichier existe, et à toi de choisir quoi faire dans ce cas (générer tes propres fenêtres via msgbox/messagebox et en récupérer les retours)

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 561
    Par défaut
    Bonjour,
    Il me semble, effectivement, plus simple d'agir sur le message d'alerte excel plutôt que de vérifier l'existence du fichier avant d'exécuter la méthode saveas😭

    Comme l'a souligné umfred.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Merci à tous,
    Voila un truc qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     If My.Computer.FileSystem.FileExists(Application.StartupPath & "\DATA\Liste tireurs.xlsx") Then
                Dim sMsg = "un fichier du même nom existe déjà" & Chr(13) & "Voulez-vous l'écraser"
                Dim title = "Attention"
                Dim style = MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.Critical
                Dim Reponse = MsgBox(sMsg, style, title)
                If Reponse = MsgBoxResult.Yes Then
                    My.Computer.FileSystem.DeleteFile(Application.StartupPath & "\DATA\Liste tireurs.xlsx",
                                                      Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
                                                      Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin)
                    Classeur.SaveAs(Application.StartupPath & "\DATA\Liste tireurs.xlsx")
                    If chkImprimer.Checked Then
                        appExcel.ActiveWindow.SelectedSheets.PrintOut(Copies:=CInt(nudNbCopies.Value))
                    End If
                End If
    Je supprime le fichier avant "saveAs" si je ne veut pas le message d'Excel

    @+FikoU

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 512
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 512
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Bonjour,
    Il me semble, effectivement, plus simple d'agir sur le message d'alerte excel plutôt que de vérifier l'existence du fichier avant d'exécuter la méthode saveas😭

    Comme l'a souligné umfred.
    j'ai dis exactement l'inverse

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Oui je comprend bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sRetour As String
            sRetour = Classeur.SaveAs(Application.StartupPath & "\DATA\Liste tireurs.xlsx")
    Cette expression ne produit pas de valeur ???

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 512
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 512
    Par défaut
    bah oui, la doc indique que saveas ne renvoie rien

Discussions similaires

  1. Recevoir un message si un fichier excel n'existe pas
    Par onyirimba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/02/2019, 19h22
  2. Réponses: 4
    Dernier message: 12/10/2009, 17h55
  3. Export/EXCEL SaveAs Pb.: "Fichier existant"
    Par JOHN14 dans le forum Access
    Réponses: 3
    Dernier message: 16/12/2006, 12h31
  4. [Excel] Tester si le fichier existe
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/09/2006, 10h20
  5. Récupérer les corps des messages et leurs fichiers joints...
    Par Leobaillard dans le forum Composants VCL
    Réponses: 13
    Dernier message: 02/05/2006, 01h24

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