Bonjour,
1/ A l’initialisation de mon formulaire, j’alimente ma TextBox1 avec un champ nommé « Noms ». Ce champ est définit avec
=DECALER('Base gestion MDR'!$F$9;;;NBVAL('Base gestion MDR'!$F:$F)-8)
Or la ligne 9 peut-être amenée à être supprimée et le champ « Noms » devient avec
=DECALER('Base gestion MDR'!#REF !;;;NBVAL('Base gestion MDR'!$F:$F)-8)
et forcément l’alimentation du ListBox1 ne se fait plus.
Donc ce que j’aimerais, c’est de changer la façon d’alimenter cette dernière sans utiliser de champ nommé mais plutôt avec :
1 2
| Me.ListBox1.ColumnCount = 2
Me.ListBox1.RowSource = "F9 :G"&[G65000].End(xlUp).Row |
(F et G pour alimenter avec le nom et le prénom)
Or je n’arrive pas à adapter le reste de la macro à partir de :
Erase NomOK: ReDim NomOK(1 To Range("Noms").Rows.Count)
2/ Y a-t-il également des modifications à apporter dans l’instruction TextBox1_Change qui est ma zone de recherche intuitive ?
Je pense que oui car j’ai toujours un débogage.
Merci par avance et bonne journée.
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
| '___________________________'
'Déclaration des variables
'___________________________'
Option Explicit
Dim NomOK() As Long
'___________________________'
'Intialisation du formulaire
'___________________________'
Private Sub UserForm_Initialize()
trois_boutons Me 'rajoute les boutons de réduction et d'agrandissement dans le formulaire
Dim i As Long
Dim Sh As Integer 'variable feuilles
For Sh = 1 To 18 'pour n'afficher que les 18 premières feuilles du classeur
Me.ListBox2.AddItem Sheets(Sh).Name 'affiche dans la liste le nom des feuilles sélectionnables
Next Sh
Me.ListBox1.List = Range("Noms").Resize(, 2).Value 'alimente la liste avec les noms et prénoms
Erase NomOK: ReDim NomOK(1 To Range("Noms").Rows.Count)
For i = 1 To Range("Noms").Rows.Count: NomOK(i) = Range("Noms").Row + i - 1: Next i
Label21.Caption = "Aujourd'hui, nous sommes le" & " " & Format(Date, "dddd d mmmm yyyy") & " " & "et ce formulaire a été ouvert à" & " " & Format(Now, "hh:mm") 'affiche la date du jour dans un label
Me.MultiPage1.Value = 2 'se positionne sur la 3ème page du contrôle multipages
Me.ListBox1.ListIndex = 0 'première occurence de la liste
Me.Label62.Caption = ListBox1.ListCount + 5 'nombre d'occurences dans la liste
'_______________________________________________________'
'A chaque changement dans la zone de recherche intuitive
'(mise à jour des zones de texte)
'_______________________________________________________'
Private Sub TextBox1_Change()
Dim xCell As Range, Nbr As Long, ligne As Long
Dim Repertoire As String
Dim L As Byte
Me.ListBox1.Clear
Erase NomOK
For Each xCell In Range(Sheets("Base gestion MDR").[F9], Sheets("Base gestion MDR").[F65000].End(xlUp))
If UCase(xCell) Like UCase(Me.TextBox1) & "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = xCell & " " & xCell.Offset(0, 1)
ReDim Preserve NomOK(1 To Me.ListBox1.ListCount)
NomOK(Me.ListBox1.ListCount) = xCell.Row
End If
Next xCell |
Partager