1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| Dim FL1 As Worksheet
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Set FL1 = Worksheets("Feuil1")
'*** Déclarations pour partie communes aux quatre premiers exemples *********
Dim DerLigne As Long, DerCol As Byte
DerLigne = FL1.Range("A65535").End(xlUp).Row 'DerLigne de la plage
DerCol = FL1.Range("IV1").End(xlToLeft).Column 'Dernière colonne
'****************** Peuvent être placées en paramètres ****************
'*** Auquel cas, dans les procédures appelées, supprimer ces lignes ***
'********************** et ajouter les paramètres *********************
' Les mêmes avec paramètres
PrésentationEnLignes 'PrésentationEnLignes DerLigne DerCol
PresentationEnColonnes 'PresentationEnColonnes DerLigne DerCol
PresentationEnLignesAvecAddItem 'PresentationEnLignesAvecAddItem DerLigne
AfficherCertainesCellules 'AfficherCertainesCellules DerLigne
ListerUnRépertoireAvecAddItem
End Sub
'******************* METHODE CLASSIQUE ********************
'************ Affichage en lignes d'une plage de données ************
Sub PrésentationEnLignes()
Dim DerLigne As Long, DerCol As Byte
DerLigne = FL1.Range("A65535").End(xlUp).Row 'Dernière ligne de la plage
DerCol = FL1.Range("IV1").End(xlToLeft).Column 'Dernière colonne
Me.ListBox1.ColumnCount = DerCol
Me.ListBox1.RowSource = _
FL1.Range(Cells(1, 1), Cells(DerLigne, DerCol)).Address(False, False)
End Sub
'*********** Affichage en colonnes d'une plage de données ***********
Sub PresentationEnColonnes() 'Affichage en colonnes
Dim DerLigne As Long, DerCol As Byte
DerLigne = FL1.Range("A65535").End(xlUp).Row 'Dernière ligne de la plage
DerCol = FL1.Range("IV1").End(xlToLeft).Column 'Dernière colonne
Dim Tableau(), NoLigne As Long
ReDim Tableau(DerLigne, DerCol)
Me.ListBox2.ColumnCount = DerLigne 'On fixe le nbre de colonnes de la liste
'Création du tableau : Pour chaque ligne, toutes les colonnes
For NoLigne = 1 To DerLigne
For NoCol = 1 To DerCol '(NoLigne-1 et NoCol-1) l'index commençant à 0
Tableau(NoLigne - 1, NoCol - 1) = FL1.Cells(NoLigne, NoCol).Value
Next
Next
Me.ListBox2.Column() = Tableau()
End Sub
'************* Affichage en lignes de certaines colonnes ************
Sub PresentationEnLignesAvecAddItem()
Dim Liste
Dim DerLigne As Long, DerCol As Byte
DerLigne = FL1.Range("A65535").End(xlUp).Row 'Dernière ligne de la plage
Liste = Array(1, 3, 5, 7) 'liste des colonnes ds la feuille de calculs
DerCol = UBound(Liste)
Me.ListBox3.ColumnCount = DerCol + 1
'On remplit la première colonne
For NoLigne = 1 To DerLigne
Me.ListBox3.AddItem FL1.Cells(NoLigne, Liste(0)).Value
Next
For NoCol = 1 To DerCol
For NoLigne = 0 To DerLigne - 1
Me.ListBox3.Column(NoCol, NoLigne) = _
FL1.Cells(NoLigne + 1, Liste(NoCol)).Value
Next
Next
End Sub
'************* Affichage en lignes de certaines cellules ************
Sub AfficherCertainesCellules() 'sur une seule colonne
Dim Tableau()
Dim NoCol As Byte, NoLigne As Byte
NoCol = 5 'Colonne unique
ListLignes = Array(6, 9, 15) 'Listes des No de lignes
ReDim Tableau(UBound(ListLignes))
For NoLigne = 0 To UBound(ListLignes)
Debug.Print ListLignes(NoLigne)
Tableau(NoLigne) = _
FL1.Cells(ListLignes(NoLigne), NoCol).Value
Next
'Me.ListBox4.ColumnCount = 1 '(valeur par défaut donc inutile ici)
Me.ListBox4.List() = Tableau()
End Sub
'************* Affichage en lignes sur deux colonnes ************
Sub ListerUnRépertoireAvecAddItem()
Dim Chemin As String, NomFich As String
Dim i As Integer
Me.ListBox5.ColumnCount = 2
Me.ListBox5.ColumnWidths = "45;60" 'dimensionne les colonnes de la liste
Chemin = "C:\"
NomFich = Dir(Chemin)
'Ligne d'en-tête
Me.ListBox5.AddItem "Répertoire"
Me.ListBox5.Column(1, 0) = "Nom du fichier"
'Chargement de la listbox
While NomFich <> ""
i = i + 1
Me.ListBox5.AddItem Chemin, i
Me.ListBox5.Column(1, i) = NomFich
NomFich = Dir
Wend
End Sub |