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

VBScript Discussion :

Supprimer données Excel


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut Supprimer données Excel
    Bonjour,

    Je souhaite faire un script en VB permettant de supprimer toutes les données d'une feuille Excel.
    Par un macro, ça marche bien, mais la raison pour laquelle je veux un script VB, c'est que c'est destiné à être exécuté périodiquement, avec le fichier Excel fermé.

    Donc en gros, faut ouvrir le fichier Excel (ça, ça va, j'ai un autre script VB sous la main, où le fichier Excel est ouvert), mais comment choisis-t-on la feuille (en VB, pas VBA), et supprime-t-on toutes les données de la feuille ?

    Je précise que je n'y connais quasiment rien en VB (bon, j'ai quelques bases, mais sans plus).

    Merci d'avance
    Cordialement,

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Et comment l'ouvre tu ton classeur ?

    si tu utilise l'automation, tu dois avoir un objet de type "Workbook" nommé wk par exemple et qui te donne ensuite accès à ces feuilles...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wk.Sheets("Mafeuille").cells.ClearContents

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if wscript.arguments.length > 0 then
     
    	path_file = lcase( wscript.arguments(0) )
     
    	'load excel
    	set ex = Wscript.createobject("excel.application")
    	'ouvre le doc excel
    	ex.Workbooks.Open path_file
    	ex.visible = false
    Je l'ouvre comme ça.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    modifie la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set wk=ex.Workbooks.Open path_file
    et rajoute ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wk.Sheets("Mafeuille").cells.ClearContents

    n'oublie pas de sauver ton classeur une fouis modifié..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if wscript.arguments.length > 0 then
     
    	path_file = lcase( wscript.arguments(0) )
     
    	'load excel
    	set ex = Wscript.createobject("excel.application")
    	'ouvre le doc excel
    	set wk=ex.Workbooks.Open path_file
    	ex.visible = false
    	'supprime les données
    	wk.Sheets("Feuil2").cells.ClearContents
     
     
    else
    	msgbox "Déposer le fichier à convertir sur l'icone du programme"
     
           continue = false
     
    end if
    Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	set wk=ex.Workbooks.Open path_file
    J'obtiens une erreur : fin instruction attendue.

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set wk=ex.Workbooks.Open( path_file)
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Merci à toi, effectivement ça marche !
    Hum... pour sauvegarder et fermer le fichier, c'est comme en VBA ?

    (Je suis pas très au point sur les différences VBA/VB)

    EDIT : Oui, c'était pareil.

    Merci à vous deux, le script fonctionne !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Bonjour,

    Je ne sais pas trop ce qui se passe, le script ne fonctionne pas.
    J'ai une erreur me disant que pour la ligne 11 (celle qui supprimme les données), l'indice est trop grand.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if wscript.arguments.length > 0 then
     
    	path_file = lcase( wscript.arguments(0) )
     
    	'load excel
    	set ex = Wscript.createobject("excel.application")
    	'ouvre le doc excel
    	set wk=ex.Workbooks.Open(path_file)
    	ex.visible = false
    	'supprime les données
    	wk.Sheets("ARTICLE").cells.ClearContents
    	wk.Save
    	wk.Close
     
     
    else
    	msgbox "Déposer le fichier à convertir sur l'icone du programme"
     
           continue = false
     
    end if
    Merci d'avance pour votre aide !

    EDIT : l'erreur vient du fait que j'avais donné un mauvais nom pour la feuille.
    Le message d'erreur n'apparait plus. Mais le fichier n'est toujours pas modifié, donc toute aide est bienvenue.
    À priori, cela vient de l'enregistrement, puisqu'avant d'y intégrer 'enregistrement, ça marchait bien.
    Quelqu'un a une solution ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Je suis désolé du triple post, mais ainsi, les modifications sont plus visibles.

    Je viens de mettre en commentaire la sauvegarde et la fermeture. Si je pense qu'il y a effectivement un problème à ce niveau, le script ne fonctionne pas (comprendre : il ne supprime pas les données) quand je les commente.

    Je vous remercie par avance de votre aide.

    Cordialement,

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il y as bien des données à effacer sur ta feuille articles ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Fausse alerte, c'était juste que j'avais le fichier ouvert à part et que j'ai du enregistrer.

    Donc le problème vient bien de la sauvegarde/fermeture.
    Si dans la sauvegarde il était également possible d'éviter les messages du type "voulez vous remplacer le fichier ?", ce serait super.

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    avec un save tu ne devrai pas avoir ce genre de message !



    sinon pour ne pas afficher les messages d'alerte :
    avant ton save :

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    Bonjour,

    Le script ne supprime aps des données "pour de vrai".
    Je m'explique : j'exporte une table automatiquement par dts dans ce document Excel, et au lieu d'exporter les tables aud ébut du document, il les exporte après les données supprimées.

    J'ai donc beaucoup de lignes vides, puis des lignes remplies.
    Comment supprimer réellement les données ?

    Merci d'avance
    Codialement,

  14. #14
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    Citation Envoyé par LupusCramus Voir le message
    Bonjour,

    Le script ne supprime pas des données "pour de vrai".
    Je m'explique : j'exporte une table automatiquement par dts dans ce document Excel, et au lieu d'exporter les tables au début du document,
    ............
    Merci d'avance
    Codialement,
    dts ?
    :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 ← ← 👈

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 56
    Par défaut
    DTS pour Data Transformation Service, avec SQL Server 2000.

    Mais là n'est pas le sujet. J'ai finalement réussi à résoudre mon problème avec le script en remplaçant ClearContents par Delete.

    Néanmoins, s'il s'avérait que ce n'était pas la bonne solution, je vous invite à m'en faire part.

    Merci d'avance.

    Cordialement,

Discussions similaires

  1. supprimer des données Excel à partir de MATLAB
    Par Nab18 dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/05/2013, 16h33
  2. [Vxi3] Supprimer source de données excel
    Par li974 dans le forum Webi
    Réponses: 7
    Dernier message: 14/03/2012, 11h56
  3. ADO Excel, Supprimer Données dans Fichier Fermé
    Par vaucluseimmo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/08/2008, 19h20
  4. Supprimer des données Excel sous VBA Access
    Par Sam 069 dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/10/2007, 09h55
  5. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 18h16

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