Remplir 3 cellules fixes avec valeurs de 8 Textbox (conditions)

Guigui

XLDnaute Occasionnel
Bonjour,

Voici mon probleme.
J'ai dans un USF, 8 Textbox avec pour chacun un checkbox.

Je n'autorise que 3 checkbox avec la valeur true pour transferer les valeurs des 3 textbox "cochés" dans 3 cellules de ma feuille
Ex:
Si j'ai les checkbox1,2,3 de cochés
je souhaite remplir
Emplacement "1" avec la valeurs du textbox1
Emplacement "2" avec la valeurs du textbox2
Emplacement "3" avec la valeurs du textbox3

Ca j'arrive à le programmer.
Le probleme si pose si le cas suivant se produit :

Checkbox1,5 8 sont cochés
Comment avoir :
Emplacement "1" avec la valeur du textbox1
Emplacement "2" avec la valeur du textbox5
Emplacement "3" avec la valeur du textbox8

... En faite peut importe les 3 checkbox cochés ..

Je vous joint un fichier pour exemple

Merci par avance
 

Pièces jointes

  • exemple.xls
    58.5 KB · Affichages: 60
  • exemple.xls
    58.5 KB · Affichages: 61
  • exemple.xls
    58.5 KB · Affichages: 65

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Remplir 3 cellules fixes avec valeurs de 8 Textbox (conditions)

Bonsoir Guigui,

Un essai dans le fichier joint. La constante ordre indique l'ordre dans lequel examiner les TextBox pour l'écriture dans les trois cellules de la feuille Feuil1.

le code dans le module du UserForm:
VB:
Option Explicit

Private Sub CheckBox6_Click()
  If CheckBox6 Then CheckBox1 = False
End Sub

Private Sub CheckBox1_Click()
  If CheckBox1 Then CheckBox6 = False
End Sub

Private Sub CheckBox7_Click()
  If CheckBox7 Then CheckBox2 = False
End Sub

Private Sub CheckBox2_Click()
  If CheckBox2 Then CheckBox7 = False
End Sub

Private Sub CheckBox8_Click()
  If CheckBox8 Then CheckBox3 = False
End Sub

Private Sub CheckBox3_Click()
  If CheckBox3 Then CheckBox8 = False
End Sub

Private Sub CommandButton1_Click()
Const Ordre = "6,1,7,2,8,3,4,5"
Dim DanscetOrdre, cpt&, i&, coches(1 To 8) As String

DanscetOrdre = Split(Ordre, ",")
cpt = 0
For i = 1 To 8
  If Controls("checkbox" & DanscetOrdre(i - 1)) Then
    cpt = cpt + 1
    coches(cpt) = Controls("TextBox" & DanscetOrdre(i - 1))
  End If
Next i

If cpt > 3 Then
  MsgBox ("MAXI 3 COCHES")
  Exit Sub
Else
  With Sheets("Feuil1")
    .Range("C4") = coches(1)
    .Range("F4") = coches(2)
    .Range("I4") = coches(3)
  End With
  Unload Me
End If

End Sub
 

Pièces jointes

  • Remplir cellules fixes avec valeurs de 8 Textbox v1.xls
    69 KB · Affichages: 72

Guigui

XLDnaute Occasionnel
Re : Remplir 3 cellules fixes avec valeurs de 8 Textbox (conditions)

Bonsoir Mapomme,

Wow .. c'est magnifiquement réfléchis ! Merci j'ai pu adapter à mon projet facilement.
Une question cependant. Quel est l'utilité du caractère "&" dans la déclaration de variable ?

Autre point, le verrou des checkbox m’empêche de mettre les 2 checkbox d'une ligne en "false". As tu une idée ?
(cocher une coche ou l'autre, interdire 2 coches en meme temps, autorisé 0 coche)

Merci encore pour ton aide
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Remplir 3 cellules fixes avec valeurs de 8 Textbox (conditions)

(re)Bonsoir Giugui,

(...) Quel est l'utilité du caractère "&" dans la déclaration de variable ? (...)

L'utilité du caractère & est l'économie de code. Placer un & à la fin du nom d'une variable quand on la déclare signifie qu'elle sera du type Long. "Dim toto&" est équivalent à "Dim toto as Long". D'autres caractères peuvent être utiliser: $ -> String, % -> Integer, ! -> Single, # -> Double.

(...) Autre point, le verrou des checkbox m’empêche de mettre les 2 checkbox d'une ligne en "false". As tu une idée ? (cocher une coche ou l'autre, interdire 2 coches en meme temps, autorisé 0 coche) (...)

Aucune case cochée est déjà autorisée !
Si une case est cochée sur une ligne, re-cliquer dessus place les deux case en non cochées.
 
Dernière édition:

Guigui

XLDnaute Occasionnel
Re : Remplir 3 cellules fixes avec valeurs de 8 Textbox (conditions)

Hmm Ok merci pour cette info
J'en ai appris aussi une belle, supprimer le "= true" quand on verifie la valeur d'un checkbox ! :)

Autant pour moi concernant les coches. j'avais mal testé.

Merci encore.

Slts
 

Discussions similaires

Réponses
4
Affichages
176

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813