Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2011, 19h22   #1
Membre expérimenté
 
Homme René LE CORNEC
Assistant aux utilisateurs
Inscription : septembre 2007
Messages : 1 114
Détails du profil
Informations personnelles :
Nom : Homme René LE CORNEC
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2007
Messages : 1 114
Points : 513
Points : 513
Par défaut Message d'erreur dans un code

Bonjour à tous,

J'ai mis en place ce code qui est censé me trier les notes de mon tableau de la plus grande à la plus petite.

Mais voilà, j'ai changé d'ordinateur, je suis sur la version Excel 2003 et un message d'erreur apparaît sur la ligne en rouge de mon code. J'ai la même version d'Excel sur les 2 postes.

Le message d'erreur est : "Erreur d'exécution 438 - Propriétée ou méthode non gérée par cet objet".

Pouvez m'éclairer à ce sujet et m'aider à trouver la solution s'il vous plait ?

Je vous en remercie par avance

Code :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastLig As Long, NewLig As Long, Nb As Long
If Target.Address = "$A$2" Then
   Union(Range("A4:H" & Rows.Count), Range("J4:K" & Rows.Count), Range("M4:M" & Rows.Count)).ClearContents
   If Target <> "" Then
      With Sheets("Général")
        .Range("A3").AutoFilter
         LastLig = .Cells(Rows.Count, "G").End(xlUp).Row
         If LastLig < 4 Then
         If .Range("A3").AutoFilter = True Then .Range("A3").AutoFilter
         Exit Sub
         End If
         With .Range("A3:N" & LastLig)
            .AutoFilter
            .AutoFilter field:=7, Criteria1:=Target
         End With
         Nb = .Range("A3:A" & LastLig).SpecialCells(xlCellTypeVisible).Count - 1
         If Nb > 0 Then
            Application.EnableEvents = False
            .Range("A4:F" & LastLig).SpecialCells(xlCellTypeVisible).Copy Range("A4")
            .Range("I4:J" & LastLig).SpecialCells(xlCellTypeVisible).Copy Range("G4")
            .Range("L4:M" & LastLig).SpecialCells(xlCellTypeVisible).Copy
            Range("J4").PasteSpecial xlPasteValues
            Application.CutCopyMode = False
            Application.EnableEvents = True
         End If
         .Range("A3").AutoFilter
        Range("A3").Select
      End With
      Range("A3").Select
    ActiveWorkbook.Worksheets("J").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("J").Sort.SortFields.Add Key:=Range("K4:K299"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("J").Sort.SortFields.Add Key:=Range("B4:B299"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("J").Sort
        .SetRange Range("A3:L500")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A3").Select
   End If
End If
AutoFitSheet
End Sub
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
NEC14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 22h00   #2
Membre expérimenté
 
Homme René LE CORNEC
Assistant aux utilisateurs
Inscription : septembre 2007
Messages : 1 114
Détails du profil
Informations personnelles :
Nom : Homme René LE CORNEC
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2007
Messages : 1 114
Points : 513
Points : 513
Bonsoir,

Comment résoudre ce problème ? Par quoi dois-je remplacer cette partie de code ?

Merci par avance
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
NEC14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 09h51   #3
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 773
Points : 2 093
Points : 2 093
Bonjour,

Je crois que l'objet "SortFields" n'existe pas en Excel 2003 mais je dis bien "je crois" car je n'ai pas cette version pour pouvoir contrôler.

Hervé.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 17h07   #4
Membre expérimenté
 
Homme René LE CORNEC
Assistant aux utilisateurs
Inscription : septembre 2007
Messages : 1 114
Détails du profil
Informations personnelles :
Nom : Homme René LE CORNEC
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2007
Messages : 1 114
Points : 513
Points : 513
Bonjour,

Après contrôle, ce code a été fait sous Excel 2007 c'est pour cela que je ne peux pas le transposer à Excel 2003.

Que dois-je mettre pour que cela fonctionne en Excel 2003? Car cette application doit être mise sur la version Excel 2003 je n'ai pas la possiblité de changer la version.

Merci par avance pour votre aide

Citation:
Envoyé par Theze Voir le message
Bonjour,

Je crois que l'objet "SortFields" n'existe pas en Excel 2003 mais je dis bien "je crois" car je n'ai pas cette version pour pouvoir contrôler.

Hervé.
Oui tu as raison, lorsque j'appuie sur F1, cette méthode n'est pas connue.
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
NEC14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 09h31   #5
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 255
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 255
Points : 2 979
Points : 2 979
Salut René,
via l'enregistreur de macro tu trouveras aisément la réponse.

Bonne journée.
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 18h18   #6
Membre expérimenté
 
Homme René LE CORNEC
Assistant aux utilisateurs
Inscription : septembre 2007
Messages : 1 114
Détails du profil
Informations personnelles :
Nom : Homme René LE CORNEC
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2007
Messages : 1 114
Points : 513
Points : 513
Bonjour,

Il y a plusieurs codes qui ne fonctionnent pas. Alors j'ai réussi à me procurer une version Excel 2007. Je vais remplacer la version 2003 par celle-ci et je pense ne plus rencontrer de soucis.

Je vous tiens au courant de la suite

Merci pour vos réponses
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
NEC14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web