beug sur des combobox

V

violaine

Guest
bonjour le forum,

j utilise des combobox dans mon application malheureusement il y a un beug en effet ma combobox reprend donc des donnes inscrit dans une colonne si celle ne comporte pas minimun deux données alors inpossible d'application mon application

voici mon tableau de donnees
colonne4 colonne 5
ligne7 ty PE
ligne 8 16 CP
ligne 9 jf ery







je vous laisse mon code utilisé:


------------------------------------------------------------------------------------------------
Dim I, Der1, Der2 As Single
-----------------------------------------------------------------------------------------------
Private Sub Ini() 'Permet de connaitre l'étendue de la zone des sources de la combobox

Sheets("donneesboites").Activate

Range("D7").Select 'selection de la première cellule de la zone des sources de la combobox
Selection.End(xlDown).Select
Der1 = Selection.Row 'renvoie le numéro de ligne de la dernière cellule de la zone

If Der1 <> 65536 Then
ComboBox1.RowSource = "donneesboites!D7:D" & Der1 + 1

Else
ComboBox1.RowSource = "donneesboites!D7:D" & Der1

End If

Sheets("donneesboites").Activate

Range("E7").Select 'selection de la première cellule de la zone des sources de la combobox
Selection.End(xlDown).Select
Der2 = Selection.Row 'renvoie le numéro de ligne de la dernière cellule de la zone

If Der2 <> 65536 Then
ComboBox2.RowSource = "donneesboites!E7:E" & Der2 + 1

Else
ComboBox2.RowSource = "donneesboites!E7:E" & Der2

End If

End Sub

------------------------------------------------------------------------------------------------
Private Sub CommandButton3_Click()
Sheets("donneesboites").Activate
Ini
'If ComboBox1.Text = "" Then 'erreur si rien dans la combobox1
'MsgBox "erreur"
'Exit Sub
'End If

ok = False

For I = 1 To Der1 'vérifie si c'est une nouvelle valeur ou une existante dans la liste
If ComboBox1.Text = Cells(I, 4).Text Then (4= numero de la colonne)
ok = True
End If
Next

If ok = False And ComboBox1.Text <> "" Then 'si nouvelle valeur, rajoute à la liste
Cells(Der1 + 1, 4).Select
Selection.Formula = ComboBox1.Text
Der1 = Der1 + 1
End If



qd l erreu est retenu , il y a un probleme sur la ligne

Cells(Der1 + 1, 4).Select



merci pour votre futur aide
 
D

Denis

Guest
Bonjour violaine et le Forum
un petit exemple en Zip aurait été le bienvenu
voici ci-dessous un exemple de ce que tu peut faire
à recopier dans ton USF

Dim DerLigne1 as Integer, DerLigne2 As Integer

Private Sub UserForm_Activate()
With WorkSheets("donneesboites")
Combobox1.Clear
DerLigne1 =.Range("D65536").end(xlup).Row 'renvoie le numéro de ligne de la dernière cellule de la zone
If DerLigne1<7 then Goto Combo2
ComboBox1.RowSource = "donneesboites!D7:D" & DerLigne1
Combo2 :
Combobox2.Clear
If DerLigne2<7 then exit sub
DerLigne2 =.Range("E65536").end(xlup).Row 'renvoie le numéro de ligne de la dernière cellule de la zone
ComboBox2.RowSource = "donneesboites!E7:E" & DerLigne2
End Sub

Private Sub Combobox1_Change()

Dim Plage As Range
With Sheets("article")
Set Plage = .Range("D2:D" & Derligne1)
With Plage
Set c = .Find(Me.ComboBox1.Value, LookIn:=xlValue)
If Not c Is Nothing Then
Msg = "Cet Article existe déjà !" & Chr(13) & "Il vaut mieux changer la Désignation"
Me.ComboBox1.SetFocus
Else
Range("D" & Derligne1) = combobox1.Value
DerLigne1 =.Range("D65536").end(xlup).Row 'renvoie le numéro de ligne de la dernière cellule de la zone
End If
End With
End With
End Sub


Bon courage et à +
 

Discussions similaires

Statistiques des forums

Discussions
312 388
Messages
2 087 868
Membres
103 672
dernier inscrit
ammarhouichi