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 :

Sélectionner l'union de deux plages spécifiées


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
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Sélectionner l'union de deux plages spécifiées
    Bonjour,

    je voudrais sélectionner l'union de deux plages de cellules spécifiées. Mon code est le suivant :

    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
    Sub SelectionPlages()
    '
    ' SelectionPlages Macro
    '
     
    Sheets("Ma Feuille").Activate
     
    Test1 = ActiveSheet.Range("C2:D3").Select
     
    Test2 = ActiveSheet.Range("C5:D5").Select
     
    Set y = Application.Union(Range("Test1"), Range("Test2")).Select
     
    '
    End Sub
    J'obtiens l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "la méthode range de l'objet global a échoué"

    Pourriez-vous m'aider à résoudre ce problème, svp?
    Merci d'avance,
    Arsène

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    je crois que le problème vient du .select que vous avez ajouté sur chaque ligne
    il suffit de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set y = Application.Union(Range("C2:D3"), Range("C5:D5"))
    y.Interior.Color = 65535

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    1 - Select est une méthode, qui , la plupart du temps, dessert le code plus qu'il ne sert.
    Et l'on ne peut affecter une méthode à une variable.
    2 - On peut affecter une variable à un objet (ici Range). Pour ce faire, il faut faire précéder cette affectation par l'instruction Set
    3 - En fin de code, il est opportun de libérer ces variables par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set lavariable = Nothing
    4 - La déclaration de variable dot être une règle.
    Pour la rendre obligatoire
    Menu du VBE Outils \ Options \ Editeur: rendre la déclaration des variables obligatoire
    4 - Autre règle. Toujours rattacher les objets Range à leur feuille de calcul Parent (par un ".")

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Merci beaucoup,

    j'ai suivi toutes vos indications et j'ai toujours le même bug.


    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
    18
    19
    Sub SelectionPlages()
    '
    ' SelectionPlages Macro'
     
    Dim Test1 As Range, Test2 As Range, y As Range
     
    Sheets("Mapage").Activate
     
    Set Test1 = ActiveSheet.Range("C2:D2")
     
    Set Test2 = ActiveSheet.Range("C5:D5")
     
    Set y = Application.Union(Range("Test1"), Range("Test2"))
     
    y.Select
     
    Set lavariable = Nothing
     
    End Sub

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    ton erreur est tres simple et tous les autres t'on suivis
    tu confond un string avec un object range
    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
    18
    19
    Sub SelectionPlages()
    '
    ' SelectionPlages Macro'
     
    Dim Test1 As Range, Test2 As Range, y As Range
     
    Sheets("Mapage").Activate
     
    Set Test1 = ActiveSheet.Range("C2:D2")
     
    Set Test2 = ActiveSheet.Range("C5:D5")
     
    'Set y = Application.Union(Range("Test1"), Range("Test2"))
     Set y = Application.Union(Test1, Test2)
    y.Select
     
    Set lavariable = Nothing
     
    End Sub
    quand tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Test1 = ActiveSheet.Range("C2:D2")
    test1 est un object range alors
    te declenche une erreur forcement

    carest une erreur car les arguments de range("..") doivent etre l'adress de la range et pas l'object lui meme
    Pigé!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    tous les autres t'on suivis

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SelectionPlages()
       Dim Test1 As Range, Test2 As Range, y As Range
     
       Sheets("Ma Feuille").Activate
     
       Set Test1 = Range("C2:D3")
       Set Test2 = Range("C5:D5")
       Set y = Application.Union(Test1, Test2)
       y.Select
     
    End Sub
    Mais si ton but est seulement de sélectionner la plage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub SelectionPlages()
       Sheets("Ma Feuille").Activate
       Application.Union(Range("C2:D3"), Range("C5:D5")).Select
    End Sub

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

Discussions similaires

  1. [VBA Word] Sélectionner du texte entre deux signets
    Par sat478 dans le forum VBA Word
    Réponses: 1
    Dernier message: 29/06/2006, 12h36
  2. [debutant] intersection de deux plages horaires
    Par absolut75 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 24/05/2006, 13h03
  3. UNION de deux SELECT avec nombre d'arguments différents
    Par orus8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 14h32
  4. [Débutant] Union de deux tables
    Par nyarla01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/03/2004, 10h40
  5. Sélectionner un même enregistrement deux fois...
    Par Manu0086 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 02/02/2004, 13h09

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