|
|
|
|
Bonjour,
J'ai créer un document excel permettant de gérer des défauts. Pour faciliter le remplissage du tableau, j'ai créer un formulaire d'entrée dans lequel plusieurs informations sont rentrés et retransmise dans le tableau aprés validation.
Le problème est le suivant:
J'ai créer des cases à coché (ChekBox) avec les principaux défaut (chacun a son intitulé), et juste a côté un menu déroulant ou l'on doit choisir l'endroit du défaut.
je voudrais pouvoir reporter chaque défauts cochée ainsi que la localisation dans une seule cellue (en lsiting en fait)
Quelqu'un serait me renseigner sur la manière de faire? Car pour le moment il ne me met que "VRAI" ou "FAUX" dans la celluel, et rien d'autre.
Je précise que je suis novice, et utilise Excel pour faire ceci (recherche sur le net des truc et astuce pour y arriver)
Je vous remercie d'avance
Configuration: Windows XP - Excel 2003 Internet Explorer 7.0
Bonjour
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
If Ctrl.Value = True Then
cellule = Ctrl.Caption & ListBox '"endroit"
End If
End If
Next
Tu nous précise un peu pour aller plus loin. Toujours zen
|
Répondre à gbinforme
|
Bonjour
Private Sub CommandButton1_Click()
Dim cellule As String ' libellés choisis
Dim Ctrl As Control ' controles formulaire
cellule = "" ' initialisation libellés
For Each Ctrl In Me.Controls ' balayage des controles
If TypeOf Ctrl Is MSForms.CheckBox Then ' recherche des checkbox
If Ctrl.Value = True Then ' le checkbox est coché
' si nouvelle ligne ajout saut de ligne
If Not cellule = "" Then cellule = cellule & Chr(10)
' récupération libellé checkbox
cellule = cellule & "- " & Ctrl.Caption
' si pas de combobox associé suppression controle erreur
On Error Resume Next
If Not Me.Controls(Ctrl.Tag) < 0 Then ' si le combobox est choisi
cellule = cellule & " " & Me.Controls(Ctrl.Tag)
End If
On Error GoTo 0 ' remise controle erreur
End If
End If
Next
' mise en place des choix dans feuille
Sheets("Feuil1").Range("e2").Value = cellule
End Sub
C'est surtout un canevas pour te faire comprendre le fonctionnement et à toi de te l'approprier. Si tu as des questions sur le fonctionnement, surtout, n'hésites pas à les poser. Toujours zen
|
Bonjour
cellule = cellule & " " & Me.Controls(Ctrl.Tag) Dans "tag" tu as mis combobox2 par exemple et donc le contrôle du formulaire Me.Controls(Ctrl.Tag) va en fait chercher la même chose que si tu faisais Me.ComboBox2 mais cela permet à la fois de gérer la liaison et en plus d'avoir un code récursif qui traite toutes les ComboBox de façon transparente. Serais tu me conseiller un bon site internet Tu as déjà un bon site sur ta machine si tu fais F1 lorsque tu ne comprends par une fonction ou une propriété. Tu peux lire l'aide VBA et tu verras qu'elle est très instructive. Tu peux d'ailleurs le faire pour la propriété tag en faisant attention car elle est définie plusieurs fois et il faut prendre celle qui s'applique aux contrôles et qui en fait est une zone texte d'échange. Tu peux aussi regarder ceci ou cela ainsi que cela Par contre, une fois que je relance le formulaire... Pour cela ,il faut utiliser unload userform en plus de userform.hide qui ne fait que cacher. Si tu fais F1 sur hide, tu verras que tu aurais pu le trouver, dans "voir aussi" : c'est parfois un peu difficile d'accès mais lorsque l'on a compris la technique utilisée, c'est efficace. Bon courage et surtout n'hésites pas à poser des questions aussi judicieuses. Toujours zen |