Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Validation des données USERFORM

  • Initiateur de la discussion Initiateur de la discussion azalf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

azalf

XLDnaute Nouveau
Bonjour à Tous,

Je me permets de solliciter votre expertise sur VBA. Je me suis lancé mais là, je bloque. J'ai vraiment besoin d'aide.
Voilà mon Problème:

J'ai crée un userform pour remplir un classeur excel, mais impossible de pouvoir affecter les données après saisi. je souhaite mettre une condition à toutes les cases pour obliger à remplir de la manière la plus complète possible. Pour le Frame "réso", je souhaite que l'utilisateur ait la possibilité de choisir soit F,M ou E mais pas les trois en même temps et ce pour le coût que pour la technicité. Concernant les cases à cocher, je souhaite que la valeur "oui" soit affectée à la cellule correspondante.

Je compte vraiment sur vous

PJ: fichier

Merci d'avance
 

Pièces jointes

Re : Validation des données USERFORM

Bonjour azalf, laetitia90 🙂,

Uniquement pour les choix de coût et de technicité. J'ai ôté tout le code qui ne concerne pas ces choix. On utilise un module de classe nommé class_MesChekBox.

Il y a néanmoins une astuce: les chekbox ont été toutes renommées de la manière suivante:
  • De 100 à 129 (checkbox100 à chekbox129)
  • Les numéros des trois chekbox F,M,E "d'un même pseudo groupe" ont des numéros consécutifs (ex: checkbox100, checkbox101, checkbox102)
  • Le numéro des checkbox de la colonne F est un (multiple de 3) +1

Les codes utiles (finalement assez concis) se trouvent dans le module du userform COTATION_PN:
VB:
Option Explicit

Dim TableMesCheckbox() As New class_MesChekBox

Private Sub UserForm_Initialize()
Dim ctrl As Control, i As Long
  For i = 100 To 129
    Set ctrl = Me.Controls("CheckBox" & i)
    ReDim Preserve TableMesCheckbox(1 To i)
    Set TableMesCheckbox(i).CheckBoxEvents = ctrl
  Next i
End Sub

Ainsi que dans le module de class_MesChekBox:
VB:
Option Explicit

Public WithEvents CheckBoxEvents As msforms.CheckBox

Private Sub CheckBoxEvents_click()
Dim i As Long, j As Long, i0 As Long

If CheckBoxEvents.Value Then
  i0 = Right(CheckBoxEvents.Name, 3)
  Select Case i0 Mod 3
    Case 0
      i = i0 - 2: j = i0 - 1
    Case 1
      i = i0 + 1: j = i0 + 2
    Case 2
      i = i0 - 1: j = i0 + 1
  End Select
  COTATION_PN.Controls("CheckBox" & i).Value = False
  COTATION_PN.Controls("CheckBox" & j).Value = False
End If
End Sub
 

Pièces jointes

Dernière édition:
Re : Validation des données USERFORM

Bonjour, Mapomme, Laetitia90,

Merci pour votre contribution,
Laetitia90, j'avais déjà essayé la solution de "optionbutton" mais j'avais une seule possibilité par colonne. La solution de mapomme marche sans soucis.

Merci à vous. Cependant pourrions nous passer à l'étape sup s'il vous plait. L'affectation des données aux cellules correspondes. Désolé de vous embêter, je suis novice dans VBA.

Merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
38
Affichages
1 K
Réponses
5
Affichages
460
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…