Execution du programme VBA trop rapide ?

  • Initiateur de la discussion Initiateur de la discussion Vorens
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
180
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
861
  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
516
Réponses
18
Affichages
2 K
Retour