Erreur 91
Résolu
damargail
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
nadbelle Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
nadbelle Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise VBA depuis peu à l'aide du "Développeur" intégré à Excel pour mettre en place un outil de suivi pour une association.
La formule suivante (extraction de la feuille "Journal", copie, tri et sous totaux fonctionne dans 2 autres feuilles excel mais bloque dans la feuille "S. Totaux" sur la ligne :
<gras>ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
accompagné de la mention : "erreur d'exécution "91" variable objet ou variable bloc With non définie"
Après avoir longuement consulté les indications et les recommandations des internautes de ce site, je me tourne vers vous pour me sortir de cette ornière. Car je n'arrive pas à faire identifier la plage à traiter par VBA.
Si l'un ou l'une d'entre vous veut bien m'éclairer, voire me dépanner, Merci d'avance.
Ci-après la macro rédigée par le "Développeur"
Sub Macrosoustotaux()
'
Range("A4:C220").Select
Selection.Rows.Ungroup
Selection.Rows.Ungroup
Sheets("Journal").Range("A2:R200").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A3:R3"), Unique:=False
Range("A3:R3").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Add Key:= _
Range("H3:H200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3:R200").Select
Selection.Subtotal GroupBy:=8, Function:=xlSum, TotalList:=Array(7, 10, 11, _
14, 15, 18), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
J'utilise VBA depuis peu à l'aide du "Développeur" intégré à Excel pour mettre en place un outil de suivi pour une association.
La formule suivante (extraction de la feuille "Journal", copie, tri et sous totaux fonctionne dans 2 autres feuilles excel mais bloque dans la feuille "S. Totaux" sur la ligne :
<gras>ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
accompagné de la mention : "erreur d'exécution "91" variable objet ou variable bloc With non définie"
Après avoir longuement consulté les indications et les recommandations des internautes de ce site, je me tourne vers vous pour me sortir de cette ornière. Car je n'arrive pas à faire identifier la plage à traiter par VBA.
Si l'un ou l'une d'entre vous veut bien m'éclairer, voire me dépanner, Merci d'avance.
Ci-après la macro rédigée par le "Développeur"
Sub Macrosoustotaux()
'
Range("A4:C220").Select
Selection.Rows.Ungroup
Selection.Rows.Ungroup
Sheets("Journal").Range("A2:R200").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A3:R3"), Unique:=False
Range("A3:R3").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Add Key:= _
Range("H3:H200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3:R200").Select
Selection.Subtotal GroupBy:=8, Function:=xlSum, TotalList:=Array(7, 10, 11, _
14, 15, 18), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
A voir également:
- Autofilter.sort.sortfields.clear
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
5 réponses
Bonjour,
Je n'ai pas regardé en détail mais juste une remarque :
cette succession d'instruction est probablement en cause:
Selection.AutoFilter
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
EN effet si avant c'est lafeuille S.totaux qui est active alors l'instruction Selection.autofilter enlève le filtre automatique
Et donc l'instruction suivante porvoque l'erreur 91 car il n'y a plus le filtre
Je n'ai pas regardé en détail mais juste une remarque :
cette succession d'instruction est probablement en cause:
Selection.AutoFilter
ActiveWorkbook.Worksheets("S.Totaux").AutoFilter.Sort.SortFields.Clear
EN effet si avant c'est lafeuille S.totaux qui est active alors l'instruction Selection.autofilter enlève le filtre automatique
Et donc l'instruction suivante porvoque l'erreur 91 car il n'y a plus le filtre
Bonjour,
Remplacez:
Range("A3:R3").Select
Selection.AutoFilter
par un test filtre ou pas
A voir
A+
Remplacez:
Range("A3:R3").Select
Selection.AutoFilter
par un test filtre ou pas
If Not Worksheets("S.Totaux").AutoFilterMode Then ActiveWorkbook.Worksheets("S.Totaux").Range("A3:R3").AutoFilter End If
A voir
A+
merci pour cette explication car je le trouve bien pour moi
Bonjour,
et merci pour votre diligence.
Le remplacement de :
Range("A3:R3").Select
Selection.AutoFilter
par un test filtre ou pas
If Not Worksheets("S.Totaux").AutoFilterMode Then
ActiveWorkbook.Worksheets("S.Totaux").Range("A3:R3").AutoFilter
End If
donne entière satisfaction.
Merci encore pour cette entr'aide, la solution et les quelques explications qui m'éclairent sur les règles de fonctionnement de VBA.
et merci pour votre diligence.
Le remplacement de :
Range("A3:R3").Select
Selection.AutoFilter
par un test filtre ou pas
If Not Worksheets("S.Totaux").AutoFilterMode Then
ActiveWorkbook.Worksheets("S.Totaux").Range("A3:R3").AutoFilter
End If
donne entière satisfaction.
Merci encore pour cette entr'aide, la solution et les quelques explications qui m'éclairent sur les règles de fonctionnement de VBA.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question