Bonjour,
J'ai une feuille Excel où je saisie tous les jours des données et qui alimente une autre feuille qui garde toutes les valeurs du mois. Le problème est que dès que je change de jour, les données de la veille s'effacent.
Pourriez-vous m'aider à faire en sorte qu'elles restent ?
Merci d'avance.
PS: Actuellement ma deuxième feuille est alimentée seulement avec des fonctions SI
Bonjour Dréa et bienvenu sur XLD,
Avec des formules vous ne pourrez pas mémoriser des données passées.
J'ai bien peur qu'il vous faille passer par du VBA qui ira copier les valeurs en "dur". Si le VBA ne vous reboute pas.
Mai sans fichier test, difficile d'en dire plus.
Bonjour Dréa et bienvenu sur XLD,
Avec des formules vous ne pourrez pas mémoriser des données passées.
J'ai bien peur qu'il vous faille passer par du VBA qui ira copier les valeurs en "dur". Si le VBA ne vous reboute pas.
Mai sans fichier test, difficile d'en dire plus.
Bonjour et merci de me répondre!
Je ne suis pas du tout contre le VBA, j'ai essayé, mais débutant juste, je n'y parvient pas.
Je vous joint mon fichier.
En fait, les seules cellules qui sont remplies, sont : B9, F9, J9.... et alimentent le reste des tableaux des différentes feuilles.
Là où je bloque, c'est que ces cellules sont remplies tous les jours et renvoyées dans les tableaux correspondant des autres feuilles, mais dès que le jour change les données disparaissent de tous mes tableaux!
Suis-je assez claire ?
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 2 Then Exit Sub
If Not Intersect(Target, Range("A9:AH9")) Is Nothing Then
On Error GoTo Fin
If Target = "Nombre" Or Target = "" Then Exit Sub ' Exit si Cellule non concernée
NomFeuille = Cells(7, Target.Column) ' Les noms de feuilles sont cahchées sous les boutons en police blanche
With Sheets(NomFeuille)
Ind = Application.Match([DateEnCours], .[B:B], 0) ' Récupére la ligne de la feuille concernée où se trouve la date courante
.Cells(Ind, "C") = Target ' Ecrit la valeur sur cette ligne colonne C
End With
End If
Exit Sub
Fin:
MsgBox "Date non trouvée dans la feuille " & NomFeuille ' Message si date non trouvée dans la feuille
End Sub
la macro s'exécute lorsqu'on remplit une cellule de la ligne 9.
A noter que sous chaque bouton j'ai mis le nom de la feuille concernée pour simplifier ( et en police blanche ), donc si vous rajoutez un bouton pensez aussi à rajouter le nom.
Si la date n'est pas trouvée dans la feuille alors j'émets un message d'alerte.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 2 Then Exit Sub
If Not Intersect(Target, Range("A9:AH9")) Is Nothing Then
On Error GoTo Fin
If Target = "Nombre" Or Target = "" Then Exit Sub ' Exit si Cellule non concernée
NomFeuille = Cells(7, Target.Column) ' Les noms de feuilles sont cahchées sous les boutons en police blanche
With Sheets(NomFeuille)
Ind = Application.Match([DateEnCours], .[B:B], 0) ' Récupére la ligne de la feuille concernée où se trouve la date courante
.Cells(Ind, "C") = Target ' Ecrit la valeur sur cette ligne colonne C
End With
End If
Exit Sub
Fin:
MsgBox "Date non trouvée dans la feuille " & NomFeuille ' Message si date non trouvée dans la feuille
End Sub
la macro s'exécute lorsqu'on remplit une cellule de la ligne 9.
A noter que sous chaque bouton j'ai mis le nom de la feuille concernée pour simplifier ( et en police blanche ), donc si vous rajoutez un bouton pensez aussi à rajouter le nom.
Si la date n'est pas trouvée dans la feuille alors j'émets un message d'alerte.