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 :

Supprimer lignes dans Excel


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut Supprimer lignes dans Excel
    Bonjour,

    Question toute simple et pourtant pour laquelle je ne trouve rien dans Google ...

    Comment supprimer des lignes dans un fichier excel par code VB?

    Plus en détail :
    J'ai un ERP professionnel dans lequel j'extrais des données statistiques dans un fichier excel que je réintègre dans une base de donnée access et que j'exploite dans un applicatif VB.
    Mon problème c'est que lors de chaque extraction, l'ERP construit le fichier excel avec des lignes dont je n'ai pas besoin : les lignes 1 à 9 et la colonne A.

    J'aimerais donc avoir un bouton pour nettoyer mes fichiers ensuite un bouton pour les intégrer dans la DB (ça sera pour plus tard...).

    Merci pour votre aide

  2. #2
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Salut,

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ApplicationExcel As New Excel.Application() 'Ouvre Excel
    Dim ClasseurExcel As Workbook = ApplicationExcel.Workbooks.Open(Nomdemonfichier) 'Ouvre le classeur spécifié
    Dim FeuilleExcel As Worksheet = CType(ClasseurExcel.Worksheets(1), Worksheet) 'Sélectionne la première feuille
     
    For n As Integer = 1 To 9 'Pour n = 1 jusqu'à 9
         Dim Ligne As Range = CType(FeuilleExcel.Rows(n), Range) 'Sélectionne la ligne
         Ligne.Delete() 'Supprime la ligne
    Next
    Merci de ainsi que d'utiliser les boutons et

  3. #3
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Hello,

    Merci pour la réponse
    Cela dit j'ai toujours un problème... le code que tu donnes me semble du VBA et je travaille en VB...
    J'ai donc quelques fonctions qui ne sont pas reconnues :

    Excel.Application()
    Workbook
    Worksheet
    Range

    Existent-elles en VB ?

  4. #4
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    C'est du VB.net et non du VBA !
    Tu as ajouté la référence Microsoft.Office.Interop.Excel à ton projet ?
    Merci de ainsi que d'utiliser les boutons et

  5. #5
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Je l'ai ajoutée...et plus rien ne fonctionnait
    Impossible de retrouver l'interface graphique....
    J'ai su revenir en arrière en chipotant et j'ai voulu refaire la manip dans une copie du projet au cas ou.... et maintenant je ne trouve plus la référence.....

  6. #6
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Regarde ceci.
    Merci de ainsi que d'utiliser les boutons et

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Certaines diront que je n'ai rien compris comme dab, je fais une dernière tentative avant d'aller à la pêche!

    Tu peux considérer Excel comme une base de données et faire une jointure externe entre Access et Excel! Tu peux même fournir. Une plage de données B10:E500 par exemple!

    J'aimerais donc avoir un bouton pour nettoyer mes fichiers ensuite un bouton pour les intégrer dans la DB (ça sera pour plus tard...).
    Avec un requête Sql tu pourras supprimer les 9 première ligne la colonne A et intégrer directement dans Access 2 en 1!

    https://www.developpez.net/forums/d1...t/#post9666110
    Dernière modification par Invité ; 04/01/2018 à 23h22.

  8. #8
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Hello,

    J'ai lu les infos... j'ai réussi à ajouter la référence mais j'ai quand même un petit bug après... des polices utilisées dans mes boutons ne sont plus disponibles et l'interface graphique plante...
    Enfin, j'ai su corriger ça !

    Par contre, les fonctions ne sont toujours pas disponibles

    Après si ça peut se faire par du SQL ça m'intéresse aussi

  9. #9
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Citation Envoyé par thovan Voir le message
    Par contre, les fonctions ne sont toujours pas disponibles
    Merci de préciser ! Quels sont les éléments concernés ? Quels sont les messages d'erreurs ?
    Merci de ainsi que d'utiliser les boutons et

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Supprimer lignes dans Excel

    Cela veut dire quoi vraiment ?

    Parce que, pour un habitué d'Excel, supprimer une ligne c'est enlever la ligne au complet. Quand on supprime la ligne 1, la ligne 2 devient la ligne 1. Quand on efface les cellules, la ligne reste mais avec de cellules vides.

    Si, supprimer les lignes 1 à 9 veut dire que la ligne 10 devient la première ligne directement en dessous des lettres, le code de r.morel constitue une bonne base, sauf que tu dois boucler à rebours de 9 à 1. Parce que c'est la seule façon de garder synchronisés le compteur de la boucle et le numéro de la ligne. (Les numéros de lignes ne sont pas figés et changent automatiquement dès que la ligne est zigouillée.

    Mais tant que tu ne diras pas exactement quels problèmes tu as et quand, les lignes en erreurs et les textes des messages d'erreur, cela ne sert à rien de juste venir voir le sujet.

    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  11. #11
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    (...) Quand on supprime la ligne 1, la ligne 2 devient la ligne 1. (..)
    Salut,
    Merci de cette correction. J'avais oublié. Pourtant je me suis déjà confronté à ce problème.
    Bonne journée
    Merci de ainsi que d'utiliser les boutons et

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Dans ce lien https://www.developpez.net/forums/d1...t/#post9666110

    Je te propose une solution, j'y propose même une vidéo montrant la marche a suivre!

    Tu peux faire une requête avec jointure externe entre Access et Excel!

    Code Sql Excel : Sélectionner tout - Visualiser dans une fenêtre à part
    select * From [Feuille1$B10:E150] in 'C:\rep\Classeur1.xls' 'Excel 12.0;HDR=No')

    Ton but étant de manipuler ces données dans ton application commencer par ce connecter à Access c'est pas une mauvaise idée!
    Dernière modification par Invité ; 10/01/2018 à 07h37.

  13. #13
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Et bien, merci pour toutes vos réponses

    Alors, je veux bien supprimer complètement les lignes en trop 1 à 9 et la colonne A.

    Concernant les morceaux de codes qui ne vont pas :
    Dim ApplicationExcel As New Excel.Application() "Type Excel.application not defined"
    Dim ClasseurExcel As Workbook "Type Workbook is not defined"
    Dim FeuilleExcel As Worksheet "Type Worksheet is not defined"
    Dim Ligne As Range "Systen.Data.Range is not accessible in this context because it is 'friend'"

    Voilà

    Je vais jeter un oeil sur la solution SQL et tester !

  14. #14
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Citation Envoyé par dysorthographie Voir le message

    Ton but étant de manipuler ces données dans ton application commencer par ce connecter à Access c'est pas une mauvaise idée!
    En fait l'idée c'est de créer un applicatif externe qui nous permet d'exploiter les données d'un ERP/SGL quand on se trouve limité dedans...
    J'en ai discuté avec la société qui développe ce soft et apparemment un accès direct à la DB serait possible en lecture seule.... ce qui veut dire, plus besoin d'export-import et en plus exploitation des données en temps réel...

    Mais bref, j'aimerais quand même y arriver... pour ma culture personnelle

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pour ce qui me concerne, j’oublierais Excel, mais visiblement ce n'est pas ton option!

  16. #16
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Il te manque la référence pour Excel ! Tu dois ajouter la référence Microsoft.Office.Interop.Excel.
    Comme indiqué dans ce post : https://www.developpez.net/forums/d1...l/#post9886161
    Merci de ainsi que d'utiliser les boutons et

  17. #17
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Citation Envoyé par r.morel Voir le message
    Il te manque la référence pour Excel ! Tu dois ajouter la référence Microsoft.Office.Interop.Excel.
    Comme indiqué dans ce post : https://www.developpez.net/forums/d1...l/#post9886161
    Non je l'ai bien malheureusement, impossible de joindre une capture d'écran dans mon message...

  18. #18
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    pour ce qui me concerne, j’oublierais Excel, mais visiblement ce n'est pas ton option!
    Je peux essayer d'exporter en texte avec séparateur point virgule...

  19. #19
    Invité
    Invité(e)
    Par défaut
    voila la requête que j'utilise dans l’exemple de la vidéo fournis!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO TestInsertDb ( NumDoc, Livrable, Jalon, DateS1, DateA1, DateS2, DateA2, DateS3, DateA3, A_consulter, Version )SELECT Frm.NumDoc, Frm.Livrable, Frm.Jalon, Frm.DateS1, Frm.DateA1, Frm.DateS2, Frm.DateA2, Frm.DateS3, Frm.DateA3, Frm.A_consulter, Frm.Version
    FROM [TestInsertDb$] AS Frm IN 'C:\Users\.....\Desktop\TestInsertDb\TestInsertDb.xlsx'[excel 12.0;HDR=Yes;IMEX=1;];

  20. #20
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour


    Citation Envoyé par thovan Voir le message
    Non je l'ai bien malheureusement, impossible de joindre une capture d'écran dans mon message...
    Commence par mettre dans l'entête de ton module:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports.Microsoft.Office.Interop.Excel
    Mais. j'ai déjà eu des problèmes avec des versions de visual Studio qui de voulaient rien savoir d'importer office.interop.

    J'ai pris l'habitude de toujours utiliser la chaîne complète de noms. Ils sont "inclus" dans l'intellisemce.

    De mémoire uniquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ApplicationExcel As New Microsoft.Office.Interop Excel.Application()
    Dim ClasseurExcel As Microsoft.Office.Interop.excel.Workbook
    Dim FeuilleExcel As  Microsoft.Office.Interop.excel.Worksheet 
    Dim Ligne As Range as  Microsoft.Office.Interop.excel.worksheet.range
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Script pour supprimer ligne dans Excel
    Par bishope dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/10/2016, 12h59
  2. Supprimer lignes dans fichier texte
    Par dr_octopus74 dans le forum VBScript
    Réponses: 1
    Dernier message: 20/02/2007, 17h54
  3. Insérer une ligne dans Excel
    Par Mihalis dans le forum Delphi
    Réponses: 3
    Dernier message: 30/01/2007, 16h25
  4. [C#][Débutant] 4 questions pour supprimer ligne dans datagriview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/05/2006, 23h42
  5. Réponses: 2
    Dernier message: 07/12/2005, 16h26

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