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 :

'Range' de l'objet '_global' a échoué pour un filtre avancé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut 'Range' de l'objet '_global' a échoué pour un filtre avancé
    Bonjour, je bosse actuellement sur une base de données. Ci-dessou, le code que j'ai tapé (je pense que que ce que j'essaie de faire est plus ou moins clair).
    Il y une erreur de syntaxe que je n'arrive pas à résoudre : 'Range' de l'objet '_global' a échoué à la ligne avec "AdcancedFilter"

    Si une âme charitable pouvait m'aiguiller... Je pense que j'ai un problème avec la définition de ma "ZoneBdd". N'es-il pas possible de le faire en utilisant un truc du genre 'Dim ZoneBdd As Range" puis ZoneBdd=Selection ou qqch comme çà ?


    Merci d'avance pour le coup de main.

    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
     
    'Définition de "ZoneBdd"
        Sheets("TabTot").Select
        Range("A3").Select
        ActiveCell.End(xlDown).Select   'se place à la première ligne remplie
        ActiveCell.CurrentRegion.Select
        ActiveWorkbook.Names.Add Name:="ZoneBdd", RefersTo:=Selection.Address
     
    'Sexe
        Sheets("TabInterméd").Select
        If Range("C46").Value = VRAI Then
        'Définition du critère
            Sheets("TabTot").Range("A3").Formula = "=TabInterméd!D46.Value"
        'Application du filtre
            Range("A5").Select
            Range("ZoneBdd").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Criteria")
        End If

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    T'a essayé avec un enregistreur de macro pour voir ce que ça te donnait ?

    Sinon, oui effectivement tu peux définir une Range de cette manière, mais je ne pense pas pouvoir t'aider sur ce point la, car je ne sais pas trop manipuler les noms de plages de cellules

    Mais estu vraiment obligé de la nommer ? tu peux pas utiliser la plage relative en elle meme ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    essaye voir de changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Names.Add Name:="ZoneBdd", RefersTo:=Selection.Address
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Name = "ZoneBdd"
    sachant qu'un range peut être nommé de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:B6").Name = "MonRange"
    on verra bien si ca aide, mais bon, ... en tout cas j'espère

  4. #4
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut
    Merci pour votre aide !!

    POur une raison que je ne comprends pas, selection.name ZoneBdd ne fonctionne pas ici. Mais effectivement, c'est ce que j'avais essayé en premier.

    Du coup, j'ai pris une grande plage (jusqu'à U2000 je crois). cette solution provisoire fonctionne, mais comme la Base doit devenir assez importante...

    En fait ce qui m'intéresserait, ce serait de pouvoir définir une plage comme quand on le fait avec un nombre (Dim... As...), mais là encore, ma syntaxe est trop approximative.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour
    pour un objet range tu doit d abord le declarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dim maplage as range
    puis pointer vers l objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set maplage = sheets(1).range("a1:a1000")

Discussions similaires

  1. [XL-2000] Erreur 'Range' de l'objet '_global' a échoué apres une centaine d'itérations
    Par mollus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2011, 08h26
  2. Réponses: 6
    Dernier message: 08/01/2009, 11h06
  3. Erreur 1004: La méthode "Range" de l'objet "_global" a échoué
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 18/09/2008, 23h05
  4. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 20h46
  5. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 16h00

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