Problème avec l'objet range
Résolu
Grangibs
Messages postés
3
Statut
Membre
-
Grangibs Messages postés 3 Statut Membre -
Grangibs Messages postés 3 Statut Membre -
Bonjour,
Je crée une macro pour trier un tableau.
Quand j'écris ça :
Pas de soucis, la macro s'exécute.
Par contre si j'écris ça :
J'ai un message d'erreur : Erreur d'exécution 1004, erreur définie par l'application ou par l'objet.
Merci de votre aide car je sèche sur cette erreur
EDIT : Ajout des balises de code
Je crée une macro pour trier un tableau.
Quand j'écris ça :
Worksheets("Classements Clubs").Range("B4:AB13").Sort Key1:=Range("C4"), order1:=xlDescending
Pas de soucis, la macro s'exécute.
Par contre si j'écris ça :
Dim MaPlage As Range Set MaPlage = Range("B4:AB13") Worksheets("Classements Clubs").Range(MaPlage).Sort Key1:=Range("C4"), order1:=xlDescending
J'ai un message d'erreur : Erreur d'exécution 1004, erreur définie par l'application ou par l'objet.
Merci de votre aide car je sèche sur cette erreur
EDIT : Ajout des balises de code
A voir également:
- Problème avec l'objet range
- Vente objet occasion entre particulier - Guide
- Out of range - Forum Ecran
- Trouver objet avec photo - Guide
- Ouvrez ce fichier avec un éditeur de texte simple (bloc-notes, textedit, gedit, etc.) pour y découvrir le nom d’un objet. ✓ - Forum Études / Formation High-Tech
- Objet interdit en cabine ryanair - Guide
4 réponses
Bonjour,
Tu mets une RANGE .. dans une RANGE .. normal qu'il n'aime pas....
donc soit tu modifies maplage en STRING
.... soit tu écris ça :
ou encore mieux...
Tu mets une RANGE .. dans une RANGE .. normal qu'il n'aime pas....
donc soit tu modifies maplage en STRING
Dim MaPlage As String Set MaPlage = "B4:AB13"
.... soit tu écris ça :
Worksheets("Classements Clubs").MaPlage.Sort Key1:=Range("C4"), order1:=xlDescending
ou encore mieux...
Dim MaFeuille as WorkSheet Dim MaPlage as Range set MaFeuille = Worksheets("Classements Clubs") set MaPlage = MaFeuille.Range("B4:AB13") MaPlage.Sort Key1:=Range("C4"), order1:=xlDescending
Merci de votre réponse rapide et merci également pour les conseils pour améliorer la programmation.
ça marche très bien pour une plage fixe.
Désolé d'abuser de votre gentillesse mais je n'arrive pas à faire la même chose dans le cas où j'ai une plage définie par des variables.
J'ai le message d'erreur 438 : Propriété ou méthode non géré par cet objet.
Si je fait :
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.
ça marche très bien pour une plage fixe.
Désolé d'abuser de votre gentillesse mais je n'arrive pas à faire la même chose dans le cas où j'ai une plage définie par des variables.
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 :
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 :
MaPlage.select
j'ai bien la plage souhaitée qui est sélectionnée donc MaPlage a l'air d'être bien initialisée.