Bonjour.
J'ai développé une application sous Excel 97 qui contient l'instruction
'AdvencedFilter'.
Je suis passé à la version Excel 2003 et cette instruction ne fonctionne plus.
Le message d'erreur est le suivant : La méthode 'Range' de l'objet '_Global'
a échoué.
Connaissez-vous la cause de ce problème.
Merci pour votre aide .
Private Sub cbEtablissement_Click()
'Filtrer les listes de référenciels d'après le n° FINESS
Dim rgExtraction As Range
Dim rgTypeRéf As Range
Dim rgR As Range
Dim rgNumFiness As Range
Dim NumDécis As Long
Set rgNumFiness = Range("Bases!Finess_Sélectionnés")
'Vider les liste des décisions
Me.cbRecommandation.Clear
Me.cbRéserveMaj.Clear
Me.cbRéserve.Clear
'Vider la liste des référenciels
For i = 0 To Me.lbListesRef.ListCount - 1
Me.lbListesRef.Selected(i) = False
Next i
'N° Finess
Finess = rgNumFiness(frmDécisionsModif.cbEtablissement.ListIndex + 1,
1).Value
'Copier le n° finess dans la zone de critères
Worksheets!Bases.Activate
Range("Bases!LigneCritères").Clear
Range("Bases!NumFinessC").Value = Finess
Range("Bases!NumDécisC").Value = "<>-1"
'Extraire les données corespondantes
Range("Bases!Base_de_données").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("Bases!Critères"),
CopyToRange:=Range("Bases!Extraction")
For Each rgR In Range("Bases!TypeRéf")
If rgR.Offset(0, -1).Value <> "" Then
If rgR.Offset(0, -1).Value <> NumDécis Then
NumDécis = rgR.Offset(0, -1).Value
If rgR.Value = "Recom" Then
Me.cbRecommandation.AddItem NumDécis
ElseIf rgR.Value = "Res" Then
Me.cbRéserve.AddItem NumDécis
ElseIf rgR.Value = "ResMaj" Then
Me.cbRéserveMaj.AddItem NumDécis
End If
End If
End If
Next rgR
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Il ne s'agit pas d'un problème avec la méthode AdvancedFilter, mais de toute évidence (le message d'erreur l'indique !), d'un problème sur un objet Range. As-tu vérifié la validité de l'ensemble des noms qui sont définis et utilisés dans ton code ? Et notamment ceux dans la ligne utilisant AdvancedFilter : Range("Bases!Base_de_données") Range("Bases!Critères") Range("Bases!Extraction")
Cordialement Pascal
"Messager" a écrit dans le message de news:
Bonjour. J'ai développé une application sous Excel 97 qui contient l'instruction 'AdvencedFilter'. Je suis passé à la version Excel 2003 et cette instruction ne fonctionne plus. Le message d'erreur est le suivant : La méthode 'Range' de l'objet '_Global' a échoué. Connaissez-vous la cause de ce problème. Merci pour votre aide .
Private Sub cbEtablissement_Click() 'Filtrer les listes de référenciels d'après le n° FINESS Dim rgExtraction As Range Dim rgTypeRéf As Range Dim rgR As Range Dim rgNumFiness As Range Dim NumDécis As Long
Set rgNumFiness = Range("Bases!Finess_Sélectionnés")
'Vider les liste des décisions Me.cbRecommandation.Clear Me.cbRéserveMaj.Clear Me.cbRéserve.Clear 'Vider la liste des référenciels For i = 0 To Me.lbListesRef.ListCount - 1 Me.lbListesRef.Selected(i) = False Next i 'N° Finess Finess = rgNumFiness(frmDécisionsModif.cbEtablissement.ListIndex + 1, 1).Value 'Copier le n° finess dans la zone de critères Worksheets!Bases.Activate Range("Bases!LigneCritères").Clear Range("Bases!NumFinessC").Value = Finess Range("Bases!NumDécisC").Value = "<>-1" 'Extraire les données corespondantes Range("Bases!Base_de_données").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("Bases!Critères"), CopyToRange:=Range("Bases!Extraction") For Each rgR In Range("Bases!TypeRéf") If rgR.Offset(0, -1).Value <> "" Then If rgR.Offset(0, -1).Value <> NumDécis Then NumDécis = rgR.Offset(0, -1).Value If rgR.Value = "Recom" Then Me.cbRecommandation.AddItem NumDécis ElseIf rgR.Value = "Res" Then Me.cbRéserve.AddItem NumDécis ElseIf rgR.Value = "ResMaj" Then Me.cbRéserveMaj.AddItem NumDécis End If End If End If Next rgR
End Sub
Bonjour
Il ne s'agit pas d'un problème avec la méthode AdvancedFilter, mais de toute
évidence (le message d'erreur l'indique !), d'un problème sur un objet
Range.
As-tu vérifié la validité de l'ensemble des noms qui sont définis et
utilisés dans ton code ?
Et notamment ceux dans la ligne utilisant AdvancedFilter :
Range("Bases!Base_de_données")
Range("Bases!Critères")
Range("Bases!Extraction")
Cordialement
Pascal
"Messager" <Messager@discussions.microsoft.com> a écrit dans le message de
news: 2DE28737-E7E9-4039-A3E0-2B2338484CFB@microsoft.com...
Bonjour.
J'ai développé une application sous Excel 97 qui contient l'instruction
'AdvencedFilter'.
Je suis passé à la version Excel 2003 et cette instruction ne fonctionne
plus.
Le message d'erreur est le suivant : La méthode 'Range' de l'objet
'_Global'
a échoué.
Connaissez-vous la cause de ce problème.
Merci pour votre aide .
Private Sub cbEtablissement_Click()
'Filtrer les listes de référenciels d'après le n° FINESS
Dim rgExtraction As Range
Dim rgTypeRéf As Range
Dim rgR As Range
Dim rgNumFiness As Range
Dim NumDécis As Long
Set rgNumFiness = Range("Bases!Finess_Sélectionnés")
'Vider les liste des décisions
Me.cbRecommandation.Clear
Me.cbRéserveMaj.Clear
Me.cbRéserve.Clear
'Vider la liste des référenciels
For i = 0 To Me.lbListesRef.ListCount - 1
Me.lbListesRef.Selected(i) = False
Next i
'N° Finess
Finess = rgNumFiness(frmDécisionsModif.cbEtablissement.ListIndex + 1,
1).Value
'Copier le n° finess dans la zone de critères
Worksheets!Bases.Activate
Range("Bases!LigneCritères").Clear
Range("Bases!NumFinessC").Value = Finess
Range("Bases!NumDécisC").Value = "<>-1"
'Extraire les données corespondantes
Range("Bases!Base_de_données").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("Bases!Critères"),
CopyToRange:=Range("Bases!Extraction")
For Each rgR In Range("Bases!TypeRéf")
If rgR.Offset(0, -1).Value <> "" Then
If rgR.Offset(0, -1).Value <> NumDécis Then
NumDécis = rgR.Offset(0, -1).Value
If rgR.Value = "Recom" Then
Me.cbRecommandation.AddItem NumDécis
ElseIf rgR.Value = "Res" Then
Me.cbRéserve.AddItem NumDécis
ElseIf rgR.Value = "ResMaj" Then
Me.cbRéserveMaj.AddItem NumDécis
End If
End If
End If
Next rgR
Bonjour Il ne s'agit pas d'un problème avec la méthode AdvancedFilter, mais de toute évidence (le message d'erreur l'indique !), d'un problème sur un objet Range. As-tu vérifié la validité de l'ensemble des noms qui sont définis et utilisés dans ton code ? Et notamment ceux dans la ligne utilisant AdvancedFilter : Range("Bases!Base_de_données") Range("Bases!Critères") Range("Bases!Extraction")
Cordialement Pascal
"Messager" a écrit dans le message de news:
Bonjour. J'ai développé une application sous Excel 97 qui contient l'instruction 'AdvencedFilter'. Je suis passé à la version Excel 2003 et cette instruction ne fonctionne plus. Le message d'erreur est le suivant : La méthode 'Range' de l'objet '_Global' a échoué. Connaissez-vous la cause de ce problème. Merci pour votre aide .
Private Sub cbEtablissement_Click() 'Filtrer les listes de référenciels d'après le n° FINESS Dim rgExtraction As Range Dim rgTypeRéf As Range Dim rgR As Range Dim rgNumFiness As Range Dim NumDécis As Long
Set rgNumFiness = Range("Bases!Finess_Sélectionnés")
'Vider les liste des décisions Me.cbRecommandation.Clear Me.cbRéserveMaj.Clear Me.cbRéserve.Clear 'Vider la liste des référenciels For i = 0 To Me.lbListesRef.ListCount - 1 Me.lbListesRef.Selected(i) = False Next i 'N° Finess Finess = rgNumFiness(frmDécisionsModif.cbEtablissement.ListIndex + 1, 1).Value 'Copier le n° finess dans la zone de critères Worksheets!Bases.Activate Range("Bases!LigneCritères").Clear Range("Bases!NumFinessC").Value = Finess Range("Bases!NumDécisC").Value = "<>-1" 'Extraire les données corespondantes Range("Bases!Base_de_données").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("Bases!Critères"), CopyToRange:=Range("Bases!Extraction") For Each rgR In Range("Bases!TypeRéf") If rgR.Offset(0, -1).Value <> "" Then If rgR.Offset(0, -1).Value <> NumDécis Then NumDécis = rgR.Offset(0, -1).Value If rgR.Value = "Recom" Then Me.cbRecommandation.AddItem NumDécis ElseIf rgR.Value = "Res" Then Me.cbRéserve.AddItem NumDécis ElseIf rgR.Value = "ResMaj" Then Me.cbRéserveMaj.AddItem NumDécis End If End If End If Next rgR