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

Macros et VBA Excel Discussion :

Excel : le résultat d'une cellule modifie plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de gestion

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut Excel : le résultat d'une cellule modifie plusieurs feuilles
    Bonjour à toutes et à tous,

    J'ai un ensemble de feuilles sur Excel. L'idée est d'avoir une feuille de saisie de différentes informations.

    Justement sur une des cellules, j'indique un nombre d'associés.

    Ce nombre va aller de 2 à 5 par exemple.

    J'ai bien réussi à mettre en place une formule qui me permet de cacher les lignes de saisies pour les associés non requis : par exemple si on indique 2 associés, les associés 3, 4 et 5 ne sont pas affichés.

    C'est nickel jusqu'à maintenant.

    Mon problème est que je souhaite que ce choix d'associés impacte aussi d'autres onglets. Et c'est là mon problème.

    J'ai commencé par appliqué le même genre de formule mais je n'arrive pas à faire un lien vers l'onglet de base.

    J'ai voulu faire une formule qui va chercher la cellule d'infos sur le même onglet et cette cellule va chercher l'information sur l'onglet de base (oui c'est du bricolage). Malheureusement, la formule ne s'applique que si on revalide le résultat.

    Il faut bien entendu que cela se fasse de manière automatique.

    En gros, je tape 2 dans un onglet de base et en cascade cela impacte plusieurs onglets. Est-ce que cela est possible?

    En vous remerciant par avance

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pour copier la valeur de la cellule a6 de la feuille Feuil1 dans une cellule d'une autre feuille


    mettre

    dans la cellule de destination

  3. #3
    Membre averti
    Homme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de gestion

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut
    Avec le code c'est mieux, donc actuellement dans l'onglet saisie j'ai cette macro qui observe le comportement de certaines cellules et donc va réduire les lignes sur la feuille saisie.

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub '<-- si plusieurs cellules sont sélectionnées on quitte la procédure sinon ça bug
    If Target.Address = "$B$2" Then '<-- vérification que la modification se passe dans la cellule A4
        Select Case Target.Value
            Case "1": Rows("20:32").Hidden = True
            Case "2": Rows("20:32").Hidden = False
        End Select
    End If
     
    If Target.Address = Me.Range("lettreir").Address Then
        If Target.Value = "Oui" Then
            Sheets("LETTRE IR").Visible = True
        Else
            Sheets("LETTRE IR").Visible = False
        End If
    End If
     
    If Target.Count > 1 Then Exit Sub '<-- si plusieurs cellules sont sélectionnées on quitte la procédure sinon ça bug
    If Target.Address = "$B$3" Then '<-- vérification que la modification se passe dans la cellule A4
        Select Case Target.Value
            Case "2": Rows("45:57").Hidden = True
            Case "3": Rows("45:57").Hidden = True
            Case "4": Rows("45:57").Hidden = False
            Case "5": Rows("45:57").Hidden = False
        End Select
    End If
     
    End Sub
    Ce que je souhaite faire, c'est que le changement de ces cellules impactent aussi l'affichage de lignes sur d'autres onglets.

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Une chose à savoir, et que l'on oublie parfois, c'est qu'il en va de même des valeurs booléennes que des valeurs numériques
    Je m'explique

    Plutôt que d'alourdir le code par des conditions
    On peut très bien écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("FF").Visible = (Application.UserName = "Marcel")
    Pour ta seule feuille auquel l'évènement Change s'applique
    (Nous verrons ensuite l'impact sur les autres feuilles)
    Essaie ce code très simple et reviens si nécessaire pour éclaircissement(s)

    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
    Option Explicit
    Option Compare Text
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    With Target
     
            Select Case .Address
     
                    Case "$B$2"
                            Rows("20:32").Hidden = (.Value = 1)
     
                    Case Range("lettreir").Address
                            Sheets("LETTRE IR").Visible = IIf(.Value = "Oui", False, True)
     
                    Case "$B$3"
                            Rows("45:57").Hidden = ((.Value = 2) Or (.Value = 3))
     
            End Select
     
    End With
     
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de gestion

    Informations forums :
    Inscription : Novembre 2016
    Messages : 24
    Par défaut
    C'est clair que c'est beaucoup plus simple visuellement que cela en est beau!

    Merci déjà pour la simplification de la formule.

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Merci mais ce code répond-il à ton besoin?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2014, 23h21
  2. [XL-2007] Recopier les données d'une cellule sur plusieurs feuilles
    Par anubis62 dans le forum Excel
    Réponses: 1
    Dernier message: 25/06/2009, 08h41
  3. [XL-2000] Donner le même nom à une cellule dans plusieurs feuilles
    Par s.echeff dans le forum Excel
    Réponses: 5
    Dernier message: 07/04/2009, 15h55
  4. reporter une cellule dans plusieurs feuilles excel
    Par tigdub1gal dans le forum Excel
    Réponses: 17
    Dernier message: 07/06/2007, 01h23
  5. [Excel VBA]fonction dans une cellule qui modifie une autre cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2007, 17h43

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