Macro top lente
Bonjour
J'ai crée un formulaire qui alimente deux feuilles d'un classeur "HA" et "ST" et ensuite procède à un tri
Le problème c'est que pour ajouter ou modifier un nom , il se passe au moins 45 secondes d'attente. Je pense donc que j'ai du faire des erreurs mais je ne vois pas pas trop où
Ci dessous les codes
Merci
'AJOUTER
Private Sub BtnAjouter_Click()
If CboNom.Value = "" Then
MsgBox "Veuillez renseigner le champs 'Nom' "
Else
Dim ligne As Long
If MsgBox("confirmez l'ajout de données ?", vbYesNo, "confirmation") = vbYes Then
Sheets("ST").Activate
Range("A39").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveCell = CboSection.Value
ActiveCell.Offset(0, 1).Value = CboS
ActiveCell.Offset(0, 3).Value = CboG
ActiveCell.Offset(0, 4).Value = CboNom
ActiveCell.Offset(0, 5).Value = TxtPrenom
Dim a As String
Dim b As String
Dim c As String
Dim LiFin(2) As Long
Dim x As Long
Dim y As Long
LiFin(1) = Cells(Rows.Count, 4).End(xlUp).Row
LiFin(2) = Cells(Rows.Count, 1).End(xlUp).Row
For x = 1 To LiFin(2)
c = c & "µ" & Cells(x, 1)
Next x
c = c & "µ"
For x = 2 To LiFin(1)
a = Cells(x, 4)
If InStr(1, c, a) > 0 Then
Cells(x, 3) = a
Else
Cells(x, 3) = Mid(a, 1, 3)
End If
Next x
Sheets("HA").Activate
Range("A39").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveCell = CboSection.Value
ActiveCell.Offset(0, 1).Value = CboS
ActiveCell.Offset(0, 3).Value = CboG
ActiveCell.Offset(0, 4).Value = CboNom
ActiveCell.Offset(0, 5).Value = TxtPrenom
LiFin(1) = Cells(Rows.Count, 4).End(xlUp).Row
LiFin(2) = Cells(Rows.Count, 39).End(xlUp).Row
For x = 1 To LiFin(2)
c = c & "µ" & Cells(x, 39)
Next x
c = c & "µ"
For x = 2 To LiFin(1)
a = Cells(x, 4)
If InStr(1, c, a) > 0 Then
Cells(x, 3) = a
Else
Cells(x, 3) = Mid(a, 1, 3)
End If
Next x
MsgBox "Bien enregistré", vbOKOnly + vbInformation, "CONFIRMATION"
'
' TRIHA Macro
'
'
Sheets("HA").Select
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(191, 191, 191)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(0, 176, 240)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(0, 176, 80)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(255, 255, 0)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[SE]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:="OF,SG,SC,MA,CT,GA,SY,BU", DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[[GR]]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:= _
"AAA,BBB,CCC,DDD,EEE" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[NOM]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[PRENOM]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
'TRI Macro
'
'Sheets("ST").Select
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("ST]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(191, 191, 191)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(51, 102, 255)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(0, 128, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(255, 255, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne2]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:="OF,SG,SC,CT,MA,GA,SY,BU,SE", _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne4]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:= _
"AAA,BBB,CCC,DDD,EEE" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne5]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne6]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
End If
End If
End Sub
'EFFACER
Private Sub Btnefface_Click()
CboSec = ""
CboSer = ""
CboGr = ""
CboNom = ""
TxtPrenom = ""
End Sub
'MODIFIER
Private Sub BtnModifier_Click()
Dim modif As Long
'Modif sur feuille ha
Sheets("HA").Select
No_ligne = CboNom.ListIndex + 39
If TxtPrenom.Value = "" Then
MsgBox ("Veuillez remplir tous les champs")
Else
Cells(No_ligne, 1) = CboSec.Value
Cells(No_ligne, 2) = CboSer.Value
Cells(No_ligne, 4) = CboGr.Value
Cells(No_ligne, 6) = TxtPrenom.Value
Dim a As String
Dim b As String
Dim c As String
Dim LiFin(2) As Long
Dim x As Long
Dim y As Long
LiFin(1) = Cells(Rows.Count, 4).End(xlUp).Row
LiFin(2) = Cells(Rows.Count, 39).End(xlUp).Row
For x = 1 To LiFin(2)
c = c & "µ" & Cells(x, 39)
Next x
c = c & "µ"
For x = 2 To LiFin(1)
a = Cells(x, 4)
If InStr(1, c, a) > 0 Then
Cells(x, 3) = a
Else
Cells(x, 3) = Mid(a, 1, 3)
End If
Next x
'Modif sur feuille ST
Sheets("ST").Select
No_ligne = CboNom.ListIndex + 39
Cells(No_ligne, 1) = CboSec.Value
Cells(No_ligne, 2) = CboSer.Value
Cells(No_ligne, 4) = CboGr.Value
Cells(No_ligne, 6) = TxtPrenom.Value
LiFin(1) = Cells(Rows.Count, 4).End(xlUp).Row
LiFin(2) = Cells(Rows.Count, 1).End(xlUp).Row
For x = 1 To LiFin(2)
c = c & "µ" & Cells(x, 1)
Next x
c = c & "µ"
For x = 2 To LiFin(1)
a = Cells(x, 4)
If InStr(1, c, a) > 0 Then
Cells(x, 3) = a
Else
Cells(x, 3) = Mid(a, 1, 3)
End If
Next x
MsgBox ("Modification effectuée")
Sheets("HA").Select
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(191, 191, 191)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(0, 176, 240)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(0, 176, 80)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add( _
Range("Tableau4[S]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(255, 255, 0)
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[SE]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:="OF,SG,SC,MA,CT,GA,SY,BU", DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[[GR]]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:= _
"AAA,BBB,CCC,DDD,EEE" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[NOM]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort.SortFields.Add _
Key:=Range("Tableau4[PRENOM]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HA").ListObjects("Tableau4").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
'Sheets("ST").Select
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("ST]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(191, 191, 191)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(51, 102, 255)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(0, 128, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(255, 0, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add(Range("Table3[Colonne1]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(255, 255, 0)
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne2]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:="OF,SG,SC,CT,MA,GA,SY,BU,SE", _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne4]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:= _
"AAA,BBB,CCC,DDD,EEE" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne5]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort. _
SortFields.Add Key:=Range("Table3[Colonne6]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ST").ListObjects("Table3").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
End If
End If
End Sub
Unload FORMULAIRE
Load FORMULAIRE
FORMULAIRE.Show
End If
End Sub
'QUITTER le formulaire
Private Sub BtnQuitter_Click()
Unload Me
Sheets("sommaire").Select
End Sub
'RECHERCHER
Private Sub BtnRecherche_Click()
Sheets("HA").Activate
'If CboNom.Value = "" Then
'MsgBox ("Veuillez entrer le nom du fonctionnaire")
If Not CboNom.Value = "" Then
Dim No_ligne As Long
No_ligne = CboNom.ListIndex + 39
CboSec.Value = Cells(No_ligne, 1).Value
CboSer.Value = Cells(No_ligne, 2).Value
CboGr.Value = Cells(No_ligne, 4).Value
TxtPrenom.Value = Cells(No_ligne, 6).Value
Else
End If
'End If
End Sub
'NOM en MAJUSCULE
'Private Sub CboNom_Change()
'CboNom = UCase(CboNom)
'End Sub
'Bloquage bouton AJOUTER
Private Sub TxtPrenom_Change()
If TxtPrenom <> "" Then
BtnAjouter.Enabled = True
Else
BtnAjouter.Enabled = False
End If
TxtPrenom = WorksheetFunction.Proper(TxtPrenom)
End Sub
Private Sub UserForm_Initialize()
'Alimentation CboGrade
Sheets("DONNEES").Activate
Dim No_ligne As Long
No_ligne = 2
Do While Cells(No_ligne, 10).Value <> ""
FORMULAIRE.CboGrade.AddItem Cells(No_ligne, 10).Value
No_ligne = No_ligne + 1
Loop
'Alimentation CboSec
Sheets("DONNEES").Activate
Dim i As Long
i = 2
Do While Cells(i, 6).Value <> ""
FORMULAIRE.CboSec.AddItem Cells(i, 6).Value
i = i + 1
Loop
'Alimentation CboSer
Sheets("DONNEES").Activate
Dim m As Long
m = 2
Do While Cells(m, 8).Value <> ""
FORMULAIRE.CboSer.AddItem Cells(m, 8).Value
m = m + 1
Loop
'Alimentation CboNom
Sheets("HA").Activate
No_ligne = 39
Do While Cells(No_ligne, 5).Value <> ""
FORMULAIRE.CboNom.AddItem Cells(No_ligne, 5).Value
No_ligne = No_ligne + 1
Loop
End Sub
Salut Tacentaure,
un fichier, stp!
A+