Transformation

Bonjour,

Je vous sollicite une 2°fois pour mon problème.

Voila le problème : j’ai une BdD « commande » dans laquelle les « quantités » sont stockées de la plus récente (B2) vers la plus ancienne ($B) c'est-à-dire que quand il ya une nouvelle entrée elle se fait en B2 et la commande qui était en B2 passe en B3.ainsi de suite…

Je voudrais avoir une autre colonne dans laquelle les même quantités soient classées dans l’ordre inverse c à d de la plus ancienne vers la plus récente.

J’espère être assez clair et pas trop brouillant.

Ci-joint un fichier exemple

Un grand merci d’avance

Bonjour

Essaye en E2 :

=SI(NB($E$1:E1)>=NB($B$2:$B$11);"";INDEX($B$2:$B$11;NB($B$2:$B$11)-LIGNES($1:1)+1))

Amicalement

Nad

Bonjour,

Ci-joint, ton fichier ... à tester ...

A+

11transformation.xlsx (14.37 Ko)

Bonsoir,

Je vous remercie énormément de vous êtes pencher sur mon problème.

Concernant la solution de NAD cela fonctionne mais pas exactement.

La formule fonctionne parfaitement si la nouvelle entrée se faisait a la dernière ligne or la nouvelle entrée se fait à la 1° ligne.

Ci-joint le même fichier mais avec des couleurs pour essayer d’être un peu plus explicite ; je l’espère.

Encore merci d’avance.

Une Simple Question: comment fais-tu une nouvelle saisie ?

A+

Bonsoir,

la saisie se fait par une macro qui sauvegarde dans la BdD

Amicalement

latef1991 a écrit :

Bonsoir,

la saisie se fait par une macro qui sauvegarde dans la BdD

Amicalement

OK ... Mais comment la macro modifie ton tableau ?

Est-ce que la première ligne est écrasée ?

ou

Est-ce que la macro déplace l'ensemble du tableau vers le bas ?

A+

Re

Si ta macro insère des cellules en colonnes A et B en décalant vers le bas, il suffit de faire appel à la colonne et non à une plage

=SI(NB($E$1:E1)>=NB($B:$B);"";INDEX($B:$B;NB($B:$B)-LIGNES($1:1)+2))

Dans ton fichier, tu as validé en matricielle ; ce n'est pas la peine.

Amicalement

Nad

Bonsoir NAD,

Merci pour ta solution qui fonctionne parfaitement sur le fichier exemple simplifier que j'ai envoyer.

Par contre dés que j'ai installer ta formule dans le fichier d'origine elle me fait une solution inverse c a d au lieu de me recopier les cellules sur les meme lignes elle recopie en partant du bas.

je ressaye pour voir ou est mon erreur et je te reecris

A+

Re

Autrement, puisque tu as déjà des macros, je te propose le fichier suivant que tu pourras adapter facilement

Nad

Bonsoir,

ton fichier n'est pas arriver!!!

Autrement concernant ta formule le probleme est que les données d'origine sont recuperees par une formule qui est incrementée sur plusieurs lignes mais la ou il n'y a pas de données ta formule considere que la cellule contient un zero et donc decale ta formule du nombre de cellules contenant l'incrementation

Y a t-il une solution autrement j'aimerais bien avoir aussi ton fichier avec la macro.

Amicalement

Re

Il est en place ; j'étais en train de le modifier quand tu as écris.

Nad

Edit : à la lecture de ton dernier message et à cause des formules, modifie le code

Sub CopiTri()
Dim Derlg As Integer

Derlg = Range("A65536").End(xlUp).Row

    Range("A2:B" & Derlg).Copy
    Range("D2").PasteSpecial Paste:=xlPasteValues
    Range("D2:E" & Derlg).Sort Key1:=Range("D2")

With Range("D2")
    .Value = 1
    .AutoFill Destination:=Range("D2:D" & Derlg), Type:=xlFillSeries
End With

Range("D2:E" & Derlg).Borders.Value = 1

End Sub

Bonsoir,

apres ajustement par rapport a mon fichier,la macro fonctionne exactemement comme la fonction excel c à d qu'elle considere que les fonctions incrementées qui n'ont pas encore reçu des données la macro les considere comme des zeros et le tableau est malheuresement decalé du nombre de lignes contenant les fonctions incrementées.

A+

Re

As-tu lu mon edit plus haut ?

Si le problème persiste, peux-tu joindre un fichier représentatif de ce que tu as réellement

Nad

TRES GRAND MERCI A TOI NAD

probleme résolu

a bientot et encore merci

Rechercher des sujets similaires à "transformation"