Comment afficher différents prix à la suite

Caroline -  
 Caroline -
Bonjour,
Dans ma feuil1, J'ai en A1 un Nom, B1 Date ,C1 Prix donc A2 "Rose",B2 "28/03/09",C2 "26,00€"
Je voudrai dans ma feuil 2 avoir A2 "Rose",B1 "28/03/09",B2 26,00€
Lorsque je change en feuil1 la date en B2 "29/03/09" et Prix en C2 "24,00€"
Cela s'affiche en C1 "29/03/09" et C2 "24,00€", et ainsi de suite.
Donc , à chaque fois que je rentre sur ma feuil1 en B2 une nouvelle date avec en C2 un nouveau prix ; j'ai quant même un suivi sur ma feuil2.
Merci

8 réponses

wilfried_42 Messages postés 912 Statut Contributeur 245
 
Bonjour

question : quelle est ta version d'excel parce qu'une version inférieure à 2007 te limite à 255 colonnes, autrement dit 254 mises à jour de prix... alors qu'il est possible de faire autrement....

@ te lire
0
Caroline
 
Bonjour, Wilfried_42
J'ai excel 2007.
Merci
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

voici un fichier exemples : https://www.cjoint.com/?dFhvTVjd7a
dans ce fichier il y a une macro (Extension : xlsm)
pour voir la macro :
sur le nom de l'onglet Feuil1 click droit et choisir Visualiser le code

Tu peux ajouter des lignes j'ai fait selon ce que j'ai compris
0
Caroline
 
Bonjour, Wilfried_42
Je ne comprend pas le fichier ci-joint , je ne peux le télécharger?
Merci
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

j'arrive à le télécharger, sur quel excel cherches tu à le lire ? il a été écrit sur Excel 2007 avec Macros extension xlsm.
0
Caroline
 
Bonjour,
J'ai excel 2007
Je ne comprends pas comment je dois-faire? , je vous ai mis un document montrant là où j'ai un problème.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijn1afF7K.doc
Merci
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

je ne comprends pas, je viens de refaire la manip, ça fonctionne chez moi

voici la Macro à mettre dans le code de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, d As Range
    If Not Intersect(Target, Range("B:C")) Is Nothing Then
        Set c = Sheets("Feuil2").Range("A:A").Find(Range("A" & Target.Row).Value)
        If c Is Nothing Then
            Set c = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(2, 0)
            c.Value = Range("A" & Target.Row)
        End If
        Set d = Sheets("Feuil2").Range("A" & c.Row & ":XFD" & c.Row).Find(Range("B" & Target.Row).Value)
        If d Is Nothing Then Set d = Sheets("Feuil2").Range("XFD" & c.Row).End(xlToLeft).Offset(0, 1)
        d.Offset(0, 0) = Range("B" & Target.Row)
        d.Offset(0, 0).NumberFormat = "dd/mm/yyyy"
        d.Offset(1, 0) = Range("C" & Target.Row)
    End If
End Sub

en gras le nom de la feuille de suivi de tarifs à adapter
0
Caroline
 
Bonjour,
Je ne sais pas comment faire pour lire votre classeur quand je suis sur l'onglet ci-joint avec votre lien en bleu de votre classeur, mais en attendant je vais essayer cette macro.
Merci. ;o) A+
0
Caroline
 
Bonjour, Wilfried_42

Ah! Oui! la macro fonctionne bien, je suis contente.

Sur la feuil1, B2 ma date est 31/03/09 que je voudrai avoir dans la feuil2 en B3 et non 31/03/2009;
Sur la feuil1,C2 monétaire est 124,00€ que je voudrai avoir dans la feuil2 en ligne 4 et non 124;
Afficher les dates du récent au plus ancien.

Merci, ça commence à prendre forme.
A+ ;-)
0

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

Posez votre question
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

voici une nouvelle mouture
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, d As Range
    If Not Intersect(Target, Range("B:C")) Is Nothing Then
        Set c = Sheets("Feuil2").Range("A:A").Find(Range("A" & Target.Row).Value)
        If c Is Nothing Then
            Set c = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(2, 0)
            c.Value = Range("A" & Target.Row)
        End If
        Set d = Sheets("Feuil2").Range("A" & c.Row & ":XFD" & c.Row).Find(Range("B" & Target.Row).Value)
        If d Is Nothing Then
            Sheets("Feuil2").Range("B" & c.Row & ":B" & c.Row).Insert shift:=xlToRight
            Sheets("Feuil2").Range("B" & c.Row + 1 & ":B" & c.Row + 1).Insert shift:=xlToRight
            Set d = Sheets("Feuil2").Range("B" & c.Row)
        End If
        d.Offset(0, 0) = Range("B" & Target.Row)
        d.Offset(0, 0).NumberFormat = "dd/mm/yy"
        d.Offset(1, 0) = Range("C" & Target.Row)
        d.Offset(1, 0).NumberFormat = "# ### ##0.00 €"
    End If
End Sub
0
Caroline
 
Bonjour, wilfried_42
et non, la nouvelle macro a bien bloquée et je ne sais pas pourquoi?
je vous montre où dans le document en dessous :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijKcqlCb0.xls
Je vous remercie pour cette aide bien précieuse et instructive.
A+ :-)
0
Caroline
 
Re bonjour, après le fichier, pourquoi pas une copie de l'écran de mon problème sous word.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijpe5Bfzx.doc
Voili, voilou.. A tout à l'heure. ;-)
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

c'est normal, tu me dis dans ton 2 eme post que tu travailles sur 2007, alors je te fais tout sur 2007. c'est pour cela que tu chargeais un fichier bizarre au début, je t'envoyais un xlsm (version 2007)

pour que cela fonctionne sur une version inférieure, il faut modifier :XFD par :IV
0
Caroline
 
Bonjour, wilfried_42
Je ne vois pas où se trouve "il faut modifier :XFD par :IV ",et pour mettre un classeur en .xslm sur ci-joints.fr; il faut le mettre en zip pour que je puisse le télécharger , ce sera plus simple.
Merci
0
wilfried_42 Messages postés 912 Statut Contributeur 245 > Caroline
 
re

je t'ai donné une solution dans le post 14, finalemant en dessous de celui-ci
0
Caroline
 
Bonjour, wilfried_42
Je vois qu'on demandé, en tout cas, la macro fonctionne à la perfection.
J'ai modifié le XFD par IV de la macro. Ça marche du tonnerre , merci à vous , je ne m'en serai pas sortie.
Oui!!! ;-)
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
re:

voici une nouvelle version qui fonctionnera sur version 2000,2002,2003,2007
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, d As Range
    If Not Intersect(Target, Range("B:C")) Is Nothing Then
        Set c = Sheets("Feuil2").Range("A:A").Find(Range("A" & Target.Row).Value)
        If c Is Nothing Then
            Set c = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(2, 0)
            c.Value = Range("A" & Target.Row)
        End If
        Set d = Sheets("Feuil2").Range(c.row,1 & ":" & c.row).Find(Range("B" & Target.Row).Value)
        If d Is Nothing Then
            Sheets("Feuil2").Range("B" & c.Row & ":B" & c.Row).Insert shift:=xlToRight
            Sheets("Feuil2").Range("B" & c.Row + 1 & ":B" & c.Row + 1).Insert shift:=xlToRight
            Set d = Sheets("Feuil2").Range("B" & c.Row)
        End If
        d.Offset(0, 0) = Range("B" & Target.Row)
        d.Offset(0, 0).NumberFormat = "dd/mm/yy"
        d.Offset(1, 0) = Range("C" & Target.Row)
        d.Offset(1, 0).NumberFormat = "# ### ##0.00 €"
    End If
End Sub
0
Corrine
 
Bonjour, wilfried_42
Je le dis ,c'est grâce aux intervenants de CCM que j'apprends sur excel car je suis une "amateur".
Petit à petit, je découvre excel en suivant ce forum.
Je viens de découvrir ce post et j'aimerai s'il vous est possible de l'adapter à mon classeur.
Je pense que cela peut convenir pour un suivi de prix.
Lorsque je remplie ma feuille Formulaire, je voudrai obtenir un suivi de prix
En prenant en compte dans la feuille Formulaire ->Nom_Ville,Nom_Magasin,Nom_Produit,Date et soit le prix au kilo,soit le prix au Litre, soit le prix à la pièce.
http://www.cijoint.fr/cjlink.php?file=cj200904/cijAGqYpgl.xls
Merci
0
rachid_04 Messages postés 213 Statut Membre 32
 
Bonjour

si je comprend bien ce probleme ; vous pouvez utiliser la fonction RechercheV , il suffit donc de l'appliquer sur la feuil 2 ,

comme ça quand tu saisi le nom , les autres paramètres seront automatiquement modifier selon la feuil 1
-------------
0
Corrine
 
Bonjour, rachid_04
Je n'ai jamais utilisé la RechercheV comment l'appliquer dans mon classeur.
Merci rachid_04, A+~
0