Tri tableau : erreur 1004 VBA EXCEL
aym78710
-
aym78710 -
aym78710 -
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
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
A voir également:
- Tri tableau : erreur 1004 VBA EXCEL
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Logiciel tri photo - Guide
1 réponse
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)
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)
Mon tableau va de la colone B à la colonne G mais je veux que le tri se fasse sur la colonne G, la où se trouvent les dates.
Dans la collone B c'est les références des commandes qui commencent par "209", ma boucle for me permet donc de sélectionner tout la plage de commandes dont le début de référence est 209.
Je sais pas si je suis très clair! :-s
Mais le pb réside dans la ligne en gras de mon programme je sais pas pourquoi!
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????
Par
Le reste est inchangé.
;o)
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!