Effectuer 2 actions en 1 seule sous vb

W

Willy

Guest
Bonjour le forum,

Le titre n'est pas explicite :

La procédure suivante permet d'initialiser l'userform et contient une procédure pour le bouton VALIDER RECHERCHE.

Cela fonctionne parfaitement mais j'aurai bien voulu supprimer l'action du bouton VALIDER RECHERCHE, c'est à dire après l'initialisation, effectuer la procédure du bouton VALIDER automatiquement à la suite.

j'ai donc tout joint dans la procédure d'initialisation mais j'ai une erreur (13).
j'ai un peu fouillé de partout mais je sèche !!!
Je ne peux joindre de fichier exemple car trop lourd.

****************
Option Explicit
Public ColNum1 As Integer
Public Critere As String

'=================================================================
'=================================================================
Private Sub UserForm_Initialize()

Application.ScreenUpdating = False
' AFFICHE TEMPORAIREMENT LES FEUILLES SENSIBLES
Sheets("BDD").Visible = True
Sheets("IMPRIM_RECHERCHE").Visible = True

Worksheets("BDD").AutoFilterMode = False

End Sub

' =============================================================================
' ************ VALIDER LA RECHERCHE *******************************************
' =============================================================================
Private Sub CommandButton1_Click() ' Bouton VALIDER RECHERCHE

Dim Critere As String
Dim Cell As Range
Dim r As Range
Dim i As Integer
Dim tabT() As String
Dim w As Worksheet

Set w = Worksheets("BDD")
Critere = StockCategorie.Value
ColNum1 = StockColNum.Value


If w.AutoFilterMode Then
w.AutoFilterMode = False
w.Range("A2").AutoFilter ColNum1, Critere
Else
w.Range("A2").AutoFilter ColNum1, Critere
End If

Set r = Sheets("BDD").Range("A2:" & Sheets("BDD").Range("A501").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

' AFFICHAGE DES 7 COLONNES DANS LE LISTING
ReDim tabT(0 To r.Count - 1, 1 To 7)

If StockGroupe.Value = "NOM AGENT" Or StockGroupe.Value = "MATRICULE" Or StockGroupe.Value = "FONCTION" Or StockGroupe.Value = "STATUT" Then
For Each Cell In r
tabT(i, 1) = Cell.Value ' NOM
tabT(i, 2) = Cell.Offset(0, 1).Value ' PRENOM
tabT(i, 3) = Format(Cell.Offset(0, 2).Value, "00 0000") ' MATRICULE
tabT(i, 4) = Cell.Offset(0, 3).Value ' GRADE
tabT(i, 5) = Cell.Offset(0, 4).Value ' FONCTION
tabT(i, 6) = Cell.Offset(0, 5).Value ' STATUT
tabT(i, 7) = Cell.Offset(0, 168).Value ' ETAT MEDICAL
i = i + 1
Next
Else

If StockGroupe.Value = "GRADE" Then
For Each Cell In r
tabT(i, 1) = Cell.Value ' NOM
tabT(i, 2) = Cell.Offset(0, 1).Value ' PRENOM
tabT(i, 3) = Format(Cell.Offset(0, 2).Value, "00 0000") ' MATRICULE
tabT(i, 4) = Cell.Offset(0, 3).Value ' GRADE
tabT(i, 5) = Format(Cell.Offset(0, 7).Value, "dd mmmm yyyy") 'DATE DE NOMINATION
tabT(i, 6) = Cell.Offset(0, 5).Value ' STATUT
tabT(i, 7) = Cell.Offset(0, 168).Value ' ETAT MEDICAL
i = i + 1
Next
Else

If StockGroupe.Value = "ATTESTATION VSAB" Then
For Each Cell In r
tabT(i, 1) = Cell.Value ' NOM
tabT(i, 2) = Cell.Offset(0, 1).Value ' PRENOM
tabT(i, 3) = Format(Cell.Offset(0, 2).Value, "00 0000") ' MATRICULE
tabT(i, 4) = Cell.Offset(0, 4).Value ' FONCTION
tabT(i, 5) = Cell.Offset(0, ColNum1 - 1).Value ' NATURE DU STAGE
tabT(i, 6) = Format(Cell.Offset(0, ColNum1).Value, "dd mmmm yyyy") ' DATE DE RECYCLAGE
tabT(i, 7) = Cell.Offset(0, 168).Value ' ETAT MEDICAL
i = i + 1
Next
Else
End If
End If
End If


' CREATION DES COLONNES DU LISTING
ListBox3.ColumnCount = 7
ListBox3.List = tabT
ListBox3.ColumnWidths = "80;65;55;140;140;140;70"

Me.ListBox3.List = tabT
Me.Label2.Caption = "CRITERE : " & " " & StockCategorie.Value & " -- : " & r.Count - 1 & " Agent(s)."

Stock_Nombre.Value = r.Count - 1
End Sub

Merci de votre aide et bon W-E
Willy
 
W

Willy

Guest
Re bonsoir le forum

J'ai peut être trouver la parade :
A la place de
Private Sub CommandButton1_Click() ' Bouton VALIDER RECHERCHE

j'ai :
Private Sub userform_Activate()

(je l'avais oublié celui-la !!)

Ca fonctionne, je continu les test.

Est ce une bonne solution d'après vous ?

Bonne soirée
Willy
 

Discussions similaires

Réponses
0
Affichages
175
Réponses
7
Affichages
575

Statistiques des forums

Discussions
312 434
Messages
2 088 380
Membres
103 838
dernier inscrit
noureddine