XL 2010 Pb macro (lier un numéro à un tableau)

MelissaJoubert

XLDnaute Junior
Bonjour à tous,

J'ai de nouveau une question par rapport à la création d'un macro.
Je vous envoi mon fichier pour que vous compreniez mieux :)

On va se préoccuper seulement des onglets "feuil1" et "données".
J'aimerai donc créer un macro qui me permette :
lorsque je rempli mon tableau dans l'onglet "données", avec un numéro, je retourne dans mon onglet "feuil1" et j'aimerai que lorsque je rentre un numero dans la première case, le tableau se remplisse comme le tableau dans "données".

C'est a dire que le numéro que je vais rentrer va correspondre à mon tableau.

J'espere que vous comprenez :p c'est pas facile à expliquer.
 

Pièces jointes

  • testES.xlsm
    53.4 KB · Affichages: 27

vgendron

XLDnaute Barbatruc
Hello

lorsque je rempli mon tableau dans l'onglet "données",
lequel? : B3:G6 ou J4:p7

avec un numéro, je retourne dans mon onglet "feuil1" et j'aimerai que lorsque je rentre un numero dans la première case,

laquelle??: A3 ?? D3 D14 ??

le tableau se remplisse comme le tableau dans "données".
je pense qu'il suffit d'une formule avec "index equiv..." mais faut préciser le besoin

J'espere que vous comprenez :p c'est pas facile à expliquer.

il faudrait que tu mettes un exemple de ce que tu souhaites obtenir.
 

MelissaJoubert

XLDnaute Junior
Bonjour , désolé pour le retard je n'avais pas vu ton message !

lequel? : B3:G6 ou J4:p7

C'est le tableau B3:G6

laquelle??: A3 ?? D3 D14 ??

C'est la case D14

Oui exactement je souhaiterai que mon tableau se remplisse comme celui dans données :)

Exemple : je rempli mon tableau dans données . Le numéro associé à se tableau est le numéro 10.
Lorsque je vais dans l'onglet "feuil1", je rentre le numéro 10 dans la case D14 et le tableau associé au numéro 10 se rempli comme dans l'onglet "données"

En tout cas merci d'avoir repondu aussi rapidement !! Et désolé de pas avoir répondu plus tot !
 

MelissaJoubert

XLDnaute Junior
Merci pour ta réponse et en effet ça marche sauf que j'aurai plutot préférer avoir un macro pour faire ceci.
Parce que la le problème c'est que si je rajoute un tableau dans l'onglet "feuil1", et que je rentre un numéro dans la case du numéro, je n'obtiens pas les valeurs du bon tableau :p

Si t'es fort en macro je veux bien que tu m'aide à faire ce programme :D
 

MelissaJoubert

XLDnaute Junior
Par contre j'ai une nouvelle question :D

En faite j'aimerai ajouter un code pour dire que si dans ma case "jaune " je met rien, tout se supprime dans le tableau.
Et idéalement aussi si dans le tableau dans l'onglet "données" je change une valeur celle la doit se changer automatiquement dans le tableau associé dans "feuil1".

J'espere que tu va pouvoir m'aider j'ai vraiment besoin de ton aide !!! Merci encore :)
 

vgendron

XLDnaute Barbatruc
La macro est dans l'évènement CHANGE de la feuille "Feuil1"

sur cette feuille tu as donc deux macro évènementielles.. Change et selection change (que j'ai modifiée)

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

'MsgBox Target.Interior.ColorIndex
If Target.Column = 4 And Target.Interior.ColorIndex = 6 Then 'colonne D sur une cellule jaune...
    'on cherche la position du tableau dans la feuille données
    With Sheets("Données").Range("B:B")
        'MsgBox Target.Item(1)
        Set c = .Find(Target.Item(1)) ', LookIn:=xlValues, XlLookAt:=xlWhole)
        If Not c Is Nothing And c.Value <> "" Then 'si il y a une valeur..
            'recopie du tableau
            .Range("B" & c.Row - 1 & ":G" & c.Row + 2).Copy Destination:=Target.Offset(-1, 1) 'va comprendre pourquoi il faut mettre B alors que le tableau commence en C......?????
        Else
            Target.Offset(-1, 1).Resize(4, 5).ClearContents 'si numéro pas trouvé: on efface
        End If
    End With
End If

Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False

If Target.Count = 1 And Target.Column = 3 Then
    If LCase(Target.Value) = "ajouter" Then
        'ligne active
        maligne = Target.Row
        Rows(maligne + 2 & ":" & maligne + 7).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A" & maligne + 8 & ":I" & maligne + 13).Copy Destination:=Range("A" & maligne + 2)
        'décale sélection d'une ligne
        Range(Target.Address).Offset(1, 0).Select
    End If
End If

Application.EnableEvents = True
End Sub
 

vgendron

XLDnaute Barbatruc
pour cette partie
Et idéalement aussi si dans le tableau dans l'onglet "données" je change une valeur celle la doit se changer automatiquement dans le tableau associé dans "feuil1".

deux choix:
1) modifier la macro Change pour mettre une formule plutot qu'un copier coller --> à la moindre modif de la feuille "Données", elle sera retranscrite directement dans la feuille "Feuil1" ---> mais j'ai peur que tu arrives avec beaucoup de tableaux et donc beaucoup de formules et donc. fichier lourd..

2) ajouter une macro évenementielle Change sur la feuille "Données" qui rafraichit tous les tableaux de la feuil1
ca risque d'etre aussi fastidieux.. rafraichir des tableaux qui n'en ont pas besoin..
à moins de cibler que les tableaux concernés...

PS: tu as beaucoup de modules vides.. je les ai supprimés. et des macros qui ne semblent etre jamais appelées, ainsi que des boutons qui appellent des macros inexistantes... normal ?
 

MelissaJoubert

XLDnaute Junior
PS: tu as beaucoup de modules vides.. je les ai supprimés. et des macros qui ne semblent etre jamais appelées, ainsi que des boutons qui appellent des macros inexistantes... normal ?

Oui c'est normal c'est parce que je fais des test et donc j'ai des macro qui me servent plus mais je préfère les garder au cas ou :D

La macro est dans l'évènement CHANGE de la feuille "Feuil1"

Je t'avoue que je ne sais pas où est l'évènement change :p Je ne comprend pas trop les macro mais je dois réaliser une bibliothèque pendant mon stage

En faite j'aimerai ajouter un code pour dire que si dans ma case "jaune " je met rien, tout se supprime dans le tableau.

ça tu pense que c'est possible ? Et j'ai une petite question , si je veux changer la couleur je dois changer le numéro dans le macro ?

1) modifier la macro Change pour mettre une formule plutot qu'un copier coller --> à la moindre modif de la feuille "Données", elle sera retranscrite directement dans la feuille "Feuil1" ---> mais j'ai peur que tu arrives avec beaucoup de tableaux et donc beaucoup de formules et donc. fichier lourd..

2) ajouter une macro évenementielle Change sur la feuille "Données" qui rafraichit tous les tableaux de la feuil1
ca risque d'etre aussi fastidieux.. rafraichir des tableaux qui n'en ont pas besoin..
à moins de cibler que les tableaux concernés...

En résumé c'est compliqué de faire ça ?

Merci de ton aide en tout cas ! (en esperant que tu continu à me répondre :D )
 

Statistiques des forums

Discussions
283 806
Messages
1 854 603
Membres
152 561
dernier inscrit
Flaure62
Haut Bas