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 28/11/2011, 12h07   #1
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 396
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 396
Points : 420
Points : 420
Par défaut Problème pour la méthode Autofilter

Bonjour,

Je suis confronté à un problème simple mais que je n'arrive pas à résoudre.
Je souhaite filtrer sur une colonne particulière mais je suis bloqué quelque soit la syntaxe. Avec le code ci-dessous :

Code :
.Cells(1, LCDTC1).AutoFilter Field = 1, Criteria1:="A vérifier"
J'ai le message suivant : La méthode Autofilter de la classe Range a échoué

En mettant :

Code :
.Range(.Cells(1, LCDTC1)).AutoFilter Field = 1, Criteria1:="A vérifier"
J'ai le fameux message : Application defined or object-defined error.

Savez-vous comment je peux corriger SVP ?

Merci d'avance !
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h43   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

Regardes si la valeur de LCDTC1 ne sort par des limites de ton tableau a filtrer
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h50   #3
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 396
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 396
Points : 420
Points : 420
Bonjour jfontaine,

Merci pour ta réponse. Malheureusement (ou heureusement) non, la valeur de LCDTC1 ne sort pas du tableau à filtrer, du moins il ne me semble pas.
Ci-dessous le code en entier. Au besoin, je peux te transmettre le fichier.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Sub Compare_data()
 
Dim LRDB1 As Long
Dim StartRange As Range, ColToInsert As Byte, LastColumn As Byte, ColGap As Byte, FirstRow As Integer, LastRow As Long
Dim LCDTC1 As Byte
 
Application.ScreenUpdating = False
 
'Concaténer les 7 dimensions analytiques en colonne A
 
    With Sheets("Data Base")
 
    LRDB1 = .Range("A" & .Rows.Count).End(xlUp).Row
 
    .Range("A1").EntireColumn.Insert
 
        With .Range("A2:A" & LRDB1)
            .Formula = "=CONCATENATE(RC[1],RC[2],RC[3],RC[4],RC[5],RC[6],RC[7])"
            .Value = .Value
        End With
 
    End With
 
'Rechercher la 1ère des 7 colonnes contenant les données de dimension analytique et définir la dernière colonne
 
    With Sheets("Data to check")
 
    Set StartRange = .Cells.Find("Resp*", LookIn:=xlValues)
    ColToInsert = StartRange.Column
    LastColumn = StartRange.End(xlToRight).Offset(0, 2).Column
    ColGap = LastColumn - ColToInsert
    FirstRow = StartRange.Row + 1
    LastRow = StartRange.End(xlDown).Row
 
'Insérer une clonne et conténer les 7 dimensions
 
    StartRange.EntireColumn.Insert
 
        With .Range(.Cells(FirstRow, ColToInsert), .Cells(LastRow, ColToInsert))
            .Formula = "=CONCATENATE(RC[1],RC[2],RC[3],RC[4],RC[5],RC[6],RC[7])"
            .Value = .Value
        End With
 
'déterminer via une RECHERCHEV si les dimensions sont existantes ou à vérifier
 
        With .Range(.Cells(FirstRow, LastColumn), .Cells(LastRow, LastColumn))
            .Formula = "=IF(ISERROR(VLOOKUP(RC[" & -ColGap & "],'Data Base'!C1,1,0)),""A vérifier"",""OK"")"
            .Value = .Value
        End With
 
'Supprimer ligne des concaténations et déterminer dernière colonne pour filtrer sur "A vérifier"
 
    StartRange.Offset(0, -1).EntireColumn.Delete
 
    LCDTC1 = .Cells(2, .Columns.Count).End(xlToLeft).Column
 
    .Cells(1, LCDTC1) = "Dimensions à vérifier"
 
    .Range(.Cells(1, LCDTC1), .Cells(LastRow, LDTC1)).AutoFilter Field = 1, Criteria1:="A vérifier"
 
    End With
 
End Sub
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h00   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
As tu essayé comme cela

Code :
.Cells(1,1).AutoFilter Field = 1, Criteria1:="A vérifier"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/11/2011, 14h08   #5
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 396
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 396
Points : 420
Points : 420
J'ai fait une erreur en tapant LDTC1 au lieu de LCDTC1... Avec ta technique maintenant ça fonctionne.
Merci jfontaine, bonne journée !
__________________
Cordialement,

Runsh
Runsh63 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 07h57.


 
 
 
 
Partenaires

Hébergement Web