Écrire dans une cellule d'une autre feuille sous condition

Résolu/Fermé
vie66 Messages postés 10 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 21 décembre 2014 - Modifié par jordane45 le 22/12/2014 à 10:43
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 22 déc. 2014 à 14:53
Bonjour,

j'ai cherché, mais je ne trouve pas ce que je cherche.

Voilà mon problème

j'ai un UserForm où il y a checkBox et j'aimerais dire que lorsque ce checkBox est coché, d'inscrire les données de 2 TextBox sur une autre feuille (dans le même chiffrier)

Exemple:

Si TextBox = "X"
Sélectionner la feuille journal
inscrire le nom et le prénom

Est-ce que je pourrais l'inscrire directement sous ce code (ci-bas) ou il faut que je fasse un autre If, car le CheckBox est dans un Userform et il écrit le "X" dans la feuil1

Exemple :
If CheckBox_journal.Value = True Then
        Cells(TOTO, 8) = "X"
End IF

Merci et Joyeuses Fêtes à tous
A voir également:

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 déc. 2014 à 10:04
Bonjour Vie, bonjour le forum,

Pas compris d'où sortait ton "TOTO" ?!...
Essaie comme ça en adaptant les variable LI1, LI2 et COL1, COL2 à ton cas :

Dim O As Object

Set O = Sheets("journal")
If CheckBox_journal.Value = True Then
    O.Cells(LI1, COL1) = TextBox1.Value
    O.Cells(LI2, COL2) = TextBox2.Value
Else
    O.Cells(LI1, COL1) = ""
    O.Cells(LI2, COL2) = ""
End If


0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
22 déc. 2014 à 10:47
@ThauTheme : Plutôt que d'utiliser OBJECT .. utilises directement WORKSHEET

Dim maFeuille As Worksheet
Set maFeuille = Sheets("Feuil1")
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 déc. 2014 à 14:02
Pas d'accord sur le plutôt ! D'ailleurs on retrouve dans les macros événementielles du composant ThisWorkbook :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

Non pas des Worksheet mais des Object...
Les deux fonctionnent. Et si ça peut faire plaisir qui Jordane qui semble aimer en rajouter juste se faire mousser tu peux très bien utiliser Worksheet...
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
22 déc. 2014 à 10:45
Bonjour,

Il suffit d'indiquer la Feuille où tu souhaites écrire devant ton RANGE...
If CheckBox_journal.Value = True Then
        Sheets("Nom_de_la_feuille").Cells(TOTO, 8) = "X"
End IF


0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
Modifié par jordane45 le 22/12/2014 à 14:18
@Thautheme ....

Et si ça peut faire plaisir qui Jordane qui semble aimer en rajouter juste se faire mousser

Ce n'est pas une question de se faire mousser ....
Mais sais tu seulement que VBA, lorsque tu utilises WORKSHEET .. le Visual Basic Editor
te propose l'autocomplétion ...


alors qu'avec OBJECT ..non !!???

EDIT :
Les deux fonctionnent.

Certe ... mais tant qu'à le faire bien.....


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 déc. 2014 à 14:47
Ho merci grand maître Jordane de m'apprendre ce qu'est l'autocomplétion !

En ce point tu as raison, avec Object ça ne marche pas.
Mais j'ai lu sur un autre forum un débat passionnant sur l'utilisation de Object comparée à Sheet ou Worksheet et j'ai finalement opté pour utiliser Object ( si je retrouve le lien je le rajouterai ici).

Ce que je trouve intéressant que pour quelqu'un qui aime les choses bien faites tu viennes dire :

Il suffit d'indiquer la Feuille où tu souhaites écrire devant ton RANGE...

If CheckBox_journal.Value = True Then
        Sheets("Nom_de_la_feuille").Cells(TOTO, 8) = "X"
End IF


C'est aussi pour cela que j'ai dit que c'était surtout pour ce faire mousser car je ne comprends pas les personnes qui n'apportent rien de plus à une réponse sinon des critiques envers la réponse elle-même mais rien de constructif.

Que Worksheet permette l'autocomplétion c'est vrai je l'admet mais qu'il soit préférable de l'utiliser plutôt que Object je n'en suis pas convaincu... Quand à l'utilisation d'une variable pour désigner un onglet je trouve cela plutôt mieux structuré que de répéter chaque fois Sheets("Non_de_ta_feuille").

Mais comme on dit mon bon Jordanne, les coups et les douleurs hein...
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022
22 déc. 2014 à 14:53
Comme on en est à qui à la plus grande...(bouche... (oui je l'aime bien cette phrase...))...
je dirais que :

Quand à l'utilisation d'une variable pour désigner un onglet je trouve cela plutôt mieux structuré que de répéter chaque fois Sheets("Non_de_ta_feuille").

- >Oui ... si on prend le soin de réécrire le plus "parfaitement" possible le code du demandeur... il est certain qu'on n'utiliserait pas la syntaxe que j'ai proposé (concernant le nom de la feuille).

Il suffit d'indiquer la Feuille où tu souhaites écrire devant ton RANGE..

- >Mais que, là .. je répondais simplement à la question posée .. à savoir :

Est-ce que je pourrais l'inscrire directement sous ce code (ci-bas)
0