Execution du programme VBA trop rapide ?

Vorens

XLDnaute Occasionnel
Bonjour à tous,

J'ai réalisé un petit programme sur VBA: Celui-ci fonction très bien sauf la dernière ligne qui engendre une erreur 400. Cette ligne est un filtre sur un tableau.

Lorsque j'execute le programme en ligne par ligne avec les curseurs, aucun problème n'apparait. Quelqu'un aurait déjà eu ce problème et connais la solution ?

Voici le code:

Code:
Sub trouveDate()


Sheets("00098").Activate

nombre1 = Range("T2").Value

Set celluletrouvee1 = Range("F1:F65000").Find(nombre1, lookat:=xlWhole)

Ligne1 = celluletrouvee1.Row
nombre2 = Range("T3").Value

Set celluletrouvee2 = Range("F1:F65000").Find(nombre2, lookat:=xlWhole)

Ligne2 = celluletrouvee2.Row
ligne3 = Ligne2 - 1
     
Range("B" & Ligne1 & ":Q" & ligne3).Select

    Application.CutCopyMode = False
    Selection.Copy
    Sheets("calcul").Select
    Range("A2").Select
    ActiveSheet.Paste
    
 'Filtre des état non désirables
    
    Sheets("calcul").Activate
    Application.ScreenUpdating = False
    For n = Range("A65536").End(xlUp).Row To 1 Step -1
  If InStr(Range("B" & n), Sheets("Calcule BIS").Range("B1")) <> 0 Or InStr(Range("B" & n), Sheets("Calcule BIS").Range("b2")) Then
    Rows(n).Delete
  End If
    Next n
    Application.ScreenUpdating = True
    
 'Filtre des état restant
   
    Columns("B:B").Select
    Range("B1:B65000").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Calcule BIS").Select
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("calcul").Select
    ActiveSheet.ShowAllData
    
    'Déclaration de variable des recettes utilisées
    
    Sheets("Calcul").Activate
    Recette1 = Range("A1").Value
    Recette2 = Range("A2").Value
    Recette3 = Range("A3").Value
    Recette4 = Range("A4").Value
    Recette5 = Range("A5").Value
    Recette6 = Range("A6").Value
    Recette7 = Range("A7").Value
    Recette8 = Range("A8").Value
    Recette9 = Range("A9").Value
    Recette10 = Range("A10").Value
    
 'Filtre des états pour comptabilisation
 
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:=Sheets("Calcule BIS").Range("A1").Value

  
 End Sub

Seule la dernière ligne pose problème. Et si je fais une macro avec uniquement les deux dernière lignes, cela fonctionne aussi.

Par avance merci de votre aide

Cordialement Vorens
 

Efgé

XLDnaute Barbatruc
Re : Execution du programme VBA trop rapide ?

Bonjour Vorens,
En partant de b2 et en allant vers le bas, tu essai de filtrer automatiquement une colonne:
Code:
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select

Essai plutot:
Code:
Range("B2").Select
Range(Selection, Selection.End(xlToRight)).Select

Cordialement
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
322
Réponses
12
Affichages
700

Statistiques des forums

Discussions
312 325
Messages
2 087 304
Membres
103 513
dernier inscrit
adel.01.01.80.19