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 :

ADODB - Range.Delete dans une boucle de RecordSet désynchronise le RecordSet [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    Par défaut
    Pierre,
    Ta solution est très intéressante mais déjà d'un niveau confirmé++

    En SQL on aurait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM monOnglet 
    WHERE True
    AND Compte = 'Toto'
    AND  maDate >= #5/12/2018# AND maDate <= #14/07/2019#
    Pour modulo 400 ne me rappelle plus comment implémenter ça en SQL

    Sinon ne vois pas le problème d'ajouter une librairie...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Oui, c'est d'un niveau "confirmé" Excel, mais plus sur les formules que sur le VBA qui lui, ne change qu'au niveau de la ligne affectant la formule à la variable, le reste du code restant identique et simple à lire et à comprendre pour un "excellien" non programmeur (selon mes critères de simplicité qui ne sont probablement pas les tiens).

    L'intérêt de nos deux démarches est de montrer deux façons différentes d'aborder une problématique donnée, selon les affinités que l'on a avec Excel et/ou la vraie programmation

    Ce n'est pas un problème en soi d'ajouter une bibliothèque, mais cela demande d'aborder des notions ADODB étrangères à l'utilisateur Excel qui n'est pas forcément orienté programmeur et donc pas forcément à l'aise avec les notions de Recordset, connection, sql... La formule Excel est "complexe" mais reste une formule Excel (un EQUIV matriciel) qui devrait être maîtrisée par tout utilisateur professionnel d'Excel. C'est en tout cas une techno que j'aborde dans les formations que je donne sur la façon de créer des formules dans Excel, tellement les matricielles dopent la puissance de l'outil.

    Merci pour l'échange, en tout cas
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    Par défaut
    Merci à toi aussi Pierre pour cet échange qui effectivement permet de monter deux approches différentes et faire profiter la communauté de ton expertise

    ICI ou ICI pour des exemples de la puissance du SQL pour rapprocher des données, exercice souvent demandé dans le monde professionnel.
    Et SQL est le langage spécialisé pour ce type de demande, passer par du excel natif c'est vouloir réinventer le SQL mais en moins bien

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ok pour les liens. Pour rapprocher des données, on a aussi, depuis 2010, Power Query, qui permet des jointures "graphiques", un peu comme dans le QBE d'Access, et qui permet une préparations des données pour la consolidation, mais aussi le splittage de données, ainsi que la préparation des données pour une analyse par TCD... Les possibilités sont donc diverses, mais je privilégie nettement Power Query pour rapprocher des données par rapport à du VBA, qui plus est intégrant du SQL. Encore aujourd'hui, j'ai montré en formation les possibilités de consolidation et de traitement de Power Query qui ont tout simplement rendu inutile le code VBA utilisé auparavant pour la consolidation, la préparation, la réorganisation et le renommage de colonnes, tout se faisant dans Power Query via l'interface graphique.

    Il faut noter toutefois que Power Query ne permet pas de travailler sur la source (pour modifier, ajouter ou supprimer des données) car il n'intervient qu'en lecture sur les tables sources. Dans ton cas, il y aurait donc du VBA pour supprimer les données. Mais on pourrait imaginer une restitution des données après suppression des lignes à supprimer, le code VBA s'occupant uniquement du transfert de la requête résultante nettoyée dans le tableau source. Il y a là du potentiel à exploiter, à mon avis, et probablement de nouvelles habitudes à prendre en termes de traitement de données sur des tables Excel

    Les technos évoluent et les outils embarqués par Excel pour l'analyse des données réduisent, voire rendent inutile, le code vba, ou le cantonnent, en gros, à des redirections de requêtes
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    Par défaut
    De mon point de vue, Excel est toxique pour le monde professionnel car il supplante le S.I. en alimentant de façon exponentielle le shadow IT qui est une véritable bombe à retardement pour les boites à plus d'un titre.
    • Pas de support par la DSI donc non pérenne car tient généralement à la grâce de la bonne volonté de non développeurs dont ce n'est pas le boulot
    • Développements non documentés et généralement abandon de l'outil à la disparition de la personne origine du développement
    • Dispense de toute normalisation de la données donc calculs généralement faux et générant des traitements qui se complexifient jusqu'à arriver à une impasse
    • Disparition de la source maîtresse de la données
    • Resaisies multiples de la données donc diffusion de l'erreur initiale avec risque d'erreurs supplémentaires sans parler du temps perdu

    J'arrête là mon réquisitoire à charge

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    C'est pour cela que moi et d'autres (78Chris par exemple) tentons de placer Power Query partout où nous pouvons le mettre, car cet outil aide à normaliser les données en vue de leur analyse.

    Prochainement, les forums Excel seront étendus à un nouveau forum qui traitera exclusivement des aspects POWER (Power Query, Power Pivot, Power Map, Power View, et pourquoi pas Power BI) pour encourager les membres à utiliser ces nouveaux outils qui, je le rappelle et hormis Power BI, sont natifs dans Excel 2016 et suivants (365 et 2019), mais disponibles depuis XL 2010.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    Par défaut
    Super initiative. Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [PHP 5.3] Requete Delete dans une boucle
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2013, 17h22
  2. VAS fragmentée, new/delete dans une boucle
    Par kaiser92 dans le forum C++
    Réponses: 13
    Dernier message: 15/12/2009, 15h08
  3. Dans une boucle, delete sans next
    Par Just-Soft dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/11/2008, 10h31
  4. Range.Offset(1) dans une boucle qui ne fonctionne pas
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2008, 12h58
  5. [Tableaux] DELETE dans une boucle
    Par mikedimoi dans le forum Langage
    Réponses: 5
    Dernier message: 15/01/2006, 19h16

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