XL 2010 Transfert / annulation de données de feuil1 vers feuil2 via Case à cocher

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour à toutes & à tous

Je galère depuis hier suite à une demande formulée sur le site. Il s'agit de transférer (copier) une ou des phrases depuis la feuille1vers la feuille2 via une CheckBox si sa valeur est à "True" et de la ou les supprimer lorsque la valeur est à "False. J'ai bien réussi à l'aide d'une case à cocher ActiveX mais uniquement pour une phrase.
Sur ce, j'ai tenté de poursuivre en essayant d'appliquer la méthode sur plusieurs phrases via un Select Case mais en vain. Si je parviens à mettre en œuvre la première partie (copier les données vers la feuil2), il n'en est pas de même pour leur effacement.
J'ai essayé avec des contrôle ActiveX et des contrôles de formulaire mais je dois accepter mon incompétence.

Je vous remercie d'avance de l'attention que vous voudrez porter à ce fichier et vous souhaite un bon appétit.
@+ Eric c
 

Pièces jointes

  • Essai Eric c.xlsm
    26.2 KB · Affichages: 14
Solution
Bonjour à tous,

Un essai. Le code est dans le module de la feuille "Feuil1" :
VB:
Option Explicit
Const coche = 253, decoche = 168

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ref, derlig&, t, i&
   If Target.Count = 1 And Target.Column = 1 And Target.Offset(, 1) <> "" Then
      Target = IIf(Asc(Target) = coche, Chr(decoche), Chr(coche))
      Target.Offset(, 1).Select
      ref = Target.Offset(, 1).Value
      With Sheets("Feuil2")
         derlig = .Cells(.Rows.Count, "a").End(xlUp).Row + 1
         t = .Range("a1").Resize(derlig)
         Select Case Asc(Target.Value)
            Case coche
               derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
               If derlig = 1 And .Cells(1, "a") = "" Then...

M92_

XLDnaute Junior
Bonsoir,

Voici une approche non-vba :

1 - Dans la feuille "DONNEES", tu insères une colonne juste avant tes contrôles de formulaires et tu associes/lies chacun d'eux à la cellule Ax en face (Clic droit sur le CF / Format de contrôle / Contrôle / Cellule liée ..)

1635549737611.png


2 - Dans la feuille "IMPRESSION LISTE", tu saisies la formule ci-dessous dans une cellule de ton choix, ensuite tu tires 4 lignes vers le bas et enfin tu valides ta formule par CTRL+MAJ+ENTREE (car il s'agit d'une formule matricielle)

=SIERREUR(INDEX(DONNEES!C$1:C$4;PETITE.VALEUR(SI(DONNEES!$A$1:$A$4=VRAI;LIGNE(DONNEES!$A$1:$A$4));LIGNE()));"")

Les valeurs sont copiées et collées vers la première ligne vide de la plage choisie dans ta feuille cible.

Cdlt,
M92
 

Pièces jointes

  • 1635549719393.png
    1635549719393.png
    6.8 KB · Affichages: 15
  • 1635549852679.png
    1635549852679.png
    12 KB · Affichages: 14

Phil69970

XLDnaute Barbatruc
Bonjour @Eric C, @M92_

Je te propose beaucoup plus simple et facile à gérer

Dans cet exemple on contrôle l'utilisation du clic droit et du double clic)
1==> Un double clic dans la colonne A ==> le double clic met un X dans la cellule ==> Re double clic le X disparait
2==> Un clic droit dans la colonne A ==> la ligne disparait et va se copier sur l'autre feuille

*Merci de ton retour

@Phil69970
 

Pièces jointes

  • Gestion des X.xlsm
    25.5 KB · Affichages: 1

Eric C

XLDnaute Barbatruc
Bonjour le fil

Je m'excuse d'avoir très mal exprimé la demande hier midi (l'appel de l'assiette peut être...Lol).
Je résume :
- Soit une feuille1. En cellule A2, une case à cocher (de formulaire ou activeX) précède la cellule B2 qui contient des données (peut être y aura t'il des données par la suite dans la ou les cellules (C2, D2 …).
- Action sur la case à cocher (=True). La cellule sélectionnée (ds notre exemple B2 (voire C2, D2 … puisqu'il y aura peut être d'autres données dans les cellules voisines)) est COPIEE / COLLEE vers la feuille2 (celluleA1 ou peut importe A2 ..).
- Nouvelle action sur la case à cocher (=False), la cellule copiée de la feuille 2 est effacée.

Je vous joint un exemple basique de ce que je veux et que je voudrais au plus simple, reproduire sur X cases à cocher (qui peuvent être remplacées par des "X" via un double click ou click droit).

@Phil69970 - Désolé de mes explications tortueuses du post#1 - Le click droit COUPE / COLLE vers la feuille2.
@M92_ - Je regarde tout à l'heure mais je m'y perds déjà en VBA alors je ne te dis pas en formules...
Merci à vous deux d'avoir pris de votre temps et d'avoir prêté attention à mon post.

Bon ouikand à toutes & à tous
@+ Eric c
 

Pièces jointes

  • CheckBox Marie.xlsm
    24.6 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Un essai. Le code est dans le module de la feuille "Feuil1" :
VB:
Option Explicit
Const coche = 253, decoche = 168

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ref, derlig&, t, i&
   If Target.Count = 1 And Target.Column = 1 And Target.Offset(, 1) <> "" Then
      Target = IIf(Asc(Target) = coche, Chr(decoche), Chr(coche))
      Target.Offset(, 1).Select
      ref = Target.Offset(, 1).Value
      With Sheets("Feuil2")
         derlig = .Cells(.Rows.Count, "a").End(xlUp).Row + 1
         t = .Range("a1").Resize(derlig)
         Select Case Asc(Target.Value)
            Case coche
               derlig = .Cells(.Rows.Count, "a").End(xlUp).Row
               If derlig = 1 And .Cells(1, "a") = "" Then derlig = 1 Else derlig = derlig + 1
               Target.Offset(, 1).Copy .Cells(derlig, "a")
            Case decoche
               For i = UBound(t) - 1 To 1 Step -1
                  If t(i, 1) = ref Then .Cells(i, "a").Delete xlShiftUp
               Next i
         End Select
      End With
   End If
End Sub
 

Pièces jointes

  • Eric C- copier si coché- v1.xlsm
    18.7 KB · Affichages: 7

Eric C

XLDnaute Barbatruc
Re le fil
Bonjour mapomme - Pile poil, toujours aussi réactif - Merci pour moi et pour marie771 - Dernière question : pourrait on imaginer que d'autres cellules (Cx, Dx, Ex....) viendront prendre place à la suite de Bx ? Si oui, où comment modifier le code (qui ne concerne que Bx). Bonne après-midi à toi.
@+ Eric c
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
imaginer que d'autres cellules (Cx, Dx, Ex....) viendront prendre place à la suite de Bx ? Si oui, où comment modifier le code (qui ne concerne que Bx)

Voir la version v2.
Une nouvelle constante en début de code définit les colonnes à copier :
Exemple : Const Colonnes = "b:g" ou Const Colonnes = "b:b"
 

Pièces jointes

  • Eric C- copier si coché- v2.xlsm
    21.3 KB · Affichages: 12

Eric C

XLDnaute Barbatruc
Re le fil

@ mapomme - Désolé pour mon ancien post que j'ai supprimé car j'avais mal interprété le code (c'était l'heure de l'apéro (que je n'ai pas pris) et j'ai cafouillé dans les colonnes. Non tout est parfait et je t'en remercie grandement.

@+ Eric c
 

Eric C

XLDnaute Barbatruc
@ M92_ : j'ai bien fait tout ce que m'a indiqué dans le plus grand respect mais aucune données ne vient s'intégrer dans la feuille "IMPRESSION LISTE" ? - J'ai bien les "Vrai ou Faux" mais pas de transfert de valeurs ?
Je te remercie quand même.
@+ Eric c
 

Discussions similaires

Réponses
5
Affichages
733

Statistiques des forums

Discussions
315 094
Messages
2 116 155
Membres
112 671
dernier inscrit
Sylvain14