Faire apparaître dans un second tableau des données modifiables dans un premier

Anthonyh

XLDnaute Nouveau
Bonsoir à tous,

Avant de poser ma question, voici ma situation. Je suis en charge de réaliser un programme sous VBA afin d'optimiser le rendement de mon point de vente mais je sèche sur une broutille. J'ai donc besoin de vos lumières amis Exceliens.

En fait j'ai une feuille excel avec deux tableau. Le premier a dix colonnes numérotées de A à J et 20 lignes nommées "NOM1", "NOM2", "NOM3" ... Le second reprend les mêmes colonnes mais a 4 lignes : 1, 2, 3 et 4.

J'aimerais qu'en entrant - par exemple - le chiffre 2 dans le premier tableau (colonne A, ligne NOM19), le second tableau se remplisse (après un clic sur bouton) en inscrivant NOM19 dans la colonne A à la ligne 2. Et cela pour toutes les cellules des tableaux.

Je vous joint un exemple de ce que cela devrait rendre. Merci énormément de votre aide.
 

Pièces jointes

  • TEST FSC.xlsx
    10.3 KB · Affichages: 36
  • TEST FSC.xlsx
    10.3 KB · Affichages: 40
  • TEST FSC.xlsx
    10.3 KB · Affichages: 37

CISCO

XLDnaute Barbatruc
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Bonsoir

Cf. une possibilité avec des formules en pièce jointe.

@ plus
 

Pièces jointes

  • TEST FSC.xlsx
    15.9 KB · Affichages: 41
  • TEST FSC.xlsx
    15.9 KB · Affichages: 35
  • TEST FSC.xlsx
    15.9 KB · Affichages: 32

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Bonsoir Anthonyh,

Une formule en A24 à tirer vers la droite et vers le bas ou bien l'adaptation en VBA:
La formule:
Code:
=SI(ESTNA(EQUIV($A24;B$2:B$21;0));"";INDEX($A$2:$A$21;EQUIV($A24;B$2:B$21;0)))
Ou l'adaptation en VBA dans le module de feuille "Feuil1":
Code:
Sub TabloInf()
Range("B24:K27").FormulaLocal = _
  "=SI(ESTNA(EQUIV($A24;B$2:B$21;0));"""";INDEX($A$2:$A$21;EQUIV($A24;B$2:B$21;0)))"
Range("B24:K27") = Range("B24:K27").Value
End Sub
 

Pièces jointes

  • TEST FSC v1.xlsm
    17.6 KB · Affichages: 50

Anthonyh

XLDnaute Nouveau
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Serait-il possible que vous m'expliquiez un peu le principe de cette formule afin que je puisse la modifier dans le cas de tableaux de formats différents ?
Existe-t-il une version adaptable aux anciennes versions d'Excel (utilisées dans mon entreprise) ?
 

CISCO

XLDnaute Barbatruc
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Bonsoir

La partie EQUIV($A24;B$1:B$21;0) indique la position du contenu de la colonne A sur la ligne en cours (ligne 24 ici) dans la plage B$1:B$21 (et exactement ce contenu et pas un valeur proche, à cause du 0) par exemple 4 (le contenu de A24 se trouve en 4ème position dans la plage B$1:B$21).

INDEX($A$1:$A$21;EQUIV($A24;B$1:B$21;0)) renvoie le contenu de la plage $A$1:$A$21 en position EQUIV(...). Ici, cela renvoie le contenu de la 4ème cellule de cette plage, le contenu de A4.

SIERREUR(INDEX($A$1:$A$21;EQUIV($A24;B$1:B$21;0));"") renvoie le résultat de INDEX(....) si ce n'est pas une erreur (par ex parceque $A24 n'existe pas dans la plage B$1:B$21) et rien ("") si c'est une erreur.

La fonction SIERREUR n'existe que depuis Excel2007. Par conséquent, sur Excel 2003, il faut faire avec :
Code:
SI(ESTERREUR(EQUIV($A24;B$1:B$21;0));"";INDEX($A$1:$A$21;EQUIV($A24;B$1:B$21;0));""))

Dans le cas des tableaux de format différent, cela ne doit pas poser de problème à cause des $ placés dans la formule. Tu peux tirer (=copier+coller) la formule en B24 vers la droite et vers le bas aussi longtemps que nécessaire.

@ plus
 
Dernière édition:

Anthonyh

XLDnaute Nouveau
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Merci pour ces explications ;), j'ai apporté quelques modifications mais je ne sais pas si le ode est adaptable.

En fait, dans un userform j'ai ajouté la possibilité de choisir le nombre de lignes du premier tableau (ce nombre vient en plus s'inscrire sans qu'on le voit en A4).
A l'ouverture de la feuille le tableau commence en A5 et se termine plus bas, en fonction du nombre de lignes choisies.
Puis, en cliquant sur un bouton, le second tableau apparaît 3 lignes sous la dernière case du premier tableau. J'aimerais donc faire en sorte que la formule change en fonction de la taille du premier tableau.

J'ai essayé ceci mais sans succès :

SI(ESTERREUR(EQUIV($A&CDbl(Range("A4")) + 8;B ...

Comment faire svp ?
 
Dernière édition:

Anthonyh

XLDnaute Nouveau
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

J'ai essayé ça mais ça me met erreur 1004 :

Range(Cells(b, 3), Cells(c, 17)).FormulaLocal = "=SI(ESTNA(EQUIV(Cells(b, 2);Range(C$5, Cells(d, 3));0));"""";INDEX($B$5, Cells(d, 2));EQUIV(Cells(b, 2);Range(C5, Cells(d, 3));0)))"

(Avec a, b, c et d correspondant aux bonnes lignes)
 

Anthonyh

XLDnaute Nouveau
Re : Faire apparaître dans un second tableau des données modifiables dans un premier

Voici mon dernier essai mais ça ne marche toujours pas ... Je m'arrache les cheveux !! :D
 

Pièces jointes

  • TEST.xls
    66.5 KB · Affichages: 34
  • TEST.xls
    66.5 KB · Affichages: 32
  • TEST.xls
    66.5 KB · Affichages: 35

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 197
Membres
103 153
dernier inscrit
SamirN