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.
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
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) ?
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 :
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.
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.