Bonjour à tout le FORUM,
je viens une fois de plus faire appel à vos connaissances car je peche sur un probleme de code à inserer au niveau des Option Button.
J'ai 3 Boutons d'options qui me renvoient une certaine valeur aprés validation par un bouton dans un TxtBox lorsqu'ils sont cochés.
Je cherche en fait à renvoyer cette valeur dans une cellule de ma base par la commande Range. cela marche que pour une valeur.
En fait avec la méthode Range
Range("F" & DerLig).Value = IIf(OptionButton1 = True, "1002", "")
je ne renvoie que la valeur 1002 et moi j'aimerai pouvoir faire :
Range("F" & DerLig).Value = IIf(OptionButton2 = True, "1004", "")
Range("F" & DerLig).Value = IIf(OptionButton3 = True, "1002", "")
J'ai également essayé avec la méthode SelectCase mais au dela de 2 Case je n'y arrive pas.
Si quelqu'un avait une astuce à mon probléme, ce searit sympa.
Voici mon bout de code.
Private Sub BoutonAjouter_Click()
Dim DerLig As String
TextBox1.Visible = IIf(BoutonAjouter.Caption = "Ajouter", True, False)
BoutonAjouter.Caption = IIf(TextBox1.Visible = True, "Valider l'Ajout", "Ajouter")
If BoutonAjouter.Caption = "Ajouter" Then
BoutonSupprimer.Enabled = False
BoutonImprimer.Enabled = False
BoutonModifier.Enabled = False
If TextBox1 = "" Then ComboBox1.Visible = True: Exit Sub
DerLig = Sheets("BOM").Range("B" & Cells.Rows.Count).End(xlUp).Row + 1
Range("B" & DerLig).Value = TextBox1.Value
Range("C" & DerLig).Value = ComboBox2.Value
Range("D" & DerLig).Value = TextBox2.Value
Range("E" & DerLig).Value = TextBox3.Value
Range("F" & DerLig).Value = IIf(OptionButton1 = True, "1002", "")
Range("F" & DerLig).Value = IIf(OptionButton2 = True, "1004", "")
Range("F" & DerLig).Value = IIf(OptionButton5 = True, "1002", "")
Range("G" & DerLig).Value = CDate(TextBox5.Value)
Range("H" & DerLig).Value = CDate(TextBox6.Value)
Range("I" & DerLig).Value = IIf(OptionButton1 = True, "X", "")
Range("J" & DerLig).Value = IIf(OptionButton2 = True, "X", "")
Range("K" & DerLig).Value = IIf(OptionButton3 = True, "X", "")
Range("L" & DerLig).Value = IIf(OptionButton4 = True, "X", "")
Range("M" & DerLig).Value = IIf(OptionButton5 = True, "X", "")
Range("N" & DerLig).Value = TextBox7.Value
MiseEnFormeLigne
Unload Me
MsgBox "L'article n°" & TextBox1 & " à été ajouté"
End If
If BoutonAjouter.Caption = "Valider l'Ajout" Then
For i = 1 To 7
For t = 1 To 4
For u = 1 To 2
With Controls("TextBox" & i)
.Value = ""
.Enabled = True
End With
Controls("OptionButton" & t) = False
Controls("OptionButton" & t).Enabled = True
Controls("CommandButton" & u).Enabled = True
Next u
Next t
Next i
With ComboBox1
.Visible = IIf(BoutonAjouter.Caption = "Ajouter", True, False)
.Value = ""
End With
With ComboBox2
.Value = ""
.Enabled = True
End With
End If
'Call sub_Tri
UserForm1.Show 0
End Sub
D'avance MERCI à tous
je viens une fois de plus faire appel à vos connaissances car je peche sur un probleme de code à inserer au niveau des Option Button.
J'ai 3 Boutons d'options qui me renvoient une certaine valeur aprés validation par un bouton dans un TxtBox lorsqu'ils sont cochés.
Je cherche en fait à renvoyer cette valeur dans une cellule de ma base par la commande Range. cela marche que pour une valeur.
En fait avec la méthode Range
Range("F" & DerLig).Value = IIf(OptionButton1 = True, "1002", "")
je ne renvoie que la valeur 1002 et moi j'aimerai pouvoir faire :
Range("F" & DerLig).Value = IIf(OptionButton2 = True, "1004", "")
Range("F" & DerLig).Value = IIf(OptionButton3 = True, "1002", "")
J'ai également essayé avec la méthode SelectCase mais au dela de 2 Case je n'y arrive pas.
Si quelqu'un avait une astuce à mon probléme, ce searit sympa.
Voici mon bout de code.
Private Sub BoutonAjouter_Click()
Dim DerLig As String
TextBox1.Visible = IIf(BoutonAjouter.Caption = "Ajouter", True, False)
BoutonAjouter.Caption = IIf(TextBox1.Visible = True, "Valider l'Ajout", "Ajouter")
If BoutonAjouter.Caption = "Ajouter" Then
BoutonSupprimer.Enabled = False
BoutonImprimer.Enabled = False
BoutonModifier.Enabled = False
If TextBox1 = "" Then ComboBox1.Visible = True: Exit Sub
DerLig = Sheets("BOM").Range("B" & Cells.Rows.Count).End(xlUp).Row + 1
Range("B" & DerLig).Value = TextBox1.Value
Range("C" & DerLig).Value = ComboBox2.Value
Range("D" & DerLig).Value = TextBox2.Value
Range("E" & DerLig).Value = TextBox3.Value
Range("F" & DerLig).Value = IIf(OptionButton1 = True, "1002", "")
Range("F" & DerLig).Value = IIf(OptionButton2 = True, "1004", "")
Range("F" & DerLig).Value = IIf(OptionButton5 = True, "1002", "")
Range("G" & DerLig).Value = CDate(TextBox5.Value)
Range("H" & DerLig).Value = CDate(TextBox6.Value)
Range("I" & DerLig).Value = IIf(OptionButton1 = True, "X", "")
Range("J" & DerLig).Value = IIf(OptionButton2 = True, "X", "")
Range("K" & DerLig).Value = IIf(OptionButton3 = True, "X", "")
Range("L" & DerLig).Value = IIf(OptionButton4 = True, "X", "")
Range("M" & DerLig).Value = IIf(OptionButton5 = True, "X", "")
Range("N" & DerLig).Value = TextBox7.Value
MiseEnFormeLigne
Unload Me
MsgBox "L'article n°" & TextBox1 & " à été ajouté"
End If
If BoutonAjouter.Caption = "Valider l'Ajout" Then
For i = 1 To 7
For t = 1 To 4
For u = 1 To 2
With Controls("TextBox" & i)
.Value = ""
.Enabled = True
End With
Controls("OptionButton" & t) = False
Controls("OptionButton" & t).Enabled = True
Controls("CommandButton" & u).Enabled = True
Next u
Next t
Next i
With ComboBox1
.Visible = IIf(BoutonAjouter.Caption = "Ajouter", True, False)
.Value = ""
End With
With ComboBox2
.Value = ""
.Enabled = True
End With
End If
'Call sub_Tri
UserForm1.Show 0
End Sub
D'avance MERCI à tous