AFFICHAGE AUTOMATIQUE DES DONNEES

Le
elodie005
Bonsoir,

Voilà je voudrais pouvoir trouver le moyen de faire la chose
suivante :

Dans la feuille 1, mes données sont présentés de la façon suivante =
:

A B C
Objet Constituants Prix

Voiture Volant 45
Pneus 100
Carrosserie 1500

Lampe Ampoule 1
Fil éléctique 2


Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
un Objet, la colonne B et C se remplissent automatiquement avec les
constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
C1 on obtient 1 et en C2, 2).

Avec une fonction EQUIV je n'arrive afficher que le premier
constituant et le prix correpondant.

Avez-vous une solution ?

Merci d'avance pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21523552
Bonjour,

Suppose que ta feuille d'origine où sont tes données s'appelle "sheet2"
et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veux
que s'inscrive automatiquement le contenu de la colonne B et C en
rapport avec l'expression tapée en colonne A.

Dans le module feuille où doivent s'afficher automatiquement les données,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
données d'origine dans la procédure.

'-----------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, Ligne As Variant, DerLig As Long
Dim Nb As Long, B As Long, Sh As Worksheet

''Adapte le nom de la feuille d'origine des données
Set Sh = Worksheets("Sheet2")

Set Rg = Intersect(Target, Range("A:A"))

If Not Rg Is Nothing Then
If Rg.Cells.Count > 1 Then Exit Sub
Nb = Range("A65536").End(xlUp).Row
Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
If IsNumeric(Ligne) Then
DerLig = Ligne + 1
Do While Range("A" & DerLig) = ""
DerLig = DerLig + 1
If DerLig > Nb Then Exit Do
Loop

With Sh
Application.EnableEvents = False
.Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
Application.EnableEvents = True
End With
Else
MsgBox "Expression inexistante dans la feuille source des données."
End If
End If
End Sub
'-----------------------------------------------







"elodie005"
Bonsoir,

Voilà je voudrais pouvoir trouver le moyen de faire la chose
suivante :

Dans la feuille 1, mes données sont présentés de la façon suivante :

A B C
Objet Constituants Prix

Voiture Volant 45
Pneus 100
Carrosserie 1500

Lampe Ampoule 1
Fil éléctique 2


Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
un Objet, la colonne B et C se remplissent automatiquement avec les
constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
C1 on obtient 1 et en C2, 2).

Avec une fonction EQUIV je n'arrive afficher que le premier
constituant et le prix correpondant.

Avez-vous une solution ?

Merci d'avance pour votre aide
elodie005
Le #21524252
Merci pour votre aide, toutefois quand je copie et colle le code dans
ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

Que dois-je faire?

Merci


On 9 avr, 01:33, "michdenis"
Bonjour,

Suppose que ta feuille d'origine où sont tes données s'appelle "sheet 2"
et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veu x
que s'inscrive automatiquement le contenu de la colonne B et C en
rapport avec l'expression tapée en colonne A.

Dans le module feuille où doivent s'afficher automatiquement les donn ées,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille de s
données d'origine dans la procédure.

'-----------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, Ligne As Variant, DerLig As Long
Dim Nb As Long, B As Long, Sh As Worksheet

''Adapte le nom de la feuille d'origine des données
Set Sh = Worksheets("Sheet2")

Set Rg = Intersect(Target, Range("A:A"))

If Not Rg Is Nothing Then
    If Rg.Cells.Count > 1 Then Exit Sub
    Nb = Range("A65536").End(xlUp).Row
    Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
    If IsNumeric(Ligne) Then
        DerLig = Ligne + 1
        Do While Range("A" & DerLig) = ""
            DerLig = DerLig + 1
            If DerLig > Nb Then Exit Do
        Loop

        With Sh
                Application.EnableEvents = False
                .Range(.Cells(Ligne, 1), .Cells(DerLig, 1 )). _
                Offset(, 1).Resize(, 2).Copy Target.Offse t(, 1)
                Application.EnableEvents = True
        End With
    Else
        MsgBox "Expression inexistante dans la feuille source des données."
    End If
End If
End Sub
'-----------------------------------------------

"elodie005"
Bonsoir,

Voilà je voudrais pouvoir trouver le moyen de faire la chose
suivante :

Dans la feuille 1, mes données sont présentés de la façon suivant e :

A                  B                                C
Objet            Constituants                 Prix

Voiture          Volant                         45
                    Pneus                        100
                    Carrosserie                 1500

Lampe         Ampoule                       1
                   Fil éléctique                  2

Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
un Objet, la colonne B et C se remplissent automatiquement avec les
constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
C1 on obtient 1 et en C2, 2).

Avec une fonction EQUIV je n'arrive afficher que le premier
constituant et le prix correpondant.

Avez-vous une solution ?

Merci d'avance pour votre aide
Philippe.R
Le #21524482
Bonjour,
Je me mêle de ce qui ne me regarde pas, mais le Mr a dit :

"Dans le module feuille où doivent s'afficher automatiquement les données,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
données d'origine dans la procédure."

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"elodie005" news:
Merci pour votre aide, toutefois quand je copie et colle le code dans
ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

Que dois-je faire?

Merci


On 9 avr, 01:33, "michdenis"
Bonjour,

Suppose que ta feuille d'origine où sont tes données s'appelle "sheet2"
et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veux
que s'inscrive automatiquement le contenu de la colonne B et C en
rapport avec l'expression tapée en colonne A.

Dans le module feuille où doivent s'afficher automatiquement les données,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
données d'origine dans la procédure.

'-----------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, Ligne As Variant, DerLig As Long
Dim Nb As Long, B As Long, Sh As Worksheet

''Adapte le nom de la feuille d'origine des données
Set Sh = Worksheets("Sheet2")

Set Rg = Intersect(Target, Range("A:A"))

If Not Rg Is Nothing Then
If Rg.Cells.Count > 1 Then Exit Sub
Nb = Range("A65536").End(xlUp).Row
Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
If IsNumeric(Ligne) Then
DerLig = Ligne + 1
Do While Range("A" & DerLig) = ""
DerLig = DerLig + 1
If DerLig > Nb Then Exit Do
Loop

With Sh
Application.EnableEvents = False
.Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
Application.EnableEvents = True
End With
Else
MsgBox "Expression inexistante dans la feuille source des données."
End If
End If
End Sub
'-----------------------------------------------

"elodie005" discussion :

Bonsoir,

Voilà je voudrais pouvoir trouver le moyen de faire la chose
suivante :

Dans la feuille 1, mes données sont présentés de la façon suivante :

A B C
Objet Constituants Prix

Voiture Volant 45
Pneus 100
Carrosserie 1500

Lampe Ampoule 1
Fil éléctique 2

Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
un Objet, la colonne B et C se remplissent automatiquement avec les
constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
C1 on obtient 1 et en C2, 2).

Avec une fonction EQUIV je n'arrive afficher que le premier
constituant et le prix correpondant.

Avez-vous une solution ?

Merci d'avance pour votre aide
elodie005
Le #21525451
Merci pour votre aide, mais apparement je ne suis pas douée si je crée
un module et que je recopie le code en appellant bien ma feuille
sheet2, rien ne se passe....

Pouvez vous m'envoyer un fichier exemple ou plus détailler ce que je
dois faire?

Encore merci


On 9 avr, 10:54, "Philippe.R"
Bonjour,
Je me mêle de ce qui ne me regarde pas, mais le Mr a dit :

"Dans le module feuille où doivent s'afficher automatiquement les donn ées,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille de s
données d'origine dans la procédure."

--
Avec plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpfe/ trombino.html
Philippe.R
Pour se connecter au forum :http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"elodie005" Merci pour votre aide, toutefois quand je copie et colle le code dans
ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

Que dois-je faire?

Merci

On 9 avr, 01:33, "michdenis"


> Bonjour,

> Suppose que ta feuille d'origine où sont tes données s'appelle "she et2"
> et qu'à chaque fois que tu entres une donnée sur la feuille X, tu v eux
> que s'inscrive automatiquement le contenu de la colonne B et C en
> rapport avec l'expression tapée en colonne A.

> Dans le module feuille où doivent s'afficher automatiquement les donn ées,
> copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
> données d'origine dans la procédure.

> '-----------------------------------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Rg As Range, Ligne As Variant, DerLig As Long
> Dim Nb As Long, B As Long, Sh As Worksheet

> ''Adapte le nom de la feuille d'origine des données
> Set Sh = Worksheets("Sheet2")

> Set Rg = Intersect(Target, Range("A:A"))

> If Not Rg Is Nothing Then
> If Rg.Cells.Count > 1 Then Exit Sub
> Nb = Range("A65536").End(xlUp).Row
> Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
> If IsNumeric(Ligne) Then
> DerLig = Ligne + 1
> Do While Range("A" & DerLig) = ""
> DerLig = DerLig + 1
> If DerLig > Nb Then Exit Do
> Loop

> With Sh
> Application.EnableEvents = False
> .Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
> Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
> Application.EnableEvents = True
> End With
> Else
> MsgBox "Expression inexistante dans la feuille source des données."
> End If
> End If
> End Sub
> '-----------------------------------------------

> "elodie005" > discussion :
>
> Bonsoir,

> Voilà je voudrais pouvoir trouver le moyen de faire la chose
> suivante :

> Dans la feuille 1, mes données sont présentés de la façon suiva nte :

> A B C
> Objet Constituants Prix

> Voiture Volant 45
> Pneus 100
> Carrosserie 1500

> Lampe Ampoule 1
> Fil éléctique 2

> Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
> un Objet, la colonne B et C se remplissent automatiquement avec les
> constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
> ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
> C1 on obtient 1 et en C2, 2).

> Avec une fonction EQUIV je n'arrive afficher que le premier
> constituant et le prix correpondant.

> Avez-vous une solution ?

> Merci d'avance pour votre aide- Masquer le texte des messages précé dents -

- Afficher le texte des messages précédents -
ElXav
Le #21525631
Bonjour,

Code à coller non pas dans un nouveau module, mais bien dans le module
de la feuille où doivent être listées les informations.

Dans l'éditeur VBA
1) Choisir menu "Affichage" / "Explorateur de projets". Si le volet
n'était pas affiché, il l'est maintenant.
2) Dans le volet de l'explorateur de projets, double-cliquer sur
"VBAProject(xxx)" où xxx correspond au classeur où se trouve ta
nomenclature
3) Double-cliquer sur "Microsoft Excel Objets" de façon à afficher
le contenu de ton classeur (feuilles de calcul, modules, etc.)
4) Suivant la feuille dans laquelle tu souhaites gérer l'affichage
automatique des informations recherchées, disons pas exemple Feuil2,
double-cliquer sur Feuil2
L'éditeur VBA affiche alors le code présent dans Feuil2

Copie/Colle le code fourni Michdenis dans cette fenêtre. C'est une
procédure évènementielle qui réagit à tout changement dans la feu ille
de calcul.

Wouhalou.
Cordialement.
Xavier.

On 9 avr, 15:43, elodie005
Merci pour votre aide, mais apparement je ne suis pas douée si je cré e
un module et que je recopie le code en appellant bien ma feuille
sheet2, rien ne se passe....

Pouvez vous m'envoyer un fichier exemple ou plus détailler ce que je
dois faire?

Encore merci

On 9 avr, 10:54, "Philippe.R"


> Bonjour,
> Je me mêle de ce qui ne me regarde pas, mais le Mr a dit :

> "Dans le module feuille où doivent s'afficher automatiquement les don nées,
> copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
> données d'origine dans la procédure."

> --
> Avec plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpf e/trombino...
> Philippe.R
> Pour se connecter au forum :http://www.excelabo.net/web/mpfe
> News://news.microsoft.com/microsoft.public.fr.excel
> "elodie005" > Merci pour votre aide, toutefois quand je copie et colle le code dans
> ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

> Que dois-je faire?

> Merci

> On 9 avr, 01:33, "michdenis"
> > Bonjour,

> > Suppose que ta feuille d'origine où sont tes données s'appelle "s heet2"
> > et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veux
> > que s'inscrive automatiquement le contenu de la colonne B et C en
> > rapport avec l'expression tapée en colonne A.

> > Dans le module feuille où doivent s'afficher automatiquement les do nnées,
> > copie cette procédure et n'oublie pas d'adapter le nom de la feuill e des
> > données d'origine dans la procédure.

> > '-----------------------------------------------
> > Private Sub Worksheet_Change(ByVal Target As Range)
> > Dim Rg As Range, Ligne As Variant, DerLig As Long
> > Dim Nb As Long, B As Long, Sh As Worksheet

> > ''Adapte le nom de la feuille d'origine des données
> > Set Sh = Worksheets("Sheet2")

> > Set Rg = Intersect(Target, Range("A:A"))

> > If Not Rg Is Nothing Then
> > If Rg.Cells.Count > 1 Then Exit Sub
> > Nb = Range("A65536").End(xlUp).Row
> > Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
> > If IsNumeric(Ligne) Then
> > DerLig = Ligne + 1
> > Do While Range("A" & DerLig) = ""
> > DerLig = DerLig + 1
> > If DerLig > Nb Then Exit Do
> > Loop

> > With Sh
> > Application.EnableEvents = False
> > .Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
> > Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
> > Application.EnableEvents = True
> > End With
> > Else
> > MsgBox "Expression inexistante dans la feuille source des données."
> > End If
> > End If
> > End Sub
> > '-----------------------------------------------

> > "elodie005" > > discussion :
> >
> > Bonsoir,

> > Voilà je voudrais pouvoir trouver le moyen de faire la chose
> > suivante :

> > Dans la feuille 1, mes données sont présentés de la façon sui vante :

> > A B C
> > Objet Constituants Prix

> > Voiture Volant 45
> > Pneus 100
> > Carrosserie 1500

> > Lampe Ampoule 1
> > Fil éléctique 2

> > Je voudrais à partir de la feuille 2, que quand j'indique en colonn e A
> > un Objet, la colonne B et C se remplissent automatiquement avec les
> > constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
> > ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
> > C1 on obtient 1 et en C2, 2).

> > Avec une fonction EQUIV je n'arrive afficher que le premier
> > constituant et le prix correpondant.

> > Avez-vous une solution ?

> > Merci d'avance pour votre aide- Masquer le texte des messages préc édents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Philippe.R
Le #21525681
Re,
Au plus simple, pour ouvrir le module de la feuille concernée (la feuille 2
si j'ai bien compris) :
clic droit sur l'onglet / cliquer sur "visualiser le code" et copier le code
fourni dans la page (module de feuille) qui vient de s' ouvrir
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"elodie005" news:
Merci pour votre aide, mais apparement je ne suis pas douée si je crée
un module et que je recopie le code en appellant bien ma feuille
sheet2, rien ne se passe....

Pouvez vous m'envoyer un fichier exemple ou plus détailler ce que je
dois faire?

Encore merci


On 9 avr, 10:54, "Philippe.R"
Bonjour,
Je me mêle de ce qui ne me regarde pas, mais le Mr a dit :

"Dans le module feuille où doivent s'afficher automatiquement les données,
copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
données d'origine dans la procédure."

--
Avec
plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"elodie005" denews:
Merci pour votre aide, toutefois quand je copie et colle le code dans
ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

Que dois-je faire?

Merci

On 9 avr, 01:33, "michdenis"


> Bonjour,

> Suppose que ta feuille d'origine où sont tes données s'appelle "sheet2"
> et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veux
> que s'inscrive automatiquement le contenu de la colonne B et C en
> rapport avec l'expression tapée en colonne A.

> Dans le module feuille où doivent s'afficher automatiquement les
> données,
> copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
> données d'origine dans la procédure.

> '-----------------------------------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Rg As Range, Ligne As Variant, DerLig As Long
> Dim Nb As Long, B As Long, Sh As Worksheet

> ''Adapte le nom de la feuille d'origine des données
> Set Sh = Worksheets("Sheet2")

> Set Rg = Intersect(Target, Range("A:A"))

> If Not Rg Is Nothing Then
> If Rg.Cells.Count > 1 Then Exit Sub
> Nb = Range("A65536").End(xlUp).Row
> Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
> If IsNumeric(Ligne) Then
> DerLig = Ligne + 1
> Do While Range("A" & DerLig) = ""
> DerLig = DerLig + 1
> If DerLig > Nb Then Exit Do
> Loop

> With Sh
> Application.EnableEvents = False
> .Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
> Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
> Application.EnableEvents = True
> End With
> Else
> MsgBox "Expression inexistante dans la feuille source des données."
> End If
> End If
> End Sub
> '-----------------------------------------------

> "elodie005" > de
> discussion :
>
> Bonsoir,

> Voilà je voudrais pouvoir trouver le moyen de faire la chose
> suivante :

> Dans la feuille 1, mes données sont présentés de la façon suivante :

> A B C
> Objet Constituants Prix

> Voiture Volant 45
> Pneus 100
> Carrosserie 1500

> Lampe Ampoule 1
> Fil éléctique 2

> Je voudrais à partir de la feuille 2, que quand j'indique en colonne A
> un Objet, la colonne B et C se remplissent automatiquement avec les
> constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
> ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
> C1 on obtient 1 et en C2, 2).

> Avec une fonction EQUIV je n'arrive afficher que le premier
> constituant et le prix correpondant.

> Avez-vous une solution ?

> Merci d'avance pour votre aide- Masquer le texte des messages
> précédents -

- Afficher le texte des messages précédents -
elodie005
Le #21527231
Merci à tous (et plus particulièrement michdenis), grâce à vos
explication la macro marche !!!





On 9 avr, 16:53, "Philippe.R"
Re,
Au plus simple, pour ouvrir le module de la feuille concernée (la feuil le 2
si j'ai bien compris) :
clic droit sur l'onglet / cliquer sur "visualiser le code" et copier le c ode
fourni dans la page (module de feuille) qui vient de s' ouvrir
--
Avec plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpfe/ trombino.html
Philippe.R
Pour se connecter au forum :http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"elodie005" Merci pour votre aide, mais apparement je ne suis pas douée si je cré e
un module et que je recopie le code en appellant bien ma feuille
sheet2, rien ne se passe....

Pouvez vous m'envoyer un fichier exemple ou plus détailler ce que je
dois faire?

Encore merci

On 9 avr, 10:54, "Philippe.R"


> Bonjour,
> Je me mêle de ce qui ne me regarde pas, mais le Mr a dit :

> "Dans le module feuille où doivent s'afficher automatiquement les don nées,
> copie cette procédure et n'oublie pas d'adapter le nom de la feuille des
> données d'origine dans la procédure."

> --
> Avec
> plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpfe/tro mbino...
> Philippe.R
> Pour se connecter au forum :http://www.excelabo.net/web/mpfe
> News://news.microsoft.com/microsoft.public.fr.excel
> "elodie005" > denews: m...
> Merci pour votre aide, toutefois quand je copie et colle le code dans
> ThisWorfkbook, aucune macro n'apparait et rien ne se passe.

> Que dois-je faire?

> Merci

> On 9 avr, 01:33, "michdenis"
> > Bonjour,

> > Suppose que ta feuille d'origine où sont tes données s'appelle "s heet2"
> > et qu'à chaque fois que tu entres une donnée sur la feuille X, tu veux
> > que s'inscrive automatiquement le contenu de la colonne B et C en
> > rapport avec l'expression tapée en colonne A.

> > Dans le module feuille où doivent s'afficher automatiquement les
> > données,
> > copie cette procédure et n'oublie pas d'adapter le nom de la feuill e des
> > données d'origine dans la procédure.

> > '-----------------------------------------------
> > Private Sub Worksheet_Change(ByVal Target As Range)
> > Dim Rg As Range, Ligne As Variant, DerLig As Long
> > Dim Nb As Long, B As Long, Sh As Worksheet

> > ''Adapte le nom de la feuille d'origine des données
> > Set Sh = Worksheets("Sheet2")

> > Set Rg = Intersect(Target, Range("A:A"))

> > If Not Rg Is Nothing Then
> > If Rg.Cells.Count > 1 Then Exit Sub
> > Nb = Range("A65536").End(xlUp).Row
> > Ligne = Application.Match(Target, Sh.Range("A:A"), 0)
> > If IsNumeric(Ligne) Then
> > DerLig = Ligne + 1
> > Do While Range("A" & DerLig) = ""
> > DerLig = DerLig + 1
> > If DerLig > Nb Then Exit Do
> > Loop

> > With Sh
> > Application.EnableEvents = False
> > .Range(.Cells(Ligne, 1), .Cells(DerLig, 1)). _
> > Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
> > Application.EnableEvents = True
> > End With
> > Else
> > MsgBox "Expression inexistante dans la feuille source des données."
> > End If
> > End If
> > End Sub
> > '-----------------------------------------------

> > "elodie005" > > de
> > discussion :
> >
> > Bonsoir,

> > Voilà je voudrais pouvoir trouver le moyen de faire la chose
> > suivante :

> > Dans la feuille 1, mes données sont présentés de la façon sui vante :

> > A B C
> > Objet Constituants Prix

> > Voiture Volant 45
> > Pneus 100
> > Carrosserie 1500

> > Lampe Ampoule 1
> > Fil éléctique 2

> > Je voudrais à partir de la feuille 2, que quand j'indique en colonn e A
> > un Objet, la colonne B et C se remplissent automatiquement avec les
> > constituants qui s'y rapportent (ex : en indiquant en A1 Lampe, j'ai
> > ampoule en B1 et fil electrique en B2 qui s'affichent, de même que en
> > C1 on obtient 1 et en C2, 2).

> > Avec une fonction EQUIV je n'arrive afficher que le premier
> > constituant et le prix correpondant.

> > Avez-vous une solution ?

> > Merci d'avance pour votre aide- Masquer le texte des messages
> > précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
elodie005
Le #21546411
Merci pour cette macro, cependant je viens d'être confrontée à une
nouvelle problématique.

J'ai comme précédemment dans ma feuille 1 des informations inscrites
dans les colonnes A à U et je voudrais que quand je tape dans le
feuille 2 "Lampe" par exemple, les données qui s'y rapportent se
présente de cette façon :

En B les données de la colonne B de la feuille 1 en rapport avec
l'élément tapé
En C C
Rien dans la colone D
En E les données de la colonne U

Pouvez-vous m'aider avec une macro que je puisse adapter à des cas
comme celui-là??

Merci d'avance pour votre aide
Publicité
Poster une réponse
Anonyme