Listbox une codition si une ligne vide
Bonjour a tous,
j ai fait une listbox, avec un bouton qui apres un encodage dans un textbox, m'ajoute un numero dans une cellule. jusque la pas de probleme seulement, j aimerais en plus de cela rajouter une condition qui ferai en sorte de ne pas afficher se numéro, si la cellule de la colone A est vide.
un peu compliquer a expliquer en francais mdr, je vous joins le fichier qui sera plus clair, ainsi que mes code :
le code du bouton :
Private Sub CommandButton3_Click() '''a modifier dans les autres UF
Dim ligne As Integer
If Libellé = TextBox1 Or Libellé = Numero Then ' => SI condition validée ALORS
'Instructions si vrai
Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
Else ' => SINON
'Instructions si faux
MsgBox " Vous n'avez pas rentré le bon joueur"
Libellé.Value = Clear
End If
Dim l As Integer
l = Range("D" & Rows.Count).End(xlUp).Row + 1
Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
End Sub
les codes de la UF:
Dim nbCol, pointeur, ligne
Dim bd, f
Private Sub CommandButton1_Click()
Dim l As Integer
l = Range("D" & Rows.Count).End(xlUp).Row + 1
Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
End Sub
Private Sub CommandButton3_Click() '''a modifier dans les autres UF
Dim ligne As Integer
If Libellé = TextBox1 Or Libellé = Numero Then ' => SI condition validée ALORS
'Instructions si vrai
Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
Else ' => SINON
'Instructions si faux
MsgBox " Vous n'avez pas rentré le bon joueur"
Libellé.Value = Clear
End If
Dim l As Integer
l = Range("D" & Rows.Count).End(xlUp).Row + 1
Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
End Sub
Private Sub CommandButton4_Click()
Libellé.Value = Clear
Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
End Sub
Private Sub CommandButton5_Click()
Application.Run "TOUR1"
Worksheets("1").Range("F4:H260").Copy Worksheets("Tournois").Range("A5:C260")
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
Sheets("Tournois").Select
Range("B5").Select
ActiveCell.FormulaR1C1 = "-"
Selection.AutoFill Destination:=Range("B5:B129"), Type:=xlFillDefault
Range("B5:B129").Select
End Sub
Private Sub CommandButton6_Click()
If MsgBox("Faire un nouveau tour ?", vbYesNo, "Demande de confirmation") = vbYes Then
Application.Run "TiragePoules1"
Worksheets("1").Range("F4:H260").Copy Worksheets("Tournois").Range("A5:C260")
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
End If
End Sub
Private Sub UserForm_Activate()
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
End Sub
Private Sub UserForm_Initialize()
Set f = Sheets("Tournois")
Set d = CreateObject("Scripting.Dictionary")
Set bd = f.Range("A2:H" & f.[A65000].End(xlUp).Row) ' change l emplacement de la recherche
For i = 10 To bd.Rows.Count
If bd.Cells(i, 1) <> "" Then d(bd.Cells(i, 1).Value) = ""
Next i
Temp = d.keys
'Call Tri(temp, LBound(temp), UBound(temp))
'Me.TextBox1 = temp
Me.ZoneRec.List = bd.Value
For k = 1 To 18: Me("label" & k).Caption = f.Cells(9, k): Next k
Numero = Sheets("Tournois").Cells(2, 3)
TextBox1 = Sheets("Tournois").Cells(2, 1)
TextBox2 = Sheets("Tournois").Cells(2, 4)
Libellé = Sheets("Tournois").Cells(2, 5)
Pièce = Sheets("Tournois").Cells(2, 6)
'ZoneRec.RowSource = "Tournois!A:F"
ZoneRec.ColumnWidths = "40;20;50;50"
End Sub
Private Sub B_ok_Click()
Dim a()
N = Application.CountIf(Application.Index(bd, , 1), Me.MotCle)
ReDim a(1 To N, 1 To bd.Columns.Count)
ligne = 0
For i = 10 To bd.Rows.Count
If bd.Cells(i, 1) = Me.MotCle Then
ligne = ligne + 1
For k = 1 To bd.Columns.Count: a(ligne, k) = bd.Cells(i, k): Next k
End If
Next i
Me.ZoneRec.List = a()
End Sub
Private Sub b_tout_Click()
Me.ZoneRec.Clear
For i = 10 To f.[A65000].End(xlUp).Row
Me.ZoneRec.AddItem
Me.ZoneRec.List(i - 10, 0) = f.Cells(i, 1)
Me.ZoneRec.List(i - 10, 1) = i
Next
pointeur = 0
ligne = Me.ZoneRec.List(pointeur, 1)
affiche
End Sub
Private Sub ZoneRec_Click()
ligne = ZoneRec.ListIndex + 2
Numero = Sheets("Tournois").Cells(ligne, 3)
TextBox1 = Sheets("Tournois").Cells(ligne, 1)
TextBox2 = Sheets("Tournois").Cells(ligne, 4)
Libellé = Sheets("Tournois").Cells(ligne, 5)
Pièce = Sheets("Tournois").Cells(ligne, 6)
'ligne = Me.ZoneRec.Column(1)
'pointeur = Me.ZoneRec.ListIndex
'affiche
End Sub
Private Sub b_suiv_Click()
If pointeur < Me.ZoneRec.ListCount - 1 Then
pointeur = pointeur + 1
ligne = Me.ZoneRec.List(pointeur, 1)
affiche
End If
End Sub
Private Sub b_prec_Click()
If pointeur > 0 Then
pointeur = pointeur - 1
ligne = Me.ZoneRec.List(pointeur, 1)
affiche
End If
End Sub
Private Sub b_premier_Click()
pointeur = 0
ligne = Me.ZoneRec.List(pointeur, 1)
affiche
End Sub
Private Sub b_dernier_Click()
pointeur = Me.ZoneRec.ListCount - 1
ligne = Me.ZoneRec.List(pointeur, 1)
affiche
End Sub
Private Sub Annuler_Click()
tour_1.Hide
End Sub
Private Sub Modifier_Click()
Me.ZoneRec.List = bd.Value
End Sub
l'idee du code que j'arrive pas a faire...
Private Sub CommandButton3_Click() '''a modifier dans les autres UF
Dim ligne As Integer
If Libellé = TextBox1 Or Libellé = Numero Then ' => SI condition validée ALORS
'Instructions si vrai
Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
Else ' => SINON
'Instructions si faux
MsgBox " Vous n'avez pas rentré le bon joueur"
Libellé.Value = Clear
End If
if [premiere cellule vide en A] = emply then
'ne rien faire
else
'si c estt faux ajouter mon numéro
Dim l As Integer
l = Range("D" & Rows.Count).End(xlUp).Row + 1
Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
end if
End Sub
merci
Bonjour
Tu écris :
qui ferai en sorte de ne pas afficher se numéro, si la cellule de la colone A est vide.
Il y a beaucoup de cellules en colonne A.
De laquelle s'agit-il ?
Avec ton fichier, ce serait mieux...
Bye !
autant pour moi je pensais avoir mis le fichier avec
je parlais de la premiere cellule vide dans la colone A
j ai essayé ce code mais toujours sans succes
Private Sub CommandButton3_Click() '''a modifier dans les autres UF
If Libellé = TextBox1 Or Libellé = Numero Then ' => SI condition validée ALORS
'Instructions si vrai
Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
Else ' => SINON
'Instructions si faux
MsgBox " Vous n'avez pas rentré le bon joueur"
Libellé.Value = Clear
End If
Dim l As Integer
If (Sheets("Tournois").Cells(ligne, 1)) = empty Then
l = Range("D" & Rows.Count).End(xlUp).Row + 1
Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
Else
End If
End Sub
svbb a écrit :une condition qui ferai en sorte de ne pas afficher se numéro, si la cellule de la colone A est vide.
Un essai à tester. Te convient-il ?
Bye !
c est parfait je te remercie