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

VBA Access Discussion :

[A-03] Comment supprimer toutes les lignes vierges d'une table ?


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut [A-03] Comment supprimer toutes les lignes vierges d'une table ?
    Bonjour à toutes et à tous !!

    Voilà, cela fait maintenant une bonne demi journée que je cherche (à priori mal, j'admet...) la façon d'effacer toutes les lignes vierges contenu dans une table qui elle même vient d'un import de fichier .xls.

    Ce fichier ayant une taille variable, lors de l'import des données, je lui demande de balayer de A7 à T150. Pour être à peu près sûr qu'il n'y aura pas de données oubliés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, 8, "ApproGoss", "C:\fichier.xls", True, "A7:T150"
    Mais le problème c'est que du coup, j'ai plein de lignes viergesdans ma table car ce tableau xls ne fait pas forcément 143 lignes de textes.

    Je pense qu'il y a plusieurs possibilité soit :
    - il existe une fonction qui permet de ne selectionné que le texte lors de l'import du fichier xls, soit
    - il faut supprimer avec la fonction DELETE + la clause WHERE mais lorsque j'utilise cet methode Access m'envoye un jolie message d'erreur type
    Sub ou Fonction inexistante

    Si des avis éclairés pouvait éclairer le mien, merci par avance.


    Et vive developpez.com et .net car sans toute la communauté je serai resté au stade de la programmation en QBasic !!! sisi sérieux !!
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  2. #2
    Membre régulier
    Femme Profil pro
    Chef de projet informatique
    Inscrit en
    Juillet 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2008
    Messages : 115
    Points : 85
    Points
    85
    Par défaut
    Bonjour DeFCrew,

    Pour l'importation tu as une autre solution qui t'importera seulement les lignes remplies. Cette solution c'est aller dans l'onglet "macro", tu cliques sur "nouveau" et là tu as une nouvelle page qui s'ouvre. Dans la première case action tu mets "TransférerFeuilleCalcul" et tu renseignes en bas les propriétés. Les deux premières tu laisses comme c'est, la troisième c'est le nom de la table dans laquelle tu souhaites enregistrer tes données, la quatrième tu mets le chemin pour accéder à ton fichier Excel à importer (moi en général je crée un dossier Transfert dans C:\ et donc mon chemin pour accéder au fichier à importer devient C:\Transfert\nomFichierAImporter.xls) et ensuite la propriété suivante tu dis si ton fichier Excel contient les champs d'en-tête ou pas et la dernière propriété tu la laisses telle quelle.
    Ensuite il te reste plus qu'a lancer cette macro depuis ton code vba de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    stDocName = "import"
    DoCmd.RunMacro stDocName
    Voilà, j'espère que j'ai été claire dans mes explications, mais je suis dispo pour plus de détails si tu le souhaites.

    A+

  3. #3
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Bonjour veriecherie, merci de t'être intéressé à mon problème.

    Saurait-tu par hasard si dans la macro il est possible de définir les en tête à partir de A7 dans le fichier xls et non pas A1 et de ne pas importer les données avant A7 ?

    Et est-il possible dans la macro de prendre le fichier xls le plus récent ?
    Car j'en ai au moins une cinquantaine plus un nouveau toutes les semaines ; le tout dans un même dossier.

    Exemple :

    dans le dossier "Transfer" il y a 52 fichier xls.
    Lorsque je clique sur un bouton dans access celui-ci importe le fichier xls le plus récent dans une table en important les données qu'à partir de A7 à T7 jusqu'a ce qu'il n'y est plus de données a transférer pour éviter les lignes blanches
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  4. #4
    Membre régulier
    Femme Profil pro
    Chef de projet informatique
    Inscrit en
    Juillet 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2008
    Messages : 115
    Points : 85
    Points
    85
    Par défaut
    Oula, tu compliques tout d'un coup

    Saurait-tu par hasard si dans la macro il est possible de définir les en tête à partir de A7 dans le fichier xls et non pas A1 et de ne pas importer les données avant A7 ?
    oui tu peux lui dire de n'importer que de A7 à T7, c'est la dernière propriété à renseigner. Je t'ai mis un aperçu écran avec les propriétés remplies.

    Et est-il possible dans la macro de prendre le fichier xls le plus récent ?
    Là je dirai que c'est à toi de nommer ton fichier le plus récent d'une autre façon que les autres. Je ne pense pas qu'il soit possible de faire automatiquement l'import d'un fichier en regardant si c'est le plus récent.

    Voilà en espérant que ça t'avancera...
    A+
    Images attachées Images attachées  

  5. #5
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Oui j'ai compliqué d'un coup pour voir si tu suivait

    (joke) Bref, merci encore de ta réponse. J'avais completement oublié que les macros existait et que ça pouvait facilité la tâche mais il me semble avoir lu quelque part que c'est pas le best pour la programmation avec Access et si tu pense qu'il n'est pas possible de prendre le fichier le plus récent et qu'il faut le renommer à chaque fois... c'est pas vraiment ce que je veux (à un poil de cul près mais bon...)

    J'ai entre temps trouvé la parade, pour n'afficher que les lignes pleines dans une zone de liste avec une clause WHERE len(commande) = 10 car tout les chiffre dans la colonne "commande" font 10 chiffre de long.
    Du coup sa n'affiche que les lignes ou il y a quelque chose d'écrit.

    Un grand merci à toi encore car je vais surement utilisé ta technique pour d'autre programme
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  6. #6
    Membre régulier
    Femme Profil pro
    Chef de projet informatique
    Inscrit en
    Juillet 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2008
    Messages : 115
    Points : 85
    Points
    85
    Par défaut
    Je ne savais pas que c'était pas top ce genre de macro avec Access, mais bon pour le moment chez moi ça marche pas trop mal. Mais je note ça dans ma petite tête histoire de ne pas m'en servir tous les 4 matins Mais c'est quand même bien pratique de temps à autre...

    Et ta parade est pas mal effectivement, tu obtiens le résultat souhaité c'est le principal !

    A+

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

Discussions similaires

  1. Comment supprimer toutes les lignes après l'apparition d'un motif ?
    Par TekP@f dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 20/07/2012, 09h02
  2. Réponses: 3
    Dernier message: 04/04/2007, 13h04
  3. supprimer toutes les lignes d'un flexgrid sauf la ligne de titre
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/08/2006, 10h39
  4. [VB 2005] Supprimer toutes les lignes d'un DataGridView
    Par Bob Langlade dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/01/2006, 16h03
  5. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26

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