Afficher une plage de cellule avec modification possible

Bonjour à tous,

Je ne sais pas si c'est possible mais je cherche à pouvoir afficher une plage de cellule à partir d'une sélection.

Dans mon exemple je souhaite pouvoir afficher le tableau 1 en A3C5 en sélectionnant "tableau 1" dans ma liste en gardant ma mise en forme.

Je souhaite également pouvoir modifier le tableau que j'ai sélectionné et que ces modifications soit effectives dans le tableau d'origine.

ex :

8classeur5.xlsx (9.29 Ko)

Je sélectionne le tableau 1 => la plage de cellule G3I5 apparait en A3C5

si je modifie alors la cellule A3 (qui contiendra la valeur "1") et que je saisi "2", la cellule G3 passe à "2"

capture

Bonjour,

nommez vos plages de tableau Tableau1... etc en enlevant l'espace qui n'est pas accepté dans les noms sous Excel;
En cellule A3 entrez la formule suivante : =DECALER(INDIRECT(SUBSTITUE(C2;" ";""));LIGNE()-3;COLONNE()-1)
Le INDIRECT va chercher le nom du tableau sélectionné en supprimant l'espace, Excel 2021 va gérer la "recopie" de la formule afin d'importer les données du tableau concerné. Et avec une MFC cela donne une impression d'adaptabilité aux données.

Le fichier :

9test-lrd.xlsx (11.76 Ko)

@ bientôt

LouReeD

Bonjour,

LourReeD, avec 2021, nul besoin de "Decaler"

=INDIRECT(C2)

Suffit, si les zones sont bien nommées comme tu le préconises. (pas d'espace dans les noms, ni dans la liste de validation)

Bonne journée

Ca fonctionne au top

Merci à vous ça va bien m'aider

Nouveau problème :

Je souhaiterai pouvoir modifier le tableau affiché et que cela modifie le tableau d'origine. Voyez vous une possibilité en passant par une macro ?

Décidément, je réponds moins souvent et je commence à comprendre pourquoi... Je ne suis plus à la page !

@ bientôt

LouReeD

Je ne suis plus à la page !

Ménon,

Juste 7 ans à rattraper....

image

Auriez vous SVP une solution pour mon besoin de modification du tableau d'origine à partir du tableau affiché avec cette fonction =INDIRECT() ?

Re-,

Ce n'est pas possible, on ne peut pas modifier un tableau résultant d'une formule

Il faut du VBA (dans un sens comme dans l'autre : Choix du tableau pour affichage puis Modification du tableau d'origine)

C'est bien ce que je craignais...

Tu aurais une solution sous VBA ?

Re-,

J'ai peur d'arriver à une usine à gaz (d'après ton premier post...)

Pourquoi tu ne modifies pas directement dans le Tableau source?

Comme on n'a pas la vision d'ensemble de ton projet, ça ne va pas être simple, je pense...

Bonjour tout le monde,

J'ai bien essayé sous VBA mais je vais en effet arriver (si j'arrive à quelque chose) à une usine à gaz...

En réfléchissant j'ai une alternative :

Ma finalité est de pouvoir mettre cote à cote 2 voir 3 tableaux d'une longue liste de tableaux (une cinquantaine) ce qui pourrait se gérer en utilisant l'onglet affichage > fenêtre mais je souhaite rendre l'outils plus simple et accessible à un utilisateur lambda.

Voir fichier joint

Je voudrait pouvoir par exemple mettre cote à cote les table 2, 6 et 8 en pouvant les modifier.

8test.xlsx (10.98 Ko)

Bonsoir,

ce n'est pas une si grande usine à gaz !
l'idée : une feuille 2 où l'on peut afficher trois tableaux, mais ceci n'est pas limité.
On détecte le numéro du tableau demandé. On détermine la première ligne de données de ce tableau sur la feuille 1.
On rapatrie les données de cette cellule redimensionnée de 4 lignes et 4 colonnes.

Sur la feuille 2 on détecte un changement de valeur sur une des trois zone tableau, on récupère le numéro de tableau pour déterminer sa position sur la feuille 1 et on copie colle les données en lieu et place.

Ici pour l'exemple, pas de sécurité ! Mais cette modification des données sources peut être suite à l'appuis sur un bouton qui validerait alors les éventuelles modifications sur les trois tableaux.

Le code :

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fin
    Application.EnableEvents = False
    If Not Intersect(Target, Range("Choix1, Choix2, Choix3")) Is Nothing Then
        QuelTab = ((Target.Value - 1) * 6) + 1
        Target.Offset(1, -1).Resize(4, 4) = Sheets("Feuil1").Cells(QuelTab + 1, 1).Resize(4, 4).Value
    ElseIf Not Intersect(Target, Range("Choix1").Offset(1, -1).Resize(4, 4)) Is Nothing Then
        QuelTab = ((Range("Choix1").Value - 1) * 6) + 1
        Sheets("Feuil1").Cells(QuelTab + 1, 1).Resize(4, 4) = Range("Choix1").Offset(1, -1).Resize(4, 4).Value
    ElseIf Not Intersect(Target, Range("Choix2").Offset(1, -1).Resize(4, 4)) Is Nothing Then
        QuelTab = ((Range("Choix2").Value - 1) * 6) + 1
        Sheets("Feuil1").Cells(QuelTab + 1, 1).Resize(4, 4) = Range("Choix2").Offset(1, -1).Resize(4, 4).Value
    ElseIf Not Intersect(Target, Range("Choix3").Offset(1, -1).Resize(4, 4)) Is Nothing Then
        QuelTab = ((Range("Choix3").Value - 1) * 6) + 1
        Sheets("Feuil1").Cells(QuelTab + 1, 1).Resize(4, 4) = Range("Choix3").Offset(1, -1).Resize(4, 4).Value
    End If
Fin:
    Application.EnableEvents = True
End Sub

Le fichier :

10tabajour-lrd.xlsm (20.34 Ko)

@ bientôt

LouReeD

Rechercher des sujets similaires à "afficher plage modification possible"