pb de vitesse pr la suite du code

davidan

XLDnaute Nouveau
merci ça a super bien marché pour l'initialisatio mais je me retrouve incapable de l'appliquer au reste, mais je crois pas que se soit tellement mon histoire de date qui ralentisse mon code.
je pense que je dois scanner encore plusieur fois ma feuille.
si tu peut m'aider avec un bout de code car j'ai du mal à appliquer les indication que tu m'as donné.
merci d'avance

Private Sub bouton_OK_Click()
On Error Resume Next
Application.ScreenUpdating = False
If ComboBox1.Value = 'tous' Then
Range('G12').AutoFilter field:=7
Else
Range('G12').AutoFilter field:=7, Criteria1:=ComboBox1.Value
End If
If ComboBox2.Value = 'tous' Then
Range('K12').AutoFilter field:=11
Else
Range('K12').AutoFilter field:=11, Criteria1:=ComboBox2.Value
End If
If ComboBox3.Value = 'tous' Then
Range('C12').AutoFilter field:=3
Else
Range('C12').AutoFilter field:=3, Criteria1:=ComboBox3.Value
End If
If ComboBox4.Value = 'tous' Then
Range('D12').AutoFilter field:=4
Else
Range('D12').AutoFilter field:=4, Criteria1:=ComboBox4.Value
End If
If ComboBox5.Value = 'tous' Then
Selection.AutoFilter field:=12
Else
Range('feuil1!L12').AutoFilter field:=12
Range('feuil1!L12:L65536').NumberFormat = '0'
Range('feuil2!A1').Value = ComboBox5.Value
Range('feuil2!A1') = CDate(ComboBox5.Value)
Range('feuil2!A1').NumberFormat = 'dd/mm/yy'
Range('feuil2!A1').Font.ColorIndex = 35
Range('L12').AutoFilter field:=12, Criteria1:=Range('feuil2!A1')
Range('L12') = ''
End If

If ComboBox5.Value = 'non émise' Then
Range('feuil1!L12').AutoFilter field:=12, Criteria1:=Empty
End If

If ComboBox6.Value = 'tous' Then
Range('M12').AutoFilter field:=13
Else
Range('feuil1!M12').AutoFilter field:=13
Range('feuil1!M12:M65536').NumberFormat = '0'
Range('feuil2!B1').Value = ComboBox6.Value
Range('feuil2!B1') = CDate(ComboBox6.Value)
Range('feuil2!B1').NumberFormat = 'dd/mm/yy'
Range('feuil2!B1').Font.ColorIndex = 35
Range('M12').AutoFilter field:=13, Criteria1:=Range('feuil2!B1')
Range('M12') = ''
End If

If ComboBox6.Value = 'non levée' Then
Range('feuil1!M12').AutoFilter field:=13, Criteria1:=Empty
End If

If ComboBox7.Value = 'tous' Then
Range('N12').AutoFilter field:=14
Else
Range('feuil1!N12').AutoFilter field:=14
Range('feuil1!N12:N65536').NumberFormat = '0'
Range('feuil2!C1').Value = ComboBox7.Value
Range('feuil2!C1') = CDate(ComboBox7.Value)
Range('feuil2!C1').NumberFormat = 'dd/mm/yy'
Range('feuil2!C1').Font.ColorIndex = 35
Range('M12').AutoFilter field:=14, Criteria1:=Range('feuil2!C1')
Range('M12') = ''
End If

If ComboBox7.Value = 'non contrôlée' Then
Range('feuil1!L14').AutoFilter field:=14, Criteria1:=Empty
End If

Range('feuil1!L12:L65536').NumberFormat = 'dd/mm/yy'
Range('feuil1!M12:M65536').NumberFormat = 'dd/mm/yy'
Range('feuil1!N12:N65536').NumberFormat = 'dd/mm/yy'

Range('A12').Select
ActiveCell.FormulaR1C1 = 'tous'
Selection.AutoFill Destination:=Range('A12:Q12'), Type:=xlFillDefault
Unload UserForm1
End Sub


voila le fameux code qui prend temps de temps.
merci de ton aide
 

Dan

XLDnaute Barbatruc
Bonjour,

heu excuse moi mais tu t'adresses à qui là. le 'merci...', 'ton aide ...'

Si tu as ouvert un autre fil précédemment pourquoi ne pas rester sur celui là...

C'est pas Lien supprimé par hasard ?

Si oui, merci de lire la Charte.

Bon AP

Message édité par: Dan, à: 08/08/2005 13:24
 

Creepy

XLDnaute Accro
Hello,

Je suis entierement d'accord avec DAn, mais je pense que tu as du faire une fausse manip.

Bref

J'ai regardé ton code c'est le bronxe !!

Je ne comprends pas bien certaines choses, mais bon.

Petite remarque, quand tu fait appel plusieurs fois à la même cellule pas la peine de repeter tu fais un with end with et puis voila.

Code:
Option Explicit

Private Sub bouton_OK_Click()
On Error Resume Next

Application.ScreenUpdating = False
If ComboBox1.Value = 'tous' Then
    Range('G12').AutoFilter field:=7
Else
    Range('G12').AutoFilter field:=7, Criteria1:=ComboBox1.Value
End If
If ComboBox2.Value = 'tous' Then
    Range('K12').AutoFilter field:=11
Else
    Range('K12').AutoFilter field:=11, Criteria1:=ComboBox2.Value
End If
If ComboBox3.Value = 'tous' Then
    Range('C12').AutoFilter field:=3
Else
    Range('C12').AutoFilter field:=3, Criteria1:=ComboBox3.Value
End If
If ComboBox4.Value = 'tous' Then
    Range('D12').AutoFilter field:=4
Else
    Range('D12').AutoFilter field:=4, Criteria1:=ComboBox4.Value
End If
If ComboBox5.Value = 'tous' Then
    Selection.AutoFilter field:=12
Else
    Range('feuil1!L12').AutoFilter field:=12
Range('feuil1!L12:L65536').NumberFormat = '0'

With Feuil2.Range('A1')
    .Value = CDate(ComboBox6.Value)
    .NumberFormat = 'dd/mm/yy'
    .Font.ColorIndex = 35
End With


Range('L12').AutoFilter field:=12, Criteria1:=Range('feuil2!A1')
Range('L12') = ''
End If

If ComboBox5.Value = 'non émise' Then
Range('feuil1!L12').AutoFilter field:=12, Criteria1:=Empty
End If

If ComboBox6.Value = 'tous' Then
Range('M12').AutoFilter field:=13
Else
Range('feuil1!M12').AutoFilter field:=13
Range('feuil1!M12:M65536').NumberFormat = '0'
Range('feuil2!B1').Value = ComboBox6.Value

With Feuil2.Range('B1')
    .Value = CDate(ComboBox6.Value)
    .NumberFormat = 'dd/mm/yy'
    .Font.ColorIndex = 35
End With

Range('M12').AutoFilter field:=13, Criteria1:=Range('feuil2!B1')
Range('M12') = ''
End If

If ComboBox6.Value = 'non levée' Then
Range('feuil1!M12').AutoFilter field:=13, Criteria1:=Empty
End If

If ComboBox7.Value = 'tous' Then
Range('N12').AutoFilter field:=14
Else
Range('feuil1!N12').AutoFilter field:=14
Range('feuil1!N12:N65536').NumberFormat = '0'

With Feuil2.Range('C1')
    .Value = CDate(ComboBox7.Value)
    .NumberFormat = 'dd/mm/yy'
    .Font.ColorIndex = 35
End With

Range('M12').AutoFilter field:=14, Criteria1:=Range('feuil2!C1')
Range('M12') = ''
End If

If ComboBox7.Value = 'non contrôlée' Then
Range('feuil1!L14').AutoFilter field:=14, Criteria1:=Empty
End If

Range('feuil1!L12:N65536').NumberFormat = 'dd/mm/yy'

Range('A12').Select
ActiveCell.FormulaR1C1 = 'tous'
Selection.AutoFill Destination:=Range('A12:Q12'), Type:=xlFillDefault
Unload UserForm1
End Sub

Pour le reste faudrait mettre en PJ un exemple il doit y avoir moyen d'accelerer encore.

++

Creepy
 

davidan

XLDnaute Nouveau
merci et désolé pour mon erreur mais n'as tu pas une méthode plus performante,
en fait ce code a pour but de remplacer les filtre automatiques
il trie du texte pour les 3 premier champ et des dates pour les 3 derniers.
merci d'avance
 

Discussions similaires

Réponses
4
Affichages
231

Statistiques des forums

Discussions
312 448
Messages
2 088 504
Membres
103 872
dernier inscrit
Gufre