Sghaier Chafaa
XLDnaute Junior
Bonjour tt le monde
pas trop doué en VBA, je collecte et assemble des codes pour arriver à mon objectif
je suis à moitié chemin, mais depuis des jours je vise à rechercher intuitivement / avec saisie semi automatique mais sans aboutir
mon code actuel:
	
	
	
	
	
		
c'est ici que je me bloque :
	
	
	
	
	
		
car ,je pense , je doit trouver comment changer le chargement de "RechercheAvecDCI1" de cette forme:
	
	
	
	
	
		
à une forme oû RechercheAvecDCI1 doit contenir la liste à valeur unique et trié
quelqu'un a de solution svp ?
	
		
			
		
		
	
				
			pas trop doué en VBA, je collecte et assemble des codes pour arriver à mon objectif
je suis à moitié chemin, mais depuis des jours je vise à rechercher intuitivement / avec saisie semi automatique mais sans aboutir
mon code actuel:
		VB:
	
	
	Dim f, ligneEnreg, RechercheAvecDCI(), RechercheAvecDCI1()
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim values As Collection
    Dim item As Variant
    
    ' Référence à la feuille f1
    Set ws = ThisWorkbook.Sheets("f1")
    
    ' Référence à la colonne B de la feuille f1
    Set rng = ws.Range("F:F")
    
    ' Collection pour stocker les valeurs uniques
    Set values = New Collection
    
'charger/parcourir la colonne F de la feuille °f1° dans/avec la variable °RechercheAvecDCI1°
  RechercheAvecDCI1 = Application.Transpose(ws.Range("F2:F" & ws.[a65000].End(xlUp).Row).value)
    ' Parcours de la colonne B pour récupérer les valeurs uniques
    On Error Resume Next ' Ignorer les erreurs si une valeur est déjà dans la collection
    For Each cell In rng
        If cell.value <> "" Then
            values.Add cell.value, CStr(cell.value)
        End If
    Next cell
    On Error GoTo 0 ' Réactiver les erreurs
    
    ' Trier les valeurs par ordre alphabétique
    Call SortCollection(values)
    
    ' Effacer le contenu actuel de la combobox
    ComboChoixMedct1.Clear
    
    ' Ajouter les valeurs à la combobox
    For Each item In values
        ComboChoixMedct1.AddItem item
    Next item
  
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'FONCTION DE TRIE ALPHABETIQUE  UTILISEE POUR LE TRI DE LA LISTE DéROULANTE
Sub SortCollection(ByRef values As Collection)
    Dim i As Long
    Dim j As Long
    Dim temp As Variant
    
    For i = 1 To values.Count - 1
        For j = i + 1 To values.Count
            If StrComp(values(i), values(j), vbTextCompare) > 0 Then
                temp = values(j)
                values.Remove j
                values.Add temp, temp, i
            End If
        Next j
    Next i
   End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'LA FONCTION QUI CHERCHE ET REMPLIE la liste déroulante et LES ZONES DES TEXTE PAR LES INFO
Private Sub ComboChoixMedct1_click()
 'on récupère tous les champs
  'charger liste des medicaments par DCI si l'option de recherche par DCI est coché
  If Opt_Btn_DCI.value = True Then
 For i = 1 To UBound(RechercheAvecDCI1)
  If RechercheAvecDCI1(i) = ComboChoixMedct1 Then
    ligneEnreg = i + 1
          
    Me.Controls("TxtBx_DCI") = f.Cells(ligneEnreg, 6)
    Me.Controls("TxtBx_Categ") = f.Cells(ligneEnreg, 5)
    Me.Controls("TxtBx_AP") = f.Cells(ligneEnreg, 7)
      
    End If
  Next i
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c'est ici que je me bloque :
		VB:
	
	
	'recherche intuitif de liste trié POUR ComboChoixMedct1
Private Sub ComboChoixMedct1_Change()
    ???? ici que je me Bloque ????
End Subcar ,je pense , je doit trouver comment changer le chargement de "RechercheAvecDCI1" de cette forme:
		VB:
	
	
	RechercheAvecDCI1 = Application.Transpose(f.Range("F2:F" & f.[a65000].End(xlUp).Row).value)à une forme oû RechercheAvecDCI1 doit contenir la liste à valeur unique et trié
quelqu'un a de solution svp ?
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		