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 avec range [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    planificateur
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : planificateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut Problème avec range
    Je souhaite trier des données mais ma plage peut varier. J'ai donc des conditions dans ma macro pour définir la plage de données à trier.

    J'utilise la fonction sort que je maitrise lorsque la plage est connue mais lorsque j'introduis des variables pour définir la plage, j'ai un message d'erreur.

    Le code que j'ai tapé :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim MaPlage As Range
    Dim MaCellule As Range
    Dim Ligne As Integer
    Dim Colonne As Integer
     
    Ligne = 2
    Colonne = 2
     
    Set MaPlage = Range(Cells(Ligne, Colonne), Cells(Ligne + 9, Colonne + 1))
    Set MaCellule = ActiveSheet.Cells(Ligne, Colonne + 1)
     
    Worksheets("Classements").MaPlage.Sort Key1:=MaCellule, Order1:=xlAscending
    J'ai le message d'erreur 438 : Propriété ou méthode non géré par cet objet.

    Si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Classements").Range("B2:C11").Sort Key1:=MaCellule, Order1:=xlAscending

    la macro s'exécute normalement donc le problème vient de MaPlage et pas de MaCellule

    Si je fait :

    j'ai bien la plage souhaitée qui est sélectionnée donc MaPlage a l'air d'être bien initialisée.

    Merci pour votre aide car j'ai l'impression d'avoir tout essayé.

  2. #2
    Invité
    Invité(e)

  3. #3
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Citation Envoyé par Grangibs Voir le message
    ...

    j'ai bien la plage souhaitée qui est sélectionnée donc MaPlage a l'air d'être bien initialisée...
    bonsoir,

    Je vous propose qques propositions :

    1) pour éviter les confusions , il est préférable de définir la feuille de travail (au cas où la feuille n'est pas active par ex...)

    2) vous avez défini une plage, utiliser le nom de cet objet pour en utiliser les méthodes ou propriétés, c'est la correction de rdurupt :
    maplage.sort...

    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
    20
    21
    22
    23
    24
    25
    Sub essai()
     
     
     
    Dim MaPlage As Range
    Dim MaCellule As Range
    Dim Ligne As Integer
    Dim Colonne As Integer
     
    'définir une feuille de travail
    Dim ws As Worksheet
     
    'créer une instance de feuille pour éviter les confusions
    Set ws = Worksheets("Classements")
    Ligne = 2
    Colonne = 2
     'range "B2:C11" c'est bon mais de quelle feuille?
     
    Set MaPlage = ws.Range(ws.Cells(Ligne, Colonne), ws.Cells(Ligne + 9, Colonne + 1))
    Set MaCellule = ws.Cells(Ligne, Colonne + 1) 'C2
     
    'c'est l'objet maplage qui est trié!!
    MaPlage.Sort Key1:=MaCellule, Order1:=xlAscending
     
    End Sub
    bonne continuation,

    geogeo70

  4. #4
    Candidat au Club
    Homme Profil pro
    planificateur
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : planificateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    Bonjour,

    Effectivement, en déclarant la feuille en même temps que je déclare MaPlage, je n'ai plus de soucis.

    Merci à tous ceux qui ont pris la peine de me répondre.

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

Discussions similaires

  1. Petit problème avec Range et Cells
    Par fdegrave dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2013, 18h08
  2. Problème avec Range.AdvancedFilter, méthode
    Par Sogestion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2012, 16h57
  3. [XL-2003] Problème avec Range
    Par andy38 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/06/2009, 23h10
  4. [XL-2003] problème avec range
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/04/2009, 13h29
  5. Problème avec Range.Formula
    Par zerti dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/07/2007, 17h25

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