Affichage cellule suivant un critère

erasal

XLDnaute Nouveau
Bonsoir,

J'ai effectué une note de calcul où j'ai intégré des menus déroulants qui laisse le choix à l'utilisateur de certains paramètres et actionnant ou non certains calculs. Bref j'aimerais selon le choix de l'utilisateur pouvoir griser/ou masquer les cellules inutiles (ou l'utilisateur n'aura pas à rentrer de données )

Pour résumer un truc du genre : si telle cellule = 1 alors telle plage de cellule est masquée

J'espère avoir été clair, si vous pouviez m'aider car je débute en VBA
merci d'avance
 

erasal

XLDnaute Nouveau
Re : Affichage cellule suivant un critère

Bon bah j'ai réussi à écrire un programme :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Cells(12, 17).Value = "2" Then

Rows("40:42").Select
Selection.EntireRow.Hidden = True
Else
Rows("40:42").Select
Selection.EntireRow.Hidden = False

End If
End Sub

donc ça fonctionne mais j'ai une souci quand même, il faut que j'aille dans la cellule (Q17 ici) et press enter pour que ça s'active une solution??
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Affichage cellule suivant un critère

Bonjour le fil, bonjour le forum,

Tu vas perdre du temps inutilement car on ne pourra te venir en aide de façon efficace qu'avec un fichier exemple en pièce jointe. Si ton fichier original est trop volumineux, un exemple reprenant sa structure (nom des onglets, plages nommées, etc..) et une poignée de données non confidentielle suffira... Mets-y des explications claires et, pourquoi pas, ce que tu as avant et ce que tu voudrais après.
Fait cet effort et tu verras que les réponses vont foisonner (comme les mensonges dans la bouche d'un homme politique)...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Affichage cellule suivant un critère

Bonjour le fil, bonjour le forum,

il te faut répondre en utilisant le mode avancé. [Alt]+[x] ou le bouton Aller en mode avancé en bas de la discussion. Dans ce mode, tu as une icône représentant un trombone (l'avant derniere de la première ligne des icônes). Tu cliques dessus et une fenêtre s'ouvrira pour envoyer ton fichier. Lis le contenu pour connaître les limites de poids...
 

erasal

XLDnaute Nouveau
Re : Affichage cellule suivant un critère

Re tout d'abord merci ^^

donc je ré explique mon souci avec un fichier résumant ce que j'ai fait jusque là et les soucis que j'ai

Donc en gros j'ai :

des combosboxes qui sont controlés par des cellules : dans l'exemple si je choisis non alors la cellule A1 = 2 et si oui A1=1
Et après si je dis Oui l'utilsateur doit rentrer des données, ici hauteur et matériau à l'aide d'une autre combobox (tjs controlée par des cellules)

j'aimerais :

Que selon le choix de l'utilisateur (s'il choisit non) alors la ligne où il faut rentrer des données disparaissent

Mes soucis :

Le programme que j'ai fait fonctionne sauf que je dois (lors du choix avec la combobox) aller dans la cellule A1 et appuyer sur entrée.
si j'appuis sur entrée les lignes disparaissent (8 à 10 ici) mais la combobox reste

mes questions :

Comment faire que le programme marche sans devoir appuyer sur entrée?
Comment faire disparaitre les combobox suivant le même critère (je dois les programmer en VBA?)


Merci pour ceux qui m'aideront ^^
Ici le fichier test
 

Pièces jointes

  • test1.xls
    31.5 KB · Affichages: 56
  • test1.xls
    31.5 KB · Affichages: 60
  • test1.xls
    31.5 KB · Affichages: 55

Robert

XLDnaute Barbatruc
Repose en paix
Re : Affichage cellule suivant un critère

Bonjour le fil, bonjour le forum,

J'ai enfin compris ton problème... En effet il semblerait que le changement d'une cellule liée à une combobox ne déclenche pas l'événement Change ni le Calculate d'ailleurs (je le découvre grâce à toi !).
On peut contourner ce problème en créant une macro dans un module qui reprend le code de la macro événementielle :
Code:
Sub Macro1()
If Cells(1, 1).Value = 2 Then
    Rows("8:10").Hidden = True
Else
    Rows("8:10").Hidden = False
End If
End Sub
et en l'affectant à la combobox par un clic du bouton droit / option Affecter une macro...
Vois ton fichier modifié :
 

Pièces jointes

  • Erasal_v01.xls
    33 KB · Affichages: 75

erasal

XLDnaute Nouveau
Re : Affichage cellule suivant un critère

Merci Robert ça marche
mais ça me fait bugger mes autres feuilles, on peut faire pareil pour masquer des cellules qui ne e trouvent pas dans la même feuille?

Sinon pour masquer des combobox il faut les créer en VBA ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Affichage cellule suivant un critère

Bonjour le fil, bonjour le forum,

Merci Robert ça marche
mais ça me fait bugger mes autres feuilles, on peut faire pareil pour masquer des cellules qui ne e trouvent pas dans la même feuille?
Sinon pour masquer des combobox il faut les créer en VBA ?

Pfff... Comment veux-tu qu'on te réponde ! Tu ne nous montres même pas la ligne de code où ça plante et dans ton fichier exemple il n'y a rien sur les autres feuilles... pour masquer des lignes d'un autre onglet il faut spécifier l'onglet dans le code :
Code:
Sub Macro1()
Sheets("Le_nom_de_ton_Onglet").Rows("8:10").Hidden = Sheets("Le_nom_de_ton_Onglet").Range("A1") = 2
End Sub
Pour ce qui est de masquer les comboboxes, je n'en sais rien. Je ne travaille jamais avec des outils de la barre d'outil Fomulaires car je les trouve plus difficile à gérer. Je préfère passer par une UserForm...

Mais pour éviter de perdre du temps en palibres stérales voire même en palabres stériles, envoie un fichier qui correspond à ton problème...
 

erasal

XLDnaute Nouveau
Re : Affichage cellule suivant un critère

J'ai réglé mon souci car j'avais laissé le programme dans la feuille, et dans le module!
Sinon j'ai trouvé aussi comment changé de couleur
Code:
 Sheets("Réservoir").Range("b27:d37").Interior.ColorIndex = 0
   Sheets("Réservoir").Range("b10:d25").Interior.ColorIndex = 15

mais comment faire pour garder le format de base ? Ou si qqn a le colorindex qui correspond à la palette sou excel 2010 car celle dans l'aide n'est pas très à jour !!
 

Statistiques des forums

Discussions
312 420
Messages
2 088 268
Membres
103 796
dernier inscrit
Adrien NCH