OVH Cloud OVH Cloud

checkbox malicieuse...

1 réponse
Avatar
Deedooz
Bonjour,

Certains diront que je me complique la vie, mais c'est plus fort que moi, il
faut que je comprenne ce qui ne tourne pas rond !
Je m'explique :
Dans une feuille de mon classeur (feuil4) j'ai un tableau en B31:G50
Dans ce tableau sont insérées des données issues d'un filtre élaboré... donc
le nombre de lignes remplies varie de rien à 20.
En face de chacune de ces lignes j'ai un checkbox qui se coche ou non
automatiquement en fonction d'un autre critère défini dans ma feuille.
Je souhaite copier la valeur (texte) de mes cellules C31 à C50 le cas
échéant de ma feuil4 vers les dernieres cellules non vides de la colonne E
d'une autre feuille en cliquant sur un bouton OK placé dans ma feuille 4.

Voici mon code :

Private Sub Cmd_valid_click()
Dim c, f As Integer
Dim d As Object
Dim LaPremiereDispo

'*******defini la feuille de destination*********
If Range("R28") < 1 Or Range("R28") > 12 Then
Exit Sub
End If
c = Range("R28").Value + 4
Set d = Application.Sheets(c + 4)

LaPremiereDispo = d.Range("E65536").End(xlUp).Offset(1, 0).Row

'******copie les valeurs du tableau de la feuille 4 dont la case en face est
cochée ******
f = 1
While f < 20

If Feuil4.OLEObjects("checkbox" & f).Value2 = True Then
d.Range("E" & LaPremiereDispo).Value2 = Feuil4.Range("C" & f + 30).Value2
LaPremiereDispo = d.Range("E65536").End(xlUp).Offset(1, 0).Row
Else
d.Range("E" & LaPremiereDispo).Value2 = ""
End If
f = f + 1
Wend
End Sub

Le problème c'est qu'il me copie bien les données dans la feuille désirée,
dans les cellules désirées, mais pas uniquement les valeurs des
lignes cochées, mais aussi les autres (tout le tableau de la feuille 4 quoi)

Quelqu'un peut-il m'aider à ouvrir les yeux parce que la ils sont bien
collés !

Merci d'avance

1 réponse

Avatar
Deedooz
Bon je viens de voir d'ou venait mon erreur : cela venait de la ligne

If Feuil4.OLEObjects("checkbox" & f).Value2 = True Then

a remplacer par

If Feuil4.OLEObjects("checkbox" & f).Object.Value = True Then

Décidement.....




"Deedooz" a écrit dans le message de
news:
Bonjour,

Certains diront que je me complique la vie, mais c'est plus fort que moi,
il

faut que je comprenne ce qui ne tourne pas rond !
Je m'explique :
Dans une feuille de mon classeur (feuil4) j'ai un tableau en B31:G50
Dans ce tableau sont insérées des données issues d'un filtre élaboré...
donc

le nombre de lignes remplies varie de rien à 20.
En face de chacune de ces lignes j'ai un checkbox qui se coche ou non
automatiquement en fonction d'un autre critère défini dans ma feuille.
Je souhaite copier la valeur (texte) de mes cellules C31 à C50 le cas
échéant de ma feuil4 vers les dernieres cellules non vides de la colonne E
d'une autre feuille en cliquant sur un bouton OK placé dans ma feuille 4.

Voici mon code :

Private Sub Cmd_valid_click()
Dim c, f As Integer
Dim d As Object
Dim LaPremiereDispo

'*******defini la feuille de destination*********
If Range("R28") < 1 Or Range("R28") > 12 Then
Exit Sub
End If
c = Range("R28").Value + 4
Set d = Application.Sheets(c + 4)

LaPremiereDispo = d.Range("E65536").End(xlUp).Offset(1, 0).Row

'******copie les valeurs du tableau de la feuille 4 dont la case en face
est

cochée ******
f = 1
While f < 20

If Feuil4.OLEObjects("checkbox" & f).Value2 = True Then
d.Range("E" & LaPremiereDispo).Value2 = Feuil4.Range("C" & f + 30).Value2
LaPremiereDispo = d.Range("E65536").End(xlUp).Offset(1, 0).Row
Else
d.Range("E" & LaPremiereDispo).Value2 = ""
End If
f = f + 1
Wend
End Sub

Le problème c'est qu'il me copie bien les données dans la feuille désirée,
dans les cellules désirées, mais pas uniquement les valeurs des
lignes cochées, mais aussi les autres (tout le tableau de la feuille 4
quoi)


Quelqu'un peut-il m'aider à ouvrir les yeux parce que la ils sont bien
collés !

Merci d'avance