Insérer une valeur dans une cellule à partir d'un tableau annexe

Fermé
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 - 26 juil. 2021 à 16:01
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 - 29 juil. 2021 à 15:25
Bonjour,
Je souhaiterais trouver une formule pour une commande particulière : lorsque je rentre une valeur dans la cellule Q22, je souhaiterais qu'elle s'inscrive dans la cellule de la nouvelle ligne insérée, à savoir C5.
De même, je souhaiterais que la valeur rentrée dans la cellule Q23 s'inscrive en D5.
Cependant, je souhaiterais que la valeur que j'inscris en E5 s'inscrive en Q24.
Aussi, lorsque j'insère une nouvelle ligne dans le tableau "Cheval 1" je souhaiterais que les valeurs s'effacent dans le tableau jaune sans que ça n'efface les valeurs inscrites précédemment dans le tableau "cheval 1"
J'espère être assez claire car c'est difficile à expliquer.
En vous remerciant par avance,
Cordialement

https://www.cjoint.com/c/KGAoaUmHFDX
A voir également:

9 réponses

DjiDji59430 Messages postés 4149 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 27 novembre 2024 678
26 juil. 2021 à 16:18
Bonjour à tous,

Ce que tu veux, ça s'appelle un formulaire.
Soit en le construisant en VBA, soit en utilisant Données ==>formulaire.
Si tu ne le vois pas, il faut le mettre en passant par options==>personnaliser le ruban ==>tout . Tu cherches formulaire que tu ajoutes au groupe "données"


Crdlmt
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 26 juil. 2021 à 17:40
Bonjour,

mettre dans le module de la feuille 1 ce code qui se déclenchera au double clic dans les cellules Q22, Q23 et Q24:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("Q22:Q24")) Is Nothing Then
 If Target.Value = "" Then Exit Sub
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q22").Value
 Range("D" & Range("TOTAL1").Row - 1).Value = Range("Q23").Value
 Range("E" & Range("TOTAL1").Row - 1).Value = Range("Q24").Value
 End If
End Sub



je souhaiterais que les valeurs s'effacent dans le tableau jaune

Range("Q22:Q24").ClearContents


Voilà

0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
26 juil. 2021 à 20:38
Bonsoir,
Merci pour votre retour. J'ai essayé d'ajouter la formule dans le module de la feuille 1. Cependant, quand je double clique sur la cellule, rien ne se passe. Peut être que je me suis trompée quelque part.
Cordialement,

https://www.cjoint.com/c/KGAsMpDhBOX
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 juil. 2021 à 22:42
Il faut mettre le code a la place de:

Private Sub CommandButton1_Click()
If CommandButton1.Caption = "Afficher" Then
afficher
CommandButton1.Caption = "Masquer"
Else
masquer
CommandButton1.Caption = "Afficher"
End If
End Sub


c'est le module de la feuille1!
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
27 juil. 2021 à 08:07
Pour aller dans le module de la feuille se mettre sur la feuille et Faire Alt F11

Pour apprendre les bases de vba voir ceci:

https://silkyroad.developpez.com/VBA/DebuterMacros/

@+
0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
27 juil. 2021 à 16:44
Bonjour,
La formule fonctionne. Merci. Cependant, quand je souhaite réinsérer une ligne, un message s'affiche dans le module 1 :



En vous remerciant par avance,
Cordialement
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
27 juil. 2021 à 17:13
Je pense que le problème vient du fait qu'il n'y a que le 1er tableau dont la dernière ligne est rempli. Rempli toutes les dernière lignes de tous les tableaux

Voici un code pour remplir tous les tableaux.

A mettre dans le module de la Feuille1

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("Q22:U24")) Is Nothing Then 'plage cellule
 Dim cellule As Range
Range("Q22:U24").Select 'plage cellule
'on vérifie si toutes les cellules sont remplies
For Each cellule In Selection
If cellule = "" Then
MsgBox "La cellule: " & cellule.Address & " est vide, veuillez la remplir!", vbCritical, "Cellule vide" ' on quitte si cellule vide
Exit Sub
End If
Next cellule
'si toutes les cellules sont remplies on continue la procédure
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q22").Value
 Range("D" & Range("TOTAL1").Row - 1).Value = Range("Q23").Value
 Range("E" & Range("TOTAL1").Row - 1).Value = Range("Q24").Value
 'continuer le code pour les autres tableaux
 End If
 Range("Q22:U24").ClearContents ' on efface les données
End Sub


a toi de jouer

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
27 juil. 2021 à 17:51
J'ai rempli toutes les lignes du tableau mais le problème persiste.
Voici les messages qui apparaissent à l'écran :



0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
Modifié le 27 juil. 2021 à 17:53
Le fichier modifié : https://www.cjoint.com/c/KGBp0mOm8AX
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
Modifié le 27 juil. 2021 à 18:52
Il faut d'abord supprimer dans le Module1 :

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("Q22:Q24")) Is Nothing Then
 If Target.Value = "" Then Exit Sub
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q22").Value
 Range("D" & Range("TOTAL1").Row - 1).Value = Range("Q23").Value
 Range("E" & Range("TOTAL1").Row - 1).Value = Range("Q24").Value
 End If
End Sub


ensuite dans le module de la feuille1

j'ai donné comme exemple:

Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q22").Value
 Range("D" & Range("TOTAL1").Row - 1).Value = Range("Q23").Value
 Range("E" & Range("TOTAL1").Row - 1).Value = Range("Q24").Value



et toi tu mets:

 Range("B" & Range("TOTAL1").Row - 1).Value = Range("Q22").Value
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q23").Value
 Range("D" & Range("TOTAL1").Row - 1).Value = Range("Q24").Value


ce qui génère une erreur dans le module1 ici:

    Range("E" & Range("TOTAL1").Row - 1 & ":J" & Range("TOTAL1").Row - 1).SpecialCells(xlCellTypeConstants, 23).ClearContents  'efface les données garde les formules


car la cellule E est vide on ne peut rien effacer!

je viens de voir que cette ligne a été ajouté voir ceci:

https://forums.commentcamarche.net/forum/affich-37285828-cacher-une-ligne-apres-insertion#9

un autre problème dans le tableau jaune. En masquant les lignes il peut se trouver masqué

Donc voir tout cela

@+
0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
27 juil. 2021 à 20:08
J'ai modifié les éléments cités ci-dessus : le message d'erreur n'apparaît plus. Merci.
(Effectivement, j'ai du changer C/D/E pour B/C/D afin que mon calcul soit correct).

Cependant, lorsque j'insère une nouvelle ligne dans chaque tableau et que je remplis le tableau jaune, les données insérées dans ce dernier n'apparaissent pas dans les nouvelles lignes.

https://www.cjoint.com/c/KGBsfxzfkVX
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
27 juil. 2021 à 20:41
C'est normal tu es sur les lignes 25,26 et 27!!!!!!!!!!!!!!!
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
28 juil. 2021 à 11:42
Chaque fois que tu ajoutes une ligne ton tableau jaune descend.

Pour résoudre ce problème il faut déplacer ton tableau jaune en Q1:U3.

J'ai essayé cela fonctionne!

@+
0
sophie60400_1604
28 juil. 2021 à 14:09
Merci, je vais essayer
0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
28 juil. 2021 à 16:12
J'ai déplacé le tableau : le problème est résolu. Merci !
Cependant, j'ai une autre demande : je souhaiterais faire le travail inverse avec la mise. Lorsque j'insère la mise dans les tableaux principaux (en colonne E), je souhaiterais que cette dernière apparaissent dans le tableau jaune, à savoir : mise du tableau bleu dans la cellule Q3, mise tableau orange dans la cellule R3, etc.

J'ai essayé avec cette formule pour le tableau bleu mais ça ne fonctionne pas : Range("Q3").Value = Range("E" & Range ("TOTAL1").Row-1).Value

Cordialement,

https://www.cjoint.com/c/KGComx8MrNX
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
28 juil. 2021 à 16:26
A mettre dans le module de la feuille1


Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("Q1:Q3")) Is Nothing Then
 If Target.Value = "" Then Exit Sub
 Range("B" & Range("TOTAL1").Row - 1).Value = Range("Q1").Value
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q2").Value
 Range("B" & Range("TOTAL2").Row - 1).Value = Range("R1").Value
 Range("C" & Range("TOTAL2").Row - 1).Value = Range("R2").Value
 Range("B" & Range("TOTAL3").Row - 1).Value = Range("S1").Value
 Range("C" & Range("TOTAL3").Row - 1).Value = Range("S2").Value
 Range("B" & Range("TOTAL4").Row - 1).Value = Range("T1").Value
 Range("C" & Range("TOTAL4").Row - 1).Value = Range("T2").Value
 Range("B" & Range("TOTAL5").Row - 1).Value = Range("U1").Value
 Range("C" & Range("TOTAL5").Row - 1).Value = Range("U2").Value
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
 Range("Q3").Value = Range("E" & Range("TOTAL1").Row - 1).Value
  Range("R3").Value = Range("E" & Range("TOTAL2").Row - 1).Value
   Range("S3").Value = Range("E" & Range("TOTAL3").Row - 1).Value
    Range("T3").Value = Range("E" & Range("TOTAL4").Row - 1).Value
     Range("U3").Value = Range("E" & Range("TOTAL5").Row - 1).Value
End If
End Sub


Voilà se déclenche à chaque sélection dans la colonne E

@+
0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
28 juil. 2021 à 16:42
Merci, ça fonctionne correctement.

Enfin, pour rendre ce tableau plus fonctionnel, serait-il possible de remplacer la fonction "double clique" par un seul et même bouton qui actionnerait à la fois la première formule et la deuxième formule ?

Formule 1 :

"Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("Q1:Q3")) Is Nothing Then
If Target.Value = "" Then Exit Sub
Range("B" & Range("TOTAL1").Row - 1).Value = Range("Q1").Value
Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q2").Value
Range("B" & Range("TOTAL2").Row - 1).Value = Range("R1").Value
Range("C" & Range("TOTAL2").Row - 1).Value = Range("R2").Value
Range("B" & Range("TOTAL3").Row - 1).Value = Range("S1").Value
Range("C" & Range("TOTAL3").Row - 1).Value = Range("S2").Value
Range("B" & Range("TOTAL4").Row - 1).Value = Range("T1").Value
Range("C" & Range("TOTAL4").Row - 1).Value = Range("T2").Value
Range("B" & Range("TOTAL5").Row - 1).Value = Range("U1").Value
Range("C" & Range("TOTAL5").Row - 1).Value = Range("U2").Value
End If
End Sub"

Formule 2 :

"Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
Range("Q3").Value = Range("E" & Range("TOTAL1").Row - 1).Value
Range("R3").Value = Range("E" & Range("TOTAL2").Row - 1).Value
Range("S3").Value = Range("E" & Range("TOTAL3").Row - 1).Value
Range("T3").Value = Range("E" & Range("TOTAL4").Row - 1).Value
Range("U3").Value = Range("E" & Range("TOTAL5").Row - 1).Value
End If
End Sub"

En vous remerciant par avance,
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
28 juil. 2021 à 17:08
supprimer le code du module de la feuille1

Allez dans le module 1 et coller à la suite ceci:

Sub affichagejeu()
'Tableau jeu et cote
Range("B" & Range("TOTAL1").Row - 1).Value = Range("Q1").Value
 Range("C" & Range("TOTAL1").Row - 1).Value = Range("Q2").Value
 Range("B" & Range("TOTAL2").Row - 1).Value = Range("R1").Value
 Range("C" & Range("TOTAL2").Row - 1).Value = Range("R2").Value
 Range("B" & Range("TOTAL3").Row - 1).Value = Range("S1").Value
 Range("C" & Range("TOTAL3").Row - 1).Value = Range("S2").Value
 Range("B" & Range("TOTAL4").Row - 1).Value = Range("T1").Value
 Range("C" & Range("TOTAL4").Row - 1).Value = Range("T2").Value
 Range("B" & Range("TOTAL5").Row - 1).Value = Range("U1").Value
 Range("C" & Range("TOTAL5").Row - 1).Value = Range("U2").Value
End Sub
Sub affichagemise()
'tableau mise
Range("Q3").Value = Range("E" & Range("TOTAL1").Row - 1).Value
  Range("R3").Value = Range("E" & Range("TOTAL2").Row - 1).Value
   Range("S3").Value = Range("E" & Range("TOTAL3").Row - 1).Value
    Range("T3").Value = Range("E" & Range("TOTAL4").Row - 1).Value
     Range("U3").Value = Range("E" & Range("TOTAL5").Row - 1).Value
End Sub


mettre 2 boutons et affecter ces 2 macros.

J'ai mis 2 macros pour pouvoir saisir les mises après avoir rempli la nouvelle ligne.

Je ne comprends pas très bien le fonctionnement, mais avec cela tu pourras l'arranger à ta façon

@+
0
sophie60400_1604 Messages postés 27 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
29 juil. 2021 à 15:25
Merci beaucoup. Tout fonctionne !
0