Optionbutton dans Formulaire

Grenoble87

XLDnaute Nouveau
Pour commencer bonjour à tous!

Je n'est pas la possiblité de vous joindre un fichier car "ultra" confidentiel mais je vais vous exposer mon problème
le plus clairement possible.

Je développe un fichier client avec deux interfaces (Useform) et un tableau (Base de données)
La première useform me permet d'ajouter un client avec toutes les infos le concernant (via une multitude de textbox) et l'ajoute à la suite dans la base de données. Dans cette useform j'i ajouter 4 optionbutton pour affecter une couleur seulement sur la cellule "nom de l'entreprise" (Colonne A). Jusqu'ici pas de problème: la couleur choisi avec les optionsbutton se place bien dans la base de données.

Mon probléme concerne la deuxième useform qui me permet de rechercher et de modifier des clients existant avec une combobox regroupant tous les noms de client de la base de données et d'afficher les informations du client dans les textbox.
Toutes les infos remontent bien par contre:

Serait il possible, selon la couleur du client éxistant, de cocher la optionbutton automatiquement?
En gros:

Dans ma "Useform" modif et recherche, je selectionne "CLient1" (On va dire qu'il est BLEU)
dans la combobox. J'aimerais que la optionbutton1 (Qui correspond au client bleu) se coche automatiquement.

Merci par avance
 

Lone-wolf

XLDnaute Barbatruc
Re : Optionbutton dans Formulaire

Bonjour Grenoble87,

Regarde ci ça te convient.

Code:
Private Sub UserForm_Initialize()
    Dim i As Integer, n As Integer
 OptionButton1.BackColor = vbBlue
  OptionButton2.BackColor = vbGreen
 OptionButton3.BackColor = vbYellow
 OptionButton4.BackColor = vbRed
 
    With Sheets(1)
    For i = 2 To .Range("A65536").End(xlUp).Row + 1
        ComboBox1 = .Range("A" & i)
       If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem .Range("A" & i)
       If .Cells(i, 1).Interior.Color = vbBlue Then
       .Cells(i, 1).Font.Color = vbWhite
       Else
       .Cells(i, 1).Font.Color = vbBlack
       End If
    Next i
    End With
    
n = 0
For i = 1 To 4
n = n + 1
Me.Controls("OptionButton" & n).Value = False
Next i
Application.EnableEvents = False
TextBox1 = ""
Application.EnableEvents = True
End Sub

Private Sub ComboBox1_Change()
Dim n As Integer
With Sheets(1).Range("a2:a5")
    Set cel = .Find(ComboBox1, LookIn:=xlValues)
    If Not cel Is Nothing Then
        firstAddress = cel.Address
        TextBox1.Value = ComboBox1.Value
    n = 0
    For i = 1 To 4
    n = n + 1
    If TextBox1.Value = ComboBox1.Value And Me.Controls("OptionButton" & i).BackColor = cel.Interior.Color Then
          Me.Controls("OptionButton" & n).Value = True
          Else
          Me.Controls("OptionButton" & n).Value = False
          End If
             Next i
    End If
End With
End Sub

Private Sub CommandButton1_Click()
Dim n As Integer
TextBox1.Value = ComboBox1.Value
n = 0
For i = 1 To 4
n = n + 1
If Me.Controls("OptionButton" & n).Value = True Then
With Sheets(1).Range("a2:a5")
    Set cel = .Find(TextBox1, LookIn:=xlValues)
    If Not cel Is Nothing Then
        firstAddress = cel.Address
            cel.Interior.Color = Me.Controls("OptionButton" & n).BackColor
    End If
    If cel.Interior.Color = vbBlue Then
    cel.Font.Color = vbWhite
    Else
    cel.Font.Color = vbBlack
    End If
End With
End If
Next i
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets(1).Range("a2:a502")
.Interior.ColorIndex = xlNone
.Font.Color = vbBlack
End with
Application.DisplayAlerts = False
ActiveWorkbook.Save
End Sub

Mode d'emploi:
Sélectionne un client puis 1 OptionButton, clique sur CommandButton1 pour colorier les cellules. ferme le formulaire.
Ouvre le formulaire et sélectionne les clients pour voir les changements.


EDIT pour (job75): Bonjour Maître



A+ :cool:
 

Pièces jointes

  • Classeur1.xls
    69 KB · Affichages: 39
  • Classeur1.xls
    69 KB · Affichages: 36
  • Classeur1.xls
    69 KB · Affichages: 49
Dernière édition:

Discussions similaires

Réponses
3
Affichages
260

Statistiques des forums

Discussions
312 754
Messages
2 091 681
Membres
105 046
dernier inscrit
chadrack mbeke