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 :

Kill ne fonctionne pas sous 2007


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Kill ne fonctionne pas sous 2007
    Bonjour, je m'arrache les cheveux sous Excel 2007.
    J'ai une procédure de mise à jour automatique du fichier qui marche très bien sous 2003 et qui ne marche pas sous 2007...
    Voici la dite procédure (les lignes qui bloquent)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ThisWorkbook.SaveAs Chemin + "Fichier_OLD.xls"
    Kill NomFichierFull 'Ancien nom de fichier avec Chemin complet
    FileCopy "C:\LE\CHEMIN_VERS\Fichier.xls", Chemin + NomFichier(CStr(NomFichierFull))
    Je tiens a préciser que les chemins des variables sont corrects je les ai vérifiés avec des MsgBox pas à pas...

    Le soucis : Mon fichier est bien enregistré sous le nouveau nom Fichier_OLD.xls, si ensuite je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveWorkBook.name
    J'ai bien le nom Fichier_OLD.xls
    Mais l'ancien fichier refuse de se supprimer. J'ai essayé une autre procédure de suppression à la place de "KILL" mais le résultat est le même.

    Qu'en pensez-vous?

    Merci de votre aide.
    Cordialement,
    Jojo

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Attention que dans ton sujet tu indiques que cela ne fonctionne pas sous Excel 2003 alors que dans ton explication tu dis que c'est en 2007 que cela ne fonctionne pas.
    Es-tu sûr que ton fichier n'est pas ouvert ?
    Voici la dite procédure (les lignes qui bloquent)
    Quel message d'erreur as-tu ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Bonjour,
    En faite je n'ai aucun message d'erreur... Rien à signaler 2007 passe sur les lignes comme si tout était bon sauf que le fichier n'est pas supprimé...
    J'ai ajouté avant la suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(NomFichierFull).Close
    Mais rien à signaler.
    Aucune erreur signalée.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je viens de faire un test et je te confirme que l'instruction KILL fonctionne bien en 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim file As String
      file = ThisWorkbook.Path & "\" & "Classeur2.xlsx"
      Kill file
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Es-tu absolument sûr du contenu de ta variable NomFichierFull
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Kill NomFichierFull 'Ancien nom de fichier avec Chemin complet
    FileCopy "C:\LE\CHEMIN_VERS\Fichier.xls", Chemin + NomFichier(CStr(NomFichierFull))
    Je ne comprends pas ton code.
    D'abord tu indiques que NomFichierFull est ' Ancien nom de fichier avec Chemin complet', donc un String et ensuite tu copies vers Chemin + NomFichier(CStr(NomFichierFull)). Alors là tu ajoutes un chemin à une variable qui est déjà un chemin + un nom de fichier que de plus tu convertis en string CStr(NomFichierFull) j'avoue que pour moi tout cela est très confus.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    NomFichier() est une fonction qui ressort le nom du fichier seul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function NomFichier(NomFull As String)
    Dim PosXls As Integer
    Dim PosCoupe As Integer
    Dim Chemin As String
    PosXls = InStr(1, NomFull, ".xls")
    PosCoupe = PosXls
    While Mid(NomFull, (PosCoupe - 1), 1) <> "\"
        PosCoupe = PosCoupe - 1
    Wend
    NomFichier = Mid(NomFull, (PosCoupe), Len(NomFull) - (PosCoupe - 1))
    End Function
    Je l'ai supprimé en mettant dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Chemin = ThisWorkbook.Path & "\"
    ThisWorkbook.SaveAs Chemin + "FICHIER_OLD.xls"
    Kill NomFichierFull
    FileCopy "C:\CHEMIN\VERS_FICHIER\FICHIER.xls", NomFichierFull
    MsgBox "La mise à jour est terminée, Veuillez relancer le fichier.", vbInformation, "Relancer Fichier"
    ThisWorkbook.Close
    Toujours le même problème...
    Le fichier n'est pas supprimé, j'ai ajouté un MsgBox juste après le Kill et le fichier est toujours présent je vous certifie que mon chemin est correct.
    Sous 2003 Aucun soucis je le répète.

Discussions similaires

  1. [AC-2007] CpteDom ne fonctionne pas sous access 2007 + WDS 7
    Par JacPapa74 dans le forum Access
    Réponses: 3
    Dernier message: 30/10/2013, 23h07
  2. [WD-2007] Macro 2003 ne fonctionne pas sous 2007
    Par ZoRm33 dans le forum VBA Word
    Réponses: 5
    Dernier message: 10/08/2012, 11h29
  3. Mes codes VBA ne fonctionnent pas sous access 2007
    Par ralfus dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2008, 11h36
  4. macro ne fonctionne pas sous 2007
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/09/2008, 07h24
  5. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09

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