VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Tri tableau : erreur 1004 VBA EXCEL

aym78710 - Dernière réponse le 7 mai 2010 à 14:29
Bonjour,
cela fait plusieurs jours que je tente de trier un tableau de commandes reçues selon la date de livraison. Cependant ce tableau n'est pas fixe et des commandes peuvent se rajouter, c'est pourquoi ma plage sélectionner dépend de variable.
Cependant, je ne comprends pas l'origine de l'erreur 1004 : la méthode activate de la classe range a échoué qui apparait sur la ligne en gras.
Merci de votre aide
Private Sub Worksheet_Change(ByVal Target As Range)
Dim D As Range, E As Range
Dim v As Integer
Set D = Feuil1.Range("B7")
Set E = Feuil1.Range("G7")
For v = 1 To 1000
If Left(D, 3) = "209" And Left(D.Offset(1, 0), 3) <> "210" And D.Offset(1, 0) <> "" Then
Set E = E.Offset(1, 0)
Set D = D.Offset(1, 0)
Else: Exit For
End If
Next
Set E = Feuil1.Range("G7")
Range("D:E").Select
Sheets("Atelier rech").Activate
Range("G7").Activate
Selection.Sort Key1:=Range("G7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Lire la suite 

Tri tableau : erreur 1004 VBA EXCEL »

6 réponses
Réponse
+0
moins plus
Bonjour,

C'est tout simplement parce qu'Excel se perd dans les Set ..., les Select et les Activate ... de la même manière qu'on s'y perd un peu dans la lecture de la macro ... ^^

Dans ta boucle For Next, tu testes toujours les mêmes cellules !!!

J'avoue, que pour moi, les Offset ne me parlent pas du tout.

Peux-tu préciser ce que tu cherches en précisant:
- Dans quelle feuille se trouve ce code
- Les colonnes où se trouve les données à tester et qui détermine la plage de ton tableau.
- Quel résultat veux-tu obtenir.

Merci

;o)
aym78710 - 7 mai 2010 à 13:19
Parfait. Un frand merci!

Juste une autre petite question. Tu sais comment je peux faire pour non plus trier de la colonne B à la colonne G mais de la colonne B à la colonne BO tout en triant mes commandes selon les dates qui se trouvent dans la colonne G????
Polux31- 7 mai 2010 à 13:45
Remplace la ligne:
Set E = Feuil1.Range("G7")

Par
Set E = Feuil1.Range("BO7")


Le reste est inchangé.

;o)
aym78710 - 7 mai 2010 à 14:29
Bah c'est ce que je me suis dit aussi, mais les valeurs qui sont entre les colonnes G et BO ne veulent pas suivre les données triées.
ex:
sur la ligne 1 jai une commande pour le 02/08/10 (avec les détails entre les colones B et G et le prix dans la colonne H
sur la ligne 2 jai une commande pour le 02/05/10 (avec les détails entre les colones B et G et le prix dans la colonne H

ma macro trie donc ces deux lignes en les inversant mais les prix ne veulent pas suivre les commandes!!!

Je vais continuer de chercher mais si tu vois le pb, tiens moi au courant! :-D
Et après promis je te laisse tranquil! Enfin je l'espère!
Ajouter un commentaire
Ce document intitulé « Tri tableau : erreur 1004 VBA EXCEL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?