Fonction trier et erreur 1004
Résolu/Fermé
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
-
24 avril 2009 à 10:26
Utilisateur anonyme - 27 avril 2009 à 15:17
Utilisateur anonyme - 27 avril 2009 à 15:17
A voir également:
- Erreur 1004 vba
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1004 - Erreur définie par l'application ou par l'objet ✓ - Forum VB / VBA
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
12 réponses
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
24 avril 2009 à 10:32
24 avril 2009 à 10:32
Bonjour,
je viens de lancer ta fonction sur un classeur Excel quelconque contenant des valeurs dans la colonne B, et je n'ai pas eu de problème.
Quel est exactement le message d'erreur affiché ?
je viens de lancer ta fonction sur un classeur Excel quelconque contenant des valeurs dans la colonne B, et je n'ai pas eu de problème.
Quel est exactement le message d'erreur affiché ?
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
24 avril 2009 à 10:38
24 avril 2009 à 10:38
Ayant généré cette macro sur un classeur vierge, je n'ais pas eu de problème non plus :s
Le message exact étant
"Erreur d'exécution 1004
Erreur définie par l'application ou par l'objet"
Le message exact étant
"Erreur d'exécution 1004
Erreur définie par l'application ou par l'objet"
Utilisateur anonyme
24 avril 2009 à 13:21
24 avril 2009 à 13:21
Bonjour,
Si la fonction est dans un module standard, il faut lui indiquer sur quelle feuille opérer.
L'erreur 1004 est un erreur de débordement d'adressage d'objet.
Or la ligne [ Range("B1:C8000").Select ] ne spécifie pas la feuille a tester !
Essayer comme suit :
ou
en espérant que j'ai vu juste, mais soyez conscient que je puis me tromper, je ne
vois pas votre classeur !!!
Lupin
Si la fonction est dans un module standard, il faut lui indiquer sur quelle feuille opérer.
L'erreur 1004 est un erreur de débordement d'adressage d'objet.
Or la ligne [ Range("B1:C8000").Select ] ne spécifie pas la feuille a tester !
Essayer comme suit :
Sub TrierFourniture() With Sheets("Feuil1") .Range("B1:C8000").Select Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With End Sub ' '
ou
Sub TrierFourniture(ByVal NomFeuille As String) With Sheets(NomFeuille) .Range("B1:C8000").Select Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With End Sub '
en espérant que j'ai vu juste, mais soyez conscient que je puis me tromper, je ne
vois pas votre classeur !!!
Lupin
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
24 avril 2009 à 13:47
24 avril 2009 à 13:47
Le souci venait de la, merci Lupin :)
Par contre il me tri tout sauf la première ligne, que dois je modifier dans le code afin de prendre en compte la première ligne ?
Par contre il me tri tout sauf la première ligne, que dois je modifier dans le code afin de prendre en compte la première ligne ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
24 avril 2009 à 14:07
24 avril 2009 à 14:07
re:
Chez moi, il trie correctement incluant la première ligne, le seul paramètre manquant au tri
est le DataOption !
Le paramètre [ Header:=xlGuess ] est bien affecté par rapport à un tri contenant
une entête [ Header:=xlYes ].
Lupin
Chez moi, il trie correctement incluant la première ligne, le seul paramètre manquant au tri
est le DataOption !
With Sheets("Feuil1") .Range("B1:C8000").Select Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With
Le paramètre [ Header:=xlGuess ] est bien affecté par rapport à un tri contenant
une entête [ Header:=xlYes ].
Lupin
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
24 avril 2009 à 14:51
24 avril 2009 à 14:51
Sub TrierFourniture() With Sheets("Fournitures") Range("A1:F8000").Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub
J'ais rajouté le dataoption, et l'erreur 1004 a refait son apparition ^^'
Utilisateur anonyme
24 avril 2009 à 14:56
24 avril 2009 à 14:56
re:
Avec l'utilisation du mot clé [ With ], le mot clé [ Range ] doit être précédé d'un point [ . ]
Lupin
Sub TrierFourniture() With Sheets("Fournitures") Range("A1:F8000").Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub
Avec l'utilisation du mot clé [ With ], le mot clé [ Range ] doit être précédé d'un point [ . ]
Sub TrierFourniture() With Sheets("Fournitures") .Range("A1:F8000").Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub
Lupin
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
24 avril 2009 à 15:02
24 avril 2009 à 15:02
Ok, en faisant le mode Pas à Pas l'erreur 1004 apparait plus tard dans le code ( au End With pour être précis )
Il y aurait il une autre erreur de syntaxe ?
Il y aurait il une autre erreur de syntaxe ?
Utilisateur anonyme
24 avril 2009 à 21:18
24 avril 2009 à 21:18
re:
Pour moi, le code suivant fonctionne :
Toutefois, la même remarque peut s'appliquer sur la paramètre [ Key1 ]
Lupin
Pour moi, le code suivant fonctionne :
Option Explicit Sub TrierFourniture() With Sheets("Feuil1") .Range("B1:C8000").Select Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub '
Toutefois, la même remarque peut s'appliquer sur la paramètre [ Key1 ]
Option Explicit Sub TrierFourniture() With Sheets("Feuil1") .Range("B1:C8000").Select Selection.Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub '
Lupin
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
27 avril 2009 à 08:54
27 avril 2009 à 08:54
En fait j'ais le souci, le code est sur une feuille 2 mais je lance ce code via un boutton feuille1.
Il fonctionne lorsque je suis sur la feuille2, mais l'erreur survient quand je me place sur les autres feuilles :s
Il fonctionne lorsque je suis sur la feuille2, mais l'erreur survient quand je me place sur les autres feuilles :s
vash641
Messages postés
40
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 janvier 2010
27 avril 2009 à 11:21
27 avril 2009 à 11:21
J'ais réussi à m'en tirer avec un Sheets("feuilX").select et tout marche comme je le souhaite.
Problème résolu :)
Problème résolu :)
Utilisateur anonyme
27 avril 2009 à 15:17
27 avril 2009 à 15:17
re:
Tout s'explique, ça c'est l'information qui manquait et qui spécifie
des espaces de noms différents pour le code derrière une feuille.
Le code qui effectue le tri devrait être dans un Module et
non derrière une feuille.
Bonne continuité.
Lupin
Tout s'explique, ça c'est l'information qui manquait et qui spécifie
des espaces de noms différents pour le code derrière une feuille.
Le code qui effectue le tri devrait être dans un Module et
non derrière une feuille.
Bonne continuité.
Lupin