Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déterminé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maohtsukai

XLDnaute Nouveau
Bonjour à tous,

tout d'abord, je me dois de remercier ce forum extrèmement bien fait, parce que sur les quelques questions que j'ai pu poser, vous avez réussi à trouver une réponse qui m'aidait énormement, et pour les autres que je n'ai pas posée, quelqu'un d'autre l'avait fait avant moi, vous l'avez aidé, et ce faisant, vous m'avez aidé aussi, donc MERCI ! 🙂

Au delà de ça, je viens vers vous avec un petit problème que j'ai dans un tableau, et une macro que j'aimerai développer. N'étant pas très doué en VBA, je viens donc d'une manière logique quémander quelques conseils ^_^

Je cherche en fait à développer un tableau qui suivant la valeur que prendra la Cellule B11 de la Sheet "Choose Entity and Period" (Valeurs qu'elle peut prendre : ACT, BUD, BUDEST, BUDPRE), des colonnes doivent être cachées dans d'autres sheet (au moins 4 colonnes dans des ranges différents dans 2 sheet différentes), et la valeur de quelques cellules (par exemple C1 dans la sheet CF LY BAL) doivent changer.

Je pense qu'il faudrait utiliser une macro du type :

If Target.Address <> "$C$26" Then Exit Sub
If Target.Value = "oui" Then 'si la cellule=OUI
Range("M1:N65536").EntireCol.Hidden = True 'masque les colonnes M et N
Range("M1:N65536").EntireRow.Hidden = False 'Demasque (si masqué) les lignes 37 à 40
Else
Range("M1:N65536").EntireCol.Hidden = True 'inverse
Range("M1:N65536").EntireCol.Hidden = False
End If
End Sub


Par exemple, cela étant déterminée pour chaque sheet, avec les bons ranges.

Merci beaucoup à tous de la lecture de ce post, et de l'aide que vous pourrez m'apporter.
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Bonjour le forum 🙂
Je pense qu'il faudrait utiliser une macro du type :

If Target.Address <> "$C$26" Then Exit Sub
If Target.Value = "oui" Then 'si la cellule=OUI
Range("M1:N65536").EntireCol.Hidden = True 'masque les colonnes M et N
Range("M1:N65536").EntireRow.Hidden = False 'Demasque (si masqué) les lignes 37 à 40
Else
Range("M1:N65536").EntireCol.Hidden = True 'inverse
Range("M1:N65536").EntireCol.Hidden = False
End If
End Sub
Enfin presque 😛...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$26" Then Exit Sub
If Target.Value = "oui" Then 'si la cellule=OUI
Columns("M:N").EntireColumn.Hidden = True 'masque les colonnes M et N
Rows("37:40").EntireRow.Hidden = False 'Demasque (si masqué) les lignes 37 à 40
Else
Columns("M:N").EntireColumn.Hidden = False 'inverse
Rows("37:40").EntireRow.Hidden = True
End If
End Sub
Bonne soirée 😎
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

déjà, merci beaucoup JNP pour cette réponse rapide...

Le truc, c'est que la macro que j'ai utilisé en exemple n'est pas parfaite, et je ne sais pas comment la changer...

La macro que je dois créer doit comporter des possibilités du type :

Sheets("Choose entity and period").Select
Range("B11").Select

Set Range("B11) as Target
If Target.value = ACT then telle cellule de telle sheet = ACT

If Target.value = BUD then telle cellule de telle sheet = BUD et aussi
Columns("M:N").EntireColumn.Hidden = True 'masque les colonnes M et N sur telle sheet...


En gros, j'ai quatres possibilités, ACT, BUD, BUDEST et BUDPRE, et suivant chaque valeur que prendra la cellule B11, je dois cacher certaines colonnes et donner une certaine valeur à des cellules d'autres sheet..

D'autres suggestions??? ^_^ Merci beaucoup pour tout...
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Bonjour à tous

D'autres suggestions???

Une petite modif du code VBA précédent

(principe du toggle)
EDITION: houps dans ce cas, c'est pas top
car il faut saisir oui pour masquer puis saisir oui pour démasquer 😛
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$26" Then Exit Sub
If Target.Value = "oui" Then [COLOR="Green"]'si la cellule=OUI[/COLOR]
Columns("M:N").EntireColumn.Hidden = Not Columns("M:N").EntireColumn.Hidden [COLOR="Green"]'masque les colonnes M et N[/COLOR]
Rows("37:40").EntireRow.Hidden = Not Rows("37:40").EntireRow.Hidden [COLOR="Green"]'Demasque (si masqué) les lignes 37 à 40[/COLOR]
End if
End Sub
 
Dernière édition:
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Re



En guise d'excuses pour mon étourderie précédente


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$1" Then Exit Sub
Columns("M:N").EntireColumn.Hidden = (Target.Value = "oui") 'masque les colonnes M et N
Rows("37:40").EntireRow.Hidden = (Target.Value = "oui") 'Demasque (si masqué) les lignes 37 à 40
End Sub
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Je Re Up un peu, parce que je galere encore, et je m'aperçois que je n'ai pas demandé gentilment pour d'autres suggestions ^_^

Bref si quelqu'un pouvait m'aider à trouver un moyen pour que lorsque je choisis une certaine valeur dans une Cellule Source, cela change directement toutes les valeurs d'une dizaine de cellule dans des sheet différentes, en plus du fait que cela cache certaines colonnes.

Je sais j'en demande beaucoup, mais je vous remercie de votre aide, sachant que vous savez utiliser Excel et Vba d'une maniere que je ne peux que rever >_<

Merci à tous
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Re 🙂,
Je pense que nous n'avions pas suivi que c'était une question, vu que ça fait parti du B A BA du VBA 😛.
Pour envoyer juste les valeurs :
Code:
Sheets("Feuil1").Cells(1,1) = Sheets("Feuil2").Cells(1,1)
pour copier les valeurs de A1 en Feuil2 dans A1 en Feuil1 (adapter les valeurs de feuilles et de cellules et mettre juste après ton test.
Si tu veux envoyer la mise en forme en même temps :
Code:
Sheets("Feuil1").Cells(1,1).Copy Sheets("Feuil2").Cells(1,1)
qui, attention, enverra de Feuil1 vers Feuil2.
Bon courage 😎
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

merci JNP, mais je sais que c'est le B A BA >_<

Ce que j'essaye vraiment de créer, c'est plus une macro qui dira :
Si dans telle cellule tu choisis ça, alors les réactions en chaine seront la transformation de telle cellule dans telle sheet, de telle cellule dans telle sheet.

Si tu choisis cette valeur, alors on doit cacher cette colonne, et changer cette cellule.

ce que je ne sais pas faire, c'est créer cet arbre des possibilités, pour les 4 valeurs que peut prendre ma cellule Source.

ce code :

Sheets("Feuil1").Cells(1,1) = Sheets("Feuil2").Cells(1,1)

j'aurai pu le creer sans macro nan??? ^_^

Merci en tout cas...
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Re 🙂,
Alors :
Code:
Select Case Cells(1,1)
Case "Oui"
    ....
Case "Non"
   ...
Case "Peut-être"
   ...
Case ...
   ...
Case Else
   ...
End Select
A + 😎
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Bonjour tout le monde, et plus particulierement JNP et VBAcrumble ^_^

Je reviens vers vous, parce qu'après presque un mois sans y avoir prété attention, je me suis attaqué à cette macro de nouveau, sans parvenir à grand chose je le crains... oui je sais je suis nul et c'est le B.A BA mais faut bien apprendre un jour non??? ^_^

Bref Voici le code que j'ai utilisé pour réaliser ma macro :

Code:
Sub Macro2()
    Sheets("Choose entity and period").Select
    Range("B11").Select
    Select Case Cells(11, 2)
        Case Is = "ACT"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(17, 3)
        Case Is = "BUD"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(13, 3)
            Define.Value.Sheets("Settings").Cells(17, 3) = "BUDEST"
        Case Is = "BUDEST"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Define.Value.Sheets("Settings").Cells(17, 3) = "ACT"
        Case Is = "BUDPRE"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Define.Value.Sheets("Settings").Cells(17, 3) = "BUDEST"
    End Select
End Sub

Le problème ici est que je n'ai pas définis d'objets, et donc cela coince à un moment donné...

Il faudrait en plus que je rajoute une possibilité, pour le cas ou Cell.VAlue="BUD", de cacher des colonnes dans une autre feuille, mais cela devrait pouvoir se négocier sans trop de difficultés, avec les codes du début du post...

De l'aide quelqu'un??? siouplé msieurs dames??? 😀

Merci à tous encore une fois
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Bonjour



Voici pour t'aider

Test sur un nouveau classeur

Saisi en B11 ACT
puis lance la macro
Va voir ensuite ce qui s'est passé en feuille 2

Code:
Sub Macro2()
    Select Case Sheets(1).Cells(11, 2)
        Case "ACT", "BUD", "BUDEST", "BUDPRE"
            Sheets(2).Columns(3).Hidden = True
        Case Else
           Sheets(2).Columns(3).Hidden = False
    End Select
End Sub
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Hey VbaCrumble, et Merci encore 😉

Ici la macro fonctionne bien sur la sheet 2, c'est à dire que cela cache bien les colonnes définies. Donc dans un premier temps, merci beaucoup ^^

Cependant, je dois aussi changer certaines valeurs suivant le Case, et d'après la macro que j'ai utilisé, les objets ne sont pas définis.

Une idée par rapport à ça??? je sais pas quels sont les objets que je dois définir pour réussir à changer les valeurs des différentes cellules en sheet 2 suivant mes différentes case. 😕

Merci encore une fois...
 
Re : Cacher des Colonnes et changer des cellules suivant la valeur d'une cellule déte

Bonjour Maohtsukai, JNP et vbacrumble, bonjour à toutes et à tous 🙂

Bref Voici le code que j'ai utilisé pour réaliser ma macro :
Code:
Sub Macro2()
    Sheets("Choose entity and period").Select
    Range("B11").Select
    Select Case Cells(11, 2)
        Case Is = "ACT"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(17, 3)
        Case Is = "BUD"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(13, 3)
            Define.Value.Sheets("Settings").Cells(17, 3) = "BUDEST"
        Case Is = "BUDEST"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Define.Value.Sheets("Settings").Cells(17, 3) = "ACT"
        Case Is = "BUDPRE"
            Sheets("Choose entity and period").Cells(11, 2) = Sheets("Settings").Cells(9, 3)
            Define.Value.Sheets("Settings").Cells(13, 3) = "BUD"
            Define.Value.Sheets("Settings").Cells(17, 3) = "BUDEST"
    End Select
End Sub

Le problème ici est que je n'ai pas définis d'objets, et donc cela coince à un moment donné...

Il faudrait en plus que je rajoute une possibilité, pour le cas ou Cell.VAlue="BUD", de cacher des colonnes dans une autre feuille, mais cela devrait pouvoir se négocier sans trop de difficultés, avec les codes du début du post...

De l'aide quelqu'un??? siouplé msieurs dames??? 😀

Je ne sais pas vraiment quelle est la finalité de ton code, mais le voici un peu nettoyé :

Code:
Sub Macro2()
'
Dim R As Range
'
    Set R = Sheets("Choose entity and period").Range("B11")
    
    Select Case R.Value
        Case "ACT"
            R = Sheets("Settings").Cells(9, 3)
            Sheets("Settings").Cells(13, 3) = "BUD"
            R = Sheets("Settings").Cells(17, 3)
        Case "BUD"
            R = Sheets("Settings").Cells(9, 3)
            R = Sheets("Settings").Cells(13, 3)
            Sheets("Settings").Cells(17, 3) = "BUDEST"
        Case "BUDEST"
            R = Sheets("Settings").Cells(9, 3)
            Sheets("Settings").Cells(13, 3) = "BUD"
            Sheets("Settings").Cells(17, 3) = "ACT"
        Case "BUDPRE"
            R = Sheets("Settings").Cells(9, 3)
            Sheets("Settings").Cells(13, 3) = "BUD"
            Sheets("Settings").Cells(17, 3) = "BUDEST"
    End Select
End Sub

En espérant que cela te soit utile 🙂 bien que je ne comprenne pas les affectations de valeur à R ou Sheets("Choose entity and period").Range("B11"), puisque cela représente le même objet Range.

@+ pour les questions suivantes 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour