XL 2010 Garder (mémoriser)une valeur de cellule

Okaingni

XLDnaute Nouveau
j'ai aussi une préoccupation, Dans le fichier ci dessous
Chaque semaine j'aurai a rentrer les kilométrages actuels (km actuel) cellule G7
la semaine change en fonction de la date

je souhaite que la valeur de la cellule G7 en fonction des dates ci dessous
26/06/2020 4345 KM
30/06/2020 4389 KM
08/07/2020 4445 KM
soit maintenu dans le second tableau dans les cellules H14;I14 et J14 sans être effacée
D'avance je vous remercie pour le support.
 

Fichiers joints

Dudu2

XLDnaute Impliqué
Bonjour,
Je vois bien ton problème qui est de garder la valeur présente si le =SI de la formule retourne FAUX.
En Excel on ne peut pas faire une formule qui fait référence à sa cellule (référence circulaire) et dans un =SI on ne peut pas dire non plus "ne fait rien" et c'est bien dommage !

Il n'y a pas de solution, même en bidouillant une fonction personnalisée, on est toujours en référence circulaire. Il faut que tu trouves un autre moyen pour garder ces valeurs.

Par exemple, dans le tableau résultat (à mettre aussi en tableau structuré pour simplifier), en transformant les formules en valeurs lorsque le n° de semaine de la ligne titre est < n° de semaine en H3 (en VBA Cellule.Value = Cellule.Value) par une macro qui se déclenche à chaque changement du numéro de semaine en H3. Si la Macro passe avant les formules en bloquant les calculs, sinon <=.

Et pour les formules, je trouve plus simple que le RECHERCHEV:
=SI($H$3=H13;INDEX(Tableau1[km actuel];EQUIV($G14;Tableau1[Id];0));"")
Un affaire de goût !
 
Dernière édition:

GALOUGALOU

XLDnaute Impliqué
bonjour Okaingni bonjour dudu2 bonjour le forum
une question
les cellules H14;I14 et J14 sont elles figées, ou sont-elles appelées à évoluer ? devenir semaine 29, 30, 31 etc
cordialement
galougalou
 

job75

XLDnaute Barbatruc
Bonjour Okaingni, Dudu2, GALOUGALOU,

Je pense que le problème est pris à l'envers.

C'est plutôt en M7 N7 O7 etc... qu'il faut entrer manuellement les kilométrages, voyez le fichier joint.

Et en G7 entrer la formule :
Code:
=RECHERCHE(H$3;$6:7)
qui se propage vers le bas.

A+
 

Fichiers joints

Dernière édition:

Okaingni

XLDnaute Nouveau
Bonjour,
Je vois bien ton problème qui est de garder la valeur présente si le =SI de la formule retourne FAUX.
En Excel on ne peut pas faire une formule qui fait référence à sa cellule (référence circulaire) et dans un =SI on ne peut pas dire non plus "ne fait rien" et c'est bien dommage !

Il n'y a pas de solution, même en bidouillant une fonction personnalisée, on est toujours en référence circulaire. Il faut que tu trouves un autre moyen pour garder ces valeurs.

Par exemple, dans le tableau résultat (à mettre aussi en tableau structuré pour simplifier), en transformant les formules en valeurs lorsque le n° de semaine de la ligne titre est < n° de semaine en H3 (en VBA Cellule.Value = Cellule.Value) par une macro qui se déclenche à chaque changement du numéro de semaine en H3. Si la Macro passe avant les formules en bloquant les calculs, sinon <=.

Et pour les formules, je trouve plus simple que le RECHERCHEV:
=SI($H$3=H13;INDEX(Tableau1[km actuel];EQUIV($G14;Tableau1[Id];0));"")
Un affaire de goût !
Bonjour Dudu2
Je tiens a te remercier mais je me retrouve avec un message d'erreur. peux-tu le faire dans un tableau. Merci d'avance.
 

Okaingni

XLDnaute Nouveau
Bonjour Galougalou
La valeur qui apparaîtra soit dans les cellules H14;I14 et J14 doit etre figée et cela quand la semaine change.
les semaines évoluerons en fonction du changement de la date. C'est juste pour élucider ma préoccupation que je me suis arrêté a 3 semaine (26; 27 et 28).
 

Okaingni

XLDnaute Nouveau
bonjour Okaingni bonjour dudu2 bonjour le forum
une question
les cellules H14;I14 et J14 sont elles figées, ou sont-elles appelées à évoluer ? devenir semaine 29, 30, 31 etc
cordialement
galougalou
Bonjour Galougalou
La valeur qui apparaîtra soit dans les cellules H14;I14 et J14 doit etre figée et cela quand la semaine change.
les semaines évoluerons en fonction du changement de la date. C'est juste pour élucider ma préoccupation que je me suis arrêté a 3 semaine (26; 27 et 28)
 

Okaingni

XLDnaute Nouveau
Bonjour Okaingni, Dudu2, GALOUGALOU,

Je pense que le problème est pris à l'envers.

C'est plutôt en M7 N7 O7 etc... qu'il faut entrer manuellement les kilométrages, voyez le fichier joint.

Et en G7 entrer la formule :
Code:
=RECHERCHE(H$3;$6:7)
qui se propage vers le bas.

A+
Bjr Job 75, Merci il répond un tout petit peu a ma préoccupation, est il possible de le faire si les deux tableaux ne sont pas sur la même feuille de calcul?
 

Dudu2

XLDnaute Impliqué
La solution de Job75 est simple et ne nécessite pas de code. Mais bon, on ne connait pas les contraintes opérationnelles liées au reports des km des véhicules... peut-être que ce n'est pas dans la logique de saisir toutes la valeurs en Tableau1 sauf Km actuel en Tableau 2 selon le n° de semaine ?

Quoiqu'il en soit, la solution complexe réside dans la transformation des formules en constantes pour les semaines passées et le placement des formules pour la semaine présente.
Donc à part étendre le tableau, y a rien à faire sinon saisir la date pour que la chose s'accomplisse.
 

Fichiers joints

Dernière édition:

GALOUGALOU

XLDnaute Impliqué
re le fil
libre interprétation par rapport à ce que j'ai compris de la problématique, figer les valeurs semaine par semaine au fur et à mesure des saisies dans la colonne G, agent par agent.
dans la feuil2 les 52 semaines
dans la feuil1 un bouton macro
la macro identifie la semaine sélectionnée en feuil1, et enregistre dans la feuil2, les valeurs de la colonne G (feuil1) agent par agent.
la macro
VB:
Sub mise_a_jour()
Dim F1 As String
Dim F2 As String
Dim I As Long
Dim COL As Integer
F1 = Sheets("Feuil1").Name
F2 = Sheets("Feuil2").Name
Sheets(F2).Select
LI1 = Sheets(F1).Cells(36000, 1).End(xlUp).Row
LI2 = Sheets(F2).Cells(36000, 1).End(xlUp).Row
For I = 2 To LI1
For COL = 2 To 53
For ligne = 3 To LI2


  If Sheets(F2).Cells(2, COL) = Sheets(F1).Cells(3, 8) Then
  If Sheets(F2).Cells(ligne, 1) = Sheets(F1).Cells(I, 1) Then

  Sheets(F2).Cells(ligne, COL) = Sheets(F1).Cells(I, 7)
  
ligne = ligne + 1

End If
End If
Next
Next
Next
MsgBox ("modifications effectuées")
End Sub
ps la liste des agents (ou véhicule) de la feuil2 n'est pas mise à jour par la macro. la macro recopie les valeurs uniquement si les noms saisis sont totalement identiques.
cordialement
galougalou
 

Fichiers joints

GALOUGALOU

XLDnaute Impliqué
bonjour Okaingni bonjour le fil

pour être totalement raccord avec la demande de okaingni, la macro du #12 adapté à la feuil1, avec un deuxième bouton, "mise à jour dans cette feuille". la mise à jour a lieu uniquement sur les 3 numéros de semaine. (macro à adapter dans un autre classeur si le principe est différent (plus de n° de semaine)
en fonction des n° de semaine l'information est capturée et figée.
toute suppression par l'opérateur du n° de semaine en titre de colonne doit entrainer la suppression des valeurs associées.
il n'y a pas de mise à jour sur id , celui ci doit être rigoureusement identique en colonne A et en colonne G
j'ai gardé le principe du #12, par conséquence le classeur présente deux solutions.
rien par formule tout par vba
cordialement
galougalou
 

Fichiers joints

Dudu2

XLDnaute Impliqué
1593592284265.gif la troupe des Solutionneurs,
Je crois qu'on a perdu trace de Okaingni.
En tous cas merci GALOUGALOU et Job75 (et Dudu2 1593592344914.gif ) pour le temps passé pour vos contributions et fichiers 1593592311418.gif , c'était bien cool d'avoir de vos nouvelles 1593592557848.gif .
@+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas