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 :

Problème extraction base de données [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut Problème extraction base de données
    Bonsoir à tous,

    j'ai créé le code suivant qui réalise parfaitement une extraction des données souhaitées sous excel 2003. En revanche, l'extraction ne marche pas sous 2007 et 2010. (alors que le filtre élaboré, renseigné avec les données fournies par la macro marche bien.... mais manuellement).

    Maintenant que je suis sous 2010, je n'ai pas le choix, il faut que je trouve une solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set BaseDonneesVl = Range(Cells(1, 1), Cells(NbLignesVl, 7))
        Set criteresVl = Range(Cells(1, 10), Cells(2, 11))
        Set extractionVl = Range(Cells(1, 20), Cells(1, 26))
     
        Cells(2, 10).FormulaR1C1 = ">=" & BorneBasse
        Cells(2, 11).FormulaR1C1 = "<=" & BorneHaute
     
        BaseDonneesVl.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=criteresVl, CopyToRange:=extractionVl, Unique:=True
     
        NblignesVlExtraites = Application.WorksheetFunction.CountA(Columns(20))
    Je précise que BorneBasse et BorneHaute sont des dates.

    Si une âme charitable peut me sortir de cette ornière.

    Merci d'avance

  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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu ne dis pas et je ne vois pas de trace de ce que les variables BorneBasse et BorneHaute représentent mais j'imagine que ce sont des dates parce-que c'est le seul cas avec les points décimales que je connaisse qui fonctionne en 2003 (version française) et pas dans les versions supérieures quand les dates sont alimentées par un code VBA alors que si la date est tapée depuis la feuille Excel, il n'y a pas de problème.
    Voir discussion sur ce sujet et un tutoriel sur les filtres avancés ou élaborés
    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 éclairé
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 56
    Par défaut
    Bonjour,

    En fonction de la version, les dates ne sont pas formatées de la même façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub CommandButton1_Click()
      If Val(Application.Version) >= 12 Then
        [G2] = ">=" & Format(TextBox1, "mm/dd/yyyy")
        [H2] = "<=" & Format(TextBox2, "mm/dd/yyyy")
      Else
        [G2] = ">=" & TextBox1
        [H2] = "<=" & TextBox2
      End If
      [A1:E1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[G1:H2], CopyToRange:=[G6:K6]
    End Sub
    En pj, une extraction compatible sur toutes les versions

    Ceuzin
    Fichiers attachés Fichiers attachés

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Bonsoir et merci pour ton aide.

    J'ai inséré le code sur ma macro et j'aboutis au même résultat, la zone d'extraction reste vide. (et marche toujours en employant le filtre élaboré)

    Faut-il faire du copier-coller sur un nouveau module créé sur 2010 ?

    C'est ce que je vais tenter.

    Salut à tous, j'ai tout essayé pour aboutir au même résultat. L'extraction de VBA ne marche pas sous 2010 même en créant un nouveau fichier xlm et en réécrivant le code. En revanche la macro prépare bien le terrain car l'exécution manuelle du filtre élabore marche bien. J'avoue mon impuissance. Quelqu'un a t il déjà reussi ? Merci d'avance.

  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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Je ne comprends pas parce-que la proposition de Sophie est la même que celle que j'ai proposée il y a plusieurs mois sur ce forum (lien que j'ai déjà mis lors de ma réponse du 12/03/2013 à 23h17) et cela fonctionne parfaitement.
    Le problème vient du fait que depuis la version 2007, les dates et nombres décimaux ne fonctionne plus de la même manière dans la version française du logiciel.
    J'ai proposé à l'époque une astuce pour ne pas faire le test sur les dates avec une constante mais en faisant référence à une cellule.
    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 du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Merci pour ta réponse. Effectivement, je n'ai pas précisé que les bornes sont issues d'un userform en amont dont les valeurs des text box sont converties au format date avec la fonction Cdate et formatées "dd/mm/yyyy". Est-la que ça péche ? Merci d'avance

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

Discussions similaires

  1. [VB6]Débutant - Problèmes de base de données?
    Par steeves5 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/06/2006, 22h05
  2. Problème conexion base de données MSSql DBE
    Par kaouane dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/05/2006, 12h40
  3. Réponses: 3
    Dernier message: 27/04/2006, 15h21
  4. Problème accès base de données
    Par alainconnu dans le forum Outils
    Réponses: 3
    Dernier message: 27/04/2006, 09h31
  5. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41

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