GADENSEB
XLDnaute Impliqué
Bonjour Le Forum,
Je reviens vers vous pour ma bdd
Je cherche maintenant à tout gérer via des USF
Je créer donc un USF général avec des onglets
Dans l'un de ces onglets "BDD" je rappel toute la BDD présente dans l'onget "BASE EMPLOI'"
Mon code est un peu lourd, je trouve, comment pourrais-je l'alléger ?
On active l'USF en cliquant que sur G6 "Sommaire"
Bonne fin d'aprem
Seb
Je reviens vers vous pour ma bdd
Je cherche maintenant à tout gérer via des USF
Je créer donc un USF général avec des onglets
Dans l'un de ces onglets "BDD" je rappel toute la BDD présente dans l'onget "BASE EMPLOI'"
Mon code est un peu lourd, je trouve, comment pourrais-je l'alléger ?
On active l'USF en cliquant que sur G6 "Sommaire"
Bonne fin d'aprem
Seb
Code:
'Private Sub BDD_BeforeLabelEdit(Cancel As Integer)
Private Sub UserForm_Initialize()
With GENERAL
.Top = 0
.Left = 0
.Height = Application.UsableHeight
.Width = Application.UsableWidth
End With
Set F = Sheets("BASE EMPLOI")
With Me.BDD
Entetes = Array("B", "C", "D", "E", "G", "H", "I", "J", "K", "L", "N", "O", "P", "Q", "R", "T", "U", "V", "W", "X", "Y", "AA", "AB", "AC", "AD", "AF", "AG", "AH", "AI", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB")
largeur = Array(80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70, 80, 80, 80, 70, 70, 70)
With .ColumnHeaders
.Clear
nbr = -1
For nbr = 0 To 47
.Add , , F.Cells(1, Entetes(nbr)), largeur(nbr) '80
Next
End With
.View = 3 ' type Report
.Gridlines = True ' affichage de lignes
.FullRowSelect = True ' sélection complète de la ligne
.HideColumnHeaders = False ' afficher les en-têtes de colonnes
.LabelEdit = 0 ' Autoriser la saisie
'.LabelEdit = 1 ' N'autoriser la saisie
End With
Call LISTING
End Sub
Sub LISTING()
'Remplit la Listview avec les données d'Excel
BDD.ListItems.Clear
Set F = Sheets("BASE EMPLOI")
Entetes = Array("B", "C", "D", "E", "G", "H", "I", "J", "K", "L", "N", "O", "P", "Q", "R", "T", "U", "V", "W", "X", "Y", "AA", "AB", "AC", "AD", "AF", "AG", "AH", "AI", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB")
Set Plage = F.Range("b2:b" & F.Range("b65000").End(xlUp).Row)
For Each Cel In Plage
With BDD
.ListItems.Add , , Cel
For nbr = 1 To 47
.ListItems(.ListItems.Count).ListSubItems.Add , , F.Cells(Cel.Row, Entetes(nbr)) 'Cel.Offset(0, 1)
Next
End With
Next
End Sub
Private Sub BDD_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
'Permet le classement par clic sur le titre de la colonne
BDD.Sorted = False
BDD.SortKey = ColumnHeader.Index - 1
If BDD.SortOrder = lvwAscending Then
BDD.SortOrder = lvwDescending
Else
BDD.SortOrder = lvwAscending
End If
BDD.Sorted = True
End Sub
Private Sub MODIFICATIONS_Click()
Dim i As Integer, j As Integer
'Boucle sur toutes les lignes
For i = 1 To BDD.ListItems.Count
Cells(i, 1) = BDD.ListItems(i).Text
'Boucle sur les colonnes
For j = 1 To BDD.ColumnHeaders.Count - 1
Cells(i, j + 1) = BDD.ListItems(i).ListSubItems(j).Text
Next j
Next i
End Sub
Pièces jointes
Dernière édition: