VBA Case à cocher et modification d'une cellule

Bonjour,

Je dispose de deux feuilles, "Tableau_intervention" et "Intervention".

Dans "Tableau_intervention", j'ai un bouton qui ouvre une UserForm. J'y ai mis une case à cocher pour savoir si les opérations ont été réalisées.

Je récupère la référence et la date depuis la feuille active

Cependant, je ne vois pas comment lier la case à cocher à une cellule en VBA.

Quand on clique sur la case à cocher, cela doit remplir la colonne D de la feuille "Intervention". Pour cela, il faut se servir des valeurs des textbox "Réf." et "Date".

Merci d'avance pour votre aide.

80travaux.xlsm (26.29 Ko)

Bonjour,

J'ai fais ça mais je comprend pas pourquoi ça ne marche pas...

Private Sub CheckBoxRealisationOp_Click()
Dim curseur
curseur = 4
While Sheets("Intervention").Range("A" & curseur).Value <> ""
    curseur = curseur + 1
    If Sheets("Intervention").Range("A" & curseur).Value = TextBoxDate.Value & Sheets("Intervention").Range("B" & curseur).Value = TextBoxNumConvoyeur.Value Then
        Sheets("Intervention").Range("D" & curseur + 1).Value = "OUI"
    End If
Wend
End Sub

Merci de t'intéresser à mon problème.

Mais en effet, ça ne fonctionne pas :s

Bah en faite

Sheets("Intervention").Range("A" & curseur).Value 

vaut ""

et pareil pour

 Sheets("Intervention").Range("B" & curseur).Value 

je comprend pas pk

Salut,

Samas tu as écris :

If Sheets("Intervention").Range("A" & curseur).Value = TextBoxDate.Value & Sheets("Intervention").Range("B" & curseur).Value = TextBoxNumConvoyeur.Value Then

Je ne sais pas si cela a changé avec les versions supérieur de Excel.

Mais dans une condition en VBA (xls2003) tu utilises AND ou OR, si tu utilise & cela ne fonctionne pas (enfin avec ma version excel). & sert a concatener des chaines de caractères.

Pour le reste, je suis dubitatif comme toi...Et je cherche....

Bigdams

Ah oui... oups, sinon j'ai toujours pas trouver le pb...

Re,

Je viens de refaire le test et moi cela fonctionne : Excel 2003...

Par contre la condition ne marchait pas, quand je lis la valeur dans un champ date je ne peux pas la comparer a une chaine (depuis la forms), donc en mettant cstr devant comme ca :

If CStr(Sheets("Intervention").Range("A" & curseur).Value) = TextBoxDate.Value And (Sheets("Intervention").Range("B" & curseur).Value = TextBoxNumConvoyeur.Value) Then

Cela fonctionne, mais cela n'explique pas pourquoi

Sheets("Intervention").Range("A" & curseur).Value ="" sur ton pc.

Juste une question, en debug tu ne rentres donc pas dans ta boucle while ?

Bigdams

Si, mais je ne rentre pas dans le if par contre

Essaye avec Csrt car si tu rentres dans le while c'est que Sheets("Intervention").Range("A" & curseur).Value <> ""

Donc tu récupères du texte.

Bigdams

J'ai trouvé pourquoi ça ne fonctionnait pas.

J'ai corrigé deux choses :

  • And à la place de &
  • CDate(TextBoxDate.Value) à la place de TextBoxDate.Value

Et ça fontionne

Voilà le code complet fonctionnel :

Private Sub CheckBoxRealisationOp_Click()
Dim curseur
curseur = 4
While Sheets("Intervention").Range("A" & curseur).Value <> ""
    curseur = curseur + 1
    If Sheets("Intervention").Range("A" & curseur).Value = CDate(TextBoxDate.Value) And Sheets("Intervention").Range("B" & curseur).Value = TextBoxNumConvoyeur.Value Then
        Sheets("Intervention").Range("D" & curseur).Value = "OUI"
    End If
Wend
End Sub

Par contre mets le curseur à 3 au début, ou bien mets curseur = curseur +1 à la fin

En effet, bien vu.

Rechercher des sujets similaires à "vba case cocher modification"