IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Entête d'un tableau égal à une valeurs de cellule


Sujet :

Excel

  1. #1
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut Entête d'un tableau égal à une valeurs de cellule
    Bonjour,

    Je souhaiterais lier le contenu d"un entête de tableau à la valeur d"une cellule. Le but final étant qu'une modification à un seul endroit du classeur modifie la valeur de plusieurs cellules en même temps, y compris l'entête de mon tableau. Justement, je bloque à ce niveau là car lorsque je met une formule type =A2 par exemple, le resultat est automatiquement 0.

    Une astuce ?

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 548
    Par défaut
    Bonjour

    Les en-tête de tableau ne peuvent contenir de formule

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Comme suite à la réponse de Chris, une solution de contournement consisterait à lier un événement sur changement de la cellule A2, mais pour cela votre question aurait dû être posée dans le forum Macros et VBA Excel.

    Une réponse aurait pu être celle-ci.

    Le code ci-dessous est à placer dans le module de votre l'onglet : Alt-F11 pour ouvrir l'éditeur VBA et double-clic sur le module correspond à votre onglet.
    Dans l'exemple, le contenu de A2 est placé au centre. A vous de modifier s'il doit être à gauche ou à droite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
            If Target.Count > 1 Then Exit Sub
     
            If Not Intersect(Target, Range("A2")) Is Nothing Then
                    With ActiveSheet
                        '.PageSetup.LeftHeader = ""
                         .PageSetup.CenterHeader = .Range("A2")
                        '.PageSetup.RightHeader = ""
                    End With
            End If
     
    End Sub
    Pièce jointe 299702

  4. #4
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Merci Eric,

    Je débute en VBA, pourrais'tu m'expliquer le fonctionnment de ce code ? Avec des commentaires ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Pour comprendre, il te faut utiliser l'enregistreur de macro et réaliser une modification de l'entête de ton onglet manuellement. Une fois fait, si tu ouvres ta macro (Alt-F11) qui sera stockée dans un module standard (sans doute Module1). Tu vas obtenir un nombre de lignes "imbitable". Les lignes de code du vidage d'écran sont celles qu'il faut garder et qui sont maintenant dans le module de ton onglet1 indiqué par la flèche. Nb : Il n'y a plus de module1 dans mon fichier.


    Pièce jointe 299940

    Ensuite, dans ton module d'onglet, il faut définir le type d'événement qui sera utilisé pour mette à jour l'entête. Le mieux est que ce soit transparent pour l'utilisateur. J'ai donc choisi l'événement sur changement de valeur dans l'onglet.

    Pièce jointe 299942

    Ensuite, il ne faut pas enclencher l'événement si ta sélection fait plus d'une cellule, c'est l'utilité de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Count > 1 Then Exit Sub
    Et il ne faut pas enclencher l'événement en dehors de ta cellule A2, c'est l'utilité de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If Not Intersect(Target, Range("A2")) Is Nothing Then
    '...
    End If
    Si tu débutes en VBA (et même après), il te faut utiliser l'enregistreur de macro pour apprendre la syntaxe.

    As-tu mis en oeuvre ce code dans ton fichier ?

  6. #6
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    En attendant ta réponse j'ai tapé ce code qui me donne ce que je souhaite également

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Activate()
     
     Dim Entete1 As String
     
        Entete1 = Worksheets("Standard task time").Range("B3").Value
        Worksheets("Time sheet").Range("K11").Value = Entete1
     
    End Sub
    Donc à chaque activation de la feuille les entête seront mis à jour. Qu'en penses-tu ?

    Le soucis c'est que quand j'ajoute une colonne le titre reste colonne 1. Je souhaiterais que lorsque j'ajoute une colonne , la macro mette à jour le titre de l'entête de cette nouvelle colonne (et ne pas avoir colonne1 par ex) en fonction de la feuille contenant les références ("Standard task time). Est-ce possible ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Comment définis-tu ta ligne de titre ? Est-ce toujours la même ligne ? Chaque nouvelle colonne est-elle la dernière du tableau ? Quelle règle donnes-tu pour définir ton entête ?

    Nb : tu peux faire directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Activate()
     
          Worksheets("Time sheet").Range("K11") = Worksheets("Standard task time").Range("B3")
     
    End Sub
    La propriété par défaut d'une cellule est sa valeur, tu peux ne pas mettre .value

  8. #8
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Les titres sont contenus dans une autre feuille.
    J'ai crée une macro qui me permet d'ajouter des lignes et colonnes aux endroits ou j'en ai besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub CommandButton1_Click()
     
    Dim v As Integer, i As Integer
     
    On Error GoTo gestion_erreur
     
    v = InputBox( _
        Prompt:="How many lines do you want to insert ?") 'Phrase qui apparaîtra dans la box
     
    If v > 0 Then
        For i = 1 To v
     
            ' Insertion d'une ligne dans la feuille ou est situé le bouton
            Rows("24").Select
            Selection.Insert Shift:=xlDown
     
            'Insertion d'une colonne dans la feuille "Time sheet"
            Worksheets("Time sheet").Columns("CQ:CQ").Insert Shift:=xlToRight
     
            'Insertion d'une colonne dans la feuille "Time sheet"
            Worksheets("Time sheet").Columns("AF:AF").Insert Shift:=xlToRight
     
            'Insertion d'une ligne dans la feuille "Operations data"
            Worksheets("Operations data").Rows("28").Insert Shift:=xlDown
     
        Next i
    End If
     
    gestion_erreur:
        Exit Sub
    ' En cas d'erreur on sort de la fonction
     
    End Sub
    Le soucis c'est que si j'ajoute 1 ligne/colonne ce sera la dernière du tableau, mais si j'en une aprés celle-ci elle s'ajoute au dessus de la précédente, je n'ai pas réussi a résoudre ce problème.

    Nom : Capture.PNG
Affichages : 5987
Taille : 8,1 Ko

    (en vert la première ligne, en jaune la seconde) Activation par bouton 'general'.

    donc pour résumer j'active la macro ci-dessus, j'ajoute le titre dans la ligne nouvellement créée et il se copie sur l'entête de la oclonne nouvellement créée.

    J'aimerais joindre le fichier pour que cela soit plus clair, mais malheureusement il est confidentiel. Merci énormément pour ton aide.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Je pense qu'on ne s'est pas compris sur le sens du mot entête.

    L'entête dans Excel, c'est l'entête de page au sens de la mise en page (Menu mise en page). Ce que je comprends, c'est que tu souhaites mettre simplement un titre à tes colonnes sans toucher à l'entête (mise en page) de l'onglet concerné. Confirmes-tu ?

  10. #10
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Non je parlais de l'entête d'un tableau (ici en vert)

    Nom : Capture.PNG
Affichages : 5923
Taille : 15,4 Ko

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Pourquoi t'embêtes-tu à demander le nombre de lignes à insérer ? Ton onglet est protégé ?
    Je n'aurais pas procédé comme tu le fais. A chaque nouvelle saisie, j'aurais daté la cellule d'à côté. Toute cellule sans date associée est implicitement à injecter. Tu lances l'injection lorsque les saisies sont réalisées.

    Pourquoi définir la ligne 24 pour le début de la saisie ?

  12. #12
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Les titres représentent les tâches à effectuer, donc si l'on a 4 tâches à rajouter il est plus pratique de demander directmeent le nombre à insérer, cela aide également l"utilisateurs à comprendre ce qu'il ce passe, il sait qu'un cliquant sur ce bouton des lignes seront ajoutées.

    J'ai défini la ligne 24 car les tâches sont divisées en 5 catégorie, la ligne 24 représente la fin de cette catégorie, ainsi il existe un bouton pour chaque catégorie et l'on peut ajouter des tâches dans l'une ou l'autre à notre convenance.

    J'ai effectivement pensé a des dates mais je ne maitrise pas du tout ce sujet, saurais-tu m'indiquer la direction ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    Ton nombre de tâches pour chaque catégorie est-il fini ? Ou cela évolue en permanence ?

  14. #14
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Ce fichier est censé être un template, utiliser pour tout projets actuels et futurs, donc variable.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    OK, mais qui décide de l'ajout d'une nouvelle tâche ?

  16. #16
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    l'utilisateur. Il peut en ajouter s'il le souhaite ou modifier les cellules deja présentes.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    l'utilisateur. Il peut en ajouter s'il le souhaite ou modifier les cellules deja présentes.
    OK, ton outil avait l'air d'un Workflow avec donc des exigences en termes de délais et de déroulement pour satisfaire des normes de qualité. D'habitude, les processus sont définis par l'organisation et non par les utilisateurs.

  18. #18
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    c'est exact cependant il doit pouvoir s'adapter à n'importe quel projets futurs, pour lesquels nous ne posédons encore aucune information.

    Est-tu en mesure de m'aider avec le code d'insertion de ligne ? pour les insérer dans l'ordre ? puis ensuite faire en sorte que la modification de celle-ci impact les autres ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noctis76 Voir le message
    J'essaie de regarder.

  20. #20
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Merci, beaucoup.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/02/2015, 23h38
  2. Réponses: 0
    Dernier message: 03/03/2014, 23h31
  3. [XL-2007] VBA suppression de ligne d'un tableau comportant une valeur spécifique
    Par PSAIMOND dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/02/2014, 12h57
  4. Lier une checkbox avec une valeur de cellule d'un tableau
    Par sab_info dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/01/2013, 15h15
  5. Suppression d'une ligne d'un tableau à partir d'une valeur de cellule
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2010, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo