if<condition>then<action>

N

nanor

Guest
if<condition>then<action>

Salut le forum,

Bonne reprise à tous!

J'ai une petite question de vba que je n'arrive pas à résoudre.

Je voudrais qu'en fonction de la valeur d'une cellule, mon tableau s'ajuste au mois concerné (en masquant automatiquement certaines colonnes). J'ai testé la commande suivante mais ca ne fonctionne pas.


Sub Selection_mois()
If UCase(Range("A3")) = "Janvier" Then
Cells.Select
Selection.EntireColumn.Hidden = False
Columns("T:BK").Select
Selection.EntireColumn.Hidden = True
Columns("BP:DG").Select
Selection.EntireColumn.Hidden = True
Columns("DJ:DT").Select
Selection.EntireColumn.Hidden = True
End If
End Sub

Est-ce que vous avez une idée de l'erreur dans mon code?
 
@

@+Thierry

Guest
Re: if<condition>then<action>

Re Bonjour

En fait je n'ai fait que reprendre le code proposé par Spaw dans le fichier qu'il a joint pour aider Nanor, et je n'ai fait que l'affiner un poil.

A noter que que je quand disais j'ai viré les "Select", je ne parlais pas de "Select Case" mais des "Select" de Selection. etc qu'il y avait dans ce code.

Pour ce qui est du Ucase, Pyrof, essaie le code que j'ai mis ci-dessus et tu comprendras ce qu'est :
Option Compare Text en tête de module est qui permet de taper comme on veut que ce soit Janvier ou JANVIER ou encore jAnVieR ... qui seront tous égaux (par défaut sans être précisée cette option est en mode Binaire, donc en la signalant en Mode Text on se simplifie la vie dans ce cas de figure)

Il semble que tu connaissaies pas cette option qui comme je l'écrivais audessus est très pratique pour éviter ce genre de risque quand le critère dépend d'une string tapée par le User.

Voilà pour la petite histoire...

Bon Après Midi
@+Thierry
 
N

nanor

Guest
Re: if<condition>then<action>

Je viens d'essayer les modifs que tu as proposé Thierry et c'est encore mieux

en effet, c'est + rapide et il le rectangle de sélection reste sur la cellule avec la liste de choix (si je veux faire défiler les mois je gagne + de temps!!)

Pour le <b>Option Compare Text<b> c'est également bien pratique!

Merci

nanor
 
P

pyrof

Guest
Re: if<condition>then<action>

Bonjour,

Excue moi Thierry, je n'avais pas fait attention à la commnade Option Compare Text.

Voici une autre solution encore plus simple
1) donner un nom à chaque colonne mois janvier ,février ( attention au accent) il faut la même orthographe que dans la cellule de sisie du mois

donne le nom annee à toutes les colonnes mois

et la macro simplifié qui suit:

Sub essai()
x = Cells(1, 1).Value
Range("annee").EntireColumn.Hidden = True
Range(x).EntireColumn.Hidden = False
End Sub


avec l'utilisation de range("Nom de cellule") on peut déplacer ces cellules sans avoir à corriger le code vba.
 
@

@+Thierry

Guest
Re: if<condition>then<action>

Bonjour à tous et toutes,

Très bien ta soluce Pyrof, simple et efficace.

Et tant qu'on aborde les noms d'objets, comme StepLof l'a constaté récemment...(voir fil <http://www.excel-downloads.com/html/French/forum/messages/1_12692_12692.htm>, je préconise aucun accent ni signe particulier, ni espace... Même si l'objet sur l'instant "laisse passer" le nom... C'est une cause de galère quand on fait appel à ce nom dans certaines instructions... (Pas toutes les instructions mais certaines, mais bon, moi je fais comme si c'était tout le temps interdit et je m'évite plein de prise de tête)

Enfin vous faites comme vous voulez ... :)

Bonne Journée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
314 019
Messages
2 104 649
Membres
109 092
dernier inscrit
ahm74