Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier une donnée pour créer un historique

J

Jerome

Guest
Bonjour,

Je voulais savoir si c'était possible ou pas de faire en sorte qu'une donnée tapée dans une cellule ou deux, soit recopiée sur une autre feuille dans un tableau et à chaque fois qu'on entre une nouvelle donnée, celle ci soit recopiée dans le tableau mais dans la ligne d'en dessous ?

cela afin de créer un historique des données entrées.

Je ne pense pas que cela soit possible mais qui ne demande rien n'a rien...

Merci,

Jerome
 
J

jerome

Guest
Bonjour tout le monde,

Je vais encore vous embeter avec mon probleme, désolé :-/

Voilà, j'aimerais savoir si en plus de recopier les cellules dans une autre feuille,

en peu lorsque qu'il copie une donnée dans une cellule B4 par exemple, il crée en plus une formule dans la cellule E4 ( =B4-B3 ) pour faire la différence entre la valeur de la donnée en B4 et celle en B3.

Donc si B3 = 50000 et que l'on copie la valeur 80000 dans la cellule B4,

il doit afficher 30000 dans la cellule E4.


Et à chaque fois qu'il ajoute une ligne il incrémente la valeur des lignes, donc losque l'on ajoute une donnée dans B5 (95000 par exemple), il faut que la cellule E5 ai comme valeur B5-B4 soit 15000,

et ainsi de suite...


J'espere que c'est assez compréhensible et surtout faisable :-/ car j'ai vraiment du mal avec ça, pour l'insant la seule façon que j'ai trouvé pour faire ce calcul c'est de copier dans toutes les cellules de la colonne E cette formule et ce n'est pas tres pratique pour réutiliser les résultats car à la 1ere ligne vide il m'affiche un nombre négatif (logique, car 0-X ça donne -X ) et j'ai besoin de faire un calcul derriere et ce nombre négatif ma fausse tout. :-(


Merci pour votre aide,

Jerome
 
M

Michel_M

Guest
Bonjour Jérome,



Si tu utilises les formules, tu peux éviter le désagrément avec un si

suivant les calculs derrière
=si(B4="";"";B4-B3)
ou
=si(B4="";0;B4-B3)


Michel
 
@

@+Thierry

Guest
Bonjour Jérome, Michel, le Forum

Et si on veut faire écrire la Formule par VBA on peut faire au choix :

With WSCible
.Cells(lig, 4) = WSSource.Range("B1")
.Cells(lig, 3) = WSSource.Range("A1")
If lig > 1 Then
.Cells(lig, 5).Formula = "=D" & lig & "-D" & lig - 1
End If
.Range(.Cells(lig, 3), .Cells(lig, 5)).Borders.Weight = xlThin
End With

ou encore le résultat directement
With WSCible
.Cells(lig, 4) = WSSource.Range("B1")
.Cells(lig, 3) = WSSource.Range("A1")
If lig > 1 Then
.Cells(lig, 5) = .Cells(lig, 4) - .Cells(lig - 1, 4)
End If
.Range(.Cells(lig, 3), .Cells(lig, 5)).Borders.Weight = xlThin
End With


Bon Aprèm
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…