Modifier le choix d'alimentation d'une TextBox

Signaler
Messages postés
1
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
24 juillet 2012
-
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). Hors 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 :
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)

Hors 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.

'___________________________'
'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


Chris.