Insérer le nom des checkboxs cochées dans une feuille excel

jennalex

XLDnaute Nouveau
Bonjour à tous et à toutes,

J'ai un soucis. Je remplis une feuille EXCEL grâce à une Userform.
Cette Userform possède une frame dans laquel il ya 8 checkbox.

Mon souhait serait que lorsque que je clique su ok, le nom de chaque checkbox coché soit inséré dans le tableau colonne 6, les uns en dessous des autres.

J'ai écrit un petit programme qui ne fonctionne pas :
Private Sub CBok_Click()

With Worksheets(1)
derlign = .Range("a65536").End(xlUp).Row + 1
.Cells(derlign, 1).Value = CBclient.Value 'Nom du client
.Cells(derlign, 2).Value = TBcodearticle.Value 'Code article
.Cells(derlign, 3).Value = TBof.Value 'of
.Cells(derlign, 4).Value = TBind.Value 'Désignation


''''''''''''''''''''''''''''Choix du setceur'''''''''''''''''''''''''''''''''

If OBstructure.Value = True Then
Cells(derlign, 5) = OBstructure.Caption
End If

If OBmecanosoude.Value = True Then
Cells(derlign, 5) = OBmecanosoude.Caption
End If


If OBchaudronnerie.Value = True Then
Cells(derlign, 5) = OBchaudronnerie.Caption
End If

''''''''''''''''''''''''''''Choix du type d'opération(s)'''''''''''''''''''''

If CheckBox9.Value = True Then Cells(derlign, 6) = CheckBox9.Caption
If CheckBox10.Value = True Then Cells(derlign, 6) = CheckBox10.Caption
If CheckBox11.Value = True Then Cells(derlign, 6) = CheckBox11.Caption
If CheckBox12.Value = True Then Cells(derlign, 6) = CheckBox12.Caption
If CheckBox13.Value = True Then Cells(derlign, 6) = CheckBox13.Caption
If CheckBox14.Value = True Then Cells(derlign, 6) = CheckBox14.Caption
If CheckBox15.Value = True Then Cells(derlign, 6) = CheckBox15.Caption
If CheckBox16.Value = True Then Cells(derlign, 6) = CheckBox16.Caption


End With



Actuellement il ne m'insère que le nom de la checkbox la plus lointaine coché.
Je m'explique :

Si je coche checkbox 9, 10, 13
Il insère seulement le nom de la checkbox13

Quelqu'un peut-il m'aider? svp?

Merci d'avance

Jennifer
 

Pierrot93

XLDnaute Barbatruc
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour,

normal tu initialise la dernière ligne en début de procédure, alors qu'en fait elle doit changer au fur et à mesur que des données sont envoyées vers la feuille... modifie peut être toutes tes lignes de la sorte :

Code:
If CheckBox10.Value = True Then Cells(.Range("a65536").End(xlUp).Row + 1
, 6) = CheckBox10.Caption

bon après midi
@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour Jennalex, Pierrot, bonjour le forum,

Ou peut être le numéro de colonne à changer : 6, 7, ... 12. Ne faudrait-il pas mettre un point (.) devant les Cells (.Cells) ?
 
G

Guest

Guest
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour,

Si je comprend la question:

remplacer les lignes:
Code:
If CheckBox9.Value = True Then Cells(derlign, 6) = CheckBox9.Caption
If CheckBox10.Value = True Then Cells(derlign, 6) = CheckBox10.Caption
If CheckBox11.Value = True Then Cells(derlign, 6) = CheckBox11.Caption
If CheckBox12.Value = True Then Cells(derlign, 6) = CheckBox12.Caption
If CheckBox13.Value = True Then Cells(derlign, 6) = CheckBox13.Caption
If CheckBox14.Value = True Then Cells(derlign, 6) = CheckBox14.Caption
If CheckBox15.Value = True Then Cells(derlign, 6) = CheckBox15.Caption
If CheckBox16.Value = True Then Cells(derlign, 6) = CheckBox16.Caption
Aparté: tu as oublié les . devant les Cells

Par les lignes:

Code:
Dim i As Integer
For i = 9 To 16
   If Me.Controls("ChecBox" & i) Then .Cells(derlign, 6) = Me.Controls("ChecBox" & i).Caption
   derlign = derlign + 1
Next

Autre aparté: Ce n'est pas le nom des CheckBox (propriété .Name) que tu conserves mais leur propriété caption(texte affiché)

A+

Edition: Salut Robert:)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour le fil, bonjour le forum,

Au vu des autres résultats je me demande si ça serait pas plutôt :
Code:
If CheckBox9.Value = True Then .Cells(derlign, Application.Columns.Count).End(xlToLeft).Offset(0, 1) = CheckBox9.Caption
etc.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour le fil, bonjour le forum,

Bon Sang, mais c'est bien dur ! Je navet (accepté dans ce cas) que vite parcouru le problème de Jennalex mais c'est vous (Pierrot et toi) qui avez raison...
 

jennalex

XLDnaute Nouveau
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour à tous!

Aprés plusieurs essais, je réalisé un mixe de vos solution qui marche plutôt bien. Seul soucis :

Si je coche check9 : son nom (caption) s'inscrit dans les lignes 1 ET 9
Si je coche check9 et check11 ensuite et que je rappuie sur ok

le nom de check9 s'inscrit dans la ligne 2,
" " " " 11 s'inscrit dans la ligne 4,

puis il réécrit le nom de check 11 ligne10

J'ai beaucoup de mal à comprendre la logique du programme.
Pourquoi réécrit-il les noms? et pourquoi il effectue un décalage?


'''''''''''''''''''''''''''Annuler les données'''''''''''''''''''''''''''

Private Sub CBannuler_Click()

Dim derlign As Integer
ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).EntireRow.Select
Selection.Delete Shift:=xlUp

End Sub

''''''''''''''''''''''''''''''''' ok'''''''''''''''''''''''''''''''''''''

Private Sub CBok_Click()

With Worksheets(1)
derlign = .Range("A65536").End(xlUp).Row + 1
.Cells(derlign, 1).Value = CBclient.Value 'Nom du client
.Cells(derlign, 2).Value = TBcodearticle.Value 'Code article
.Cells(derlign, 3).Value = TBof.Value 'of
.Cells(derlign, 4).Value = TBind.Value 'Désignation


''''''''''''''''''''''''''''Choix du type d'opération(s)'''''''''''''''''''''
Dim i As Integer
For i = 9 To 16


If Me.Controls("CheckBox" & i) Then .Cells(derlign, 6) = Me.Controls("CheckBox" & i).Caption
derlign = derlign + 1
Next i

If CheckBox9.Value = True Then .Cells(derlign, 6) = CheckBox9.Caption
If CheckBox10.Value = True Then .Cells(derlign, 6) = CheckBox10.Caption
If CheckBox11.Value = True Then .Cells(derlign, 6) = CheckBox11.Caption
If CheckBox12.Value = True Then .Cells(derlign, 6) = CheckBox12.Caption
If CheckBox13.Value = True Then .Cells(derlign, 6) = CheckBox13.Caption
If CheckBox14.Value = True Then .Cells(derlign, 6) = CheckBox14.Caption
If CheckBox15.Value = True Then .Cells(derlign, 6) = CheckBox15.Caption
If CheckBox16.Value = True Then .Cells(derlign, 6) = CheckBox16.Caption



End With


End Sub



Cordialement,

jenn
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour le fil, bonjour le forum,

Jenn puisque tu boucles sur toutes les checkboxes avec :
Code:
For i = 9 To 16
If Me.Controls("CheckBox" & i) Then .Cells(derlign, 6) = Me.Controls("CheckBox" & i).Caption
derlign = derlign + 1
Next i
ces lignes sont en trop (donc à supprimer de ton code) :
Code:
If CheckBox9.Value = True Then .Cells(derlign, 6) = CheckBox9.Caption
If CheckBox10.Value = True Then .Cells(derlign, 6) = CheckBox10.Caption
If CheckBox11.Value = True Then .Cells(derlign, 6) = CheckBox11.Caption
If CheckBox12.Value = True Then .Cells(derlign, 6) = CheckBox12.Caption
If CheckBox13.Value = True Then .Cells(derlign, 6) = CheckBox13.Caption
If CheckBox14.Value = True Then .Cells(derlign, 6) = CheckBox14.Caption
If CheckBox15.Value = True Then .Cells(derlign, 6) = CheckBox15.Caption
If CheckBox16.Value = True Then .Cells(derlign, 6) = CheckBox16.Caption
Comprends, dans la boucle tu redéfinis derlign à chaque passage donc les Caption s'affichent ligne après ligne. Puis, sans boucle cette fois, tu réécris à nouveau la Caption de toutes les checkboxes mais sans actualiser la variable derlign donc tu te retrouves toujours avec, en dernière ligne, la Caption de la checkbox16...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insérer le nom des checkboxs cochées dans une feuille excel

Bonjour le fil, bonjour le forum,

Oui c'est exact esssaie comme ça :
Code:
For i = 9 To 16
If Me.Controls("CheckBox" & i) Then
     .Cells(derlign, 6) = Me.Controls("CheckBox" & i).Caption
     derlign = derlign + 1
End If
Next i
La variable derlign n'est actualisée que quand la checkbox est vrai
 
Dernière édition:

jennalex

XLDnaute Nouveau
Re : Insérer le nom des checkboxs cochées dans une feuille excel

yes! Merci Robert!

On se rapproche du but. Je vais encore travailler dessus car au bout de trois validation la dernière ligne est écrasée une fois sur deux!
Mais je ne perds pas espoir!^^
 

Discussions similaires

Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 325
Messages
2 087 304
Membres
103 513
dernier inscrit
adel.01.01.80.19