Colonnes cachées ou pas cachées

  • Initiateur de la discussion Seb
  • Date de début
S

Seb

Guest
Salut à tous,

Voilà je veux faire une petite macro qui me cache des colonnes, en fonction de la valeur contenue dans une cellule d'une autre feuille. Ca marche nickel à coups de elseif, seulement il n'y a qu'une partie qui marche.
Et quand je fais la macro remise à zéro (qui affiche également que les colonnes utiles, certaines ne contiennent rien (mais je peux pas les supprimer qd meme)), c'est pareil, c'est assez aléatoire, il m'en cache certaines et pas les autres.
Voilà un bout de la raz, je connais pas grd chose en VB alors j'ai fait ça en enregistrant et apres, par intuition, disons... Je fais tout à coups de Selection.EntirezColumn.hidden = true ou false.
Si qqun a la solution, MERCI !!

Code:
Sub RAZ()

Sheets('Suivi Actions').Select
Columns.Hidden = False

Columns('A:BM').Select
Selection.EntireColumn.Hidden = False

Range('T:V,AD:AF,AI:AI,AK:AK,AS:AS,AU:AU').Select   'colonnes toujours cachées
Selection.EntireColumn.Hidden = True
Range('A:G').Select
Selection.EntireColumn.Hidden = False
Range('H:H').Select
Selection.EntireColumn.Hidden = True
Range('I:I').Select
Selection.EntireColumn.Hidden = False
Range('J:J').Select
Selection.EntireColumn.Hidden = True
Range('K:L').Select
Selection.EntireColumn.Hidden = False
Range('M:M').Select
Selection.EntireColumn.Hidden = True
Range('N:N').Select
Selection.EntireColumn.Hidden = False
Range('O:O').Select
Selection.EntireColumn.Hidden = True
Range('P:P').Select
Selection.EntireColumn.Hidden = False
Range('Q:Q').Select
Selection.EntireColumn.Hidden = True
Range('R:S').Select
Selection.EntireColumn.Hidden = False

End Sub
 

G.David

XLDnaute Impliqué
essayes deja
range(a:c;h:h;l:l;t:v).EntireColumn.Hidden = False

ca eclaiciera un peu ton code
et noublie pas que
si ti as un if condition
alors on fait ca
else
elseif autre condition
on fait ceci
else '(sinon aucune condition remplies)
alors on fait autre chose

end if 'fin de choix

je pense que tu ne doit pas faire attention si aucune condition n'est remplies donc Excel fait a l ''inspiration '
Cordialement
G.David
 
S

Seb

Guest
Pour le range, j'ai déjà essayé, mais l'effet est strictement le même.
Le coup du if, en fait de toute façon je l'ai bien fait, j'ai mis dans la cellule concernée des limites aux valeurs qu'on peut tapées (4, en fait), donc j'ai fait un
if condition then
instructions
elseif condition then
instructions
...
endif

Mais le problème vient pas de là. Même pour la RAZ, où il n'y a pas de conditions cette fois, les colonnes qui doivent etre cachées ne le sont pas toutes, et certaines sont cachées alors qu'elles ne devraient pas. Par exemple on voit avec le bout de code que j'ai donné plus haut uniquement les colonnes A à D puis à partir de S normalement (caché si je l'ai dit, pas caché si je l'ai dit)
Ou alors il ne me cache pas les colonnes entre G et S, certaines que je lui ai dit de cacher, et là il m'affiche tout.

Si qqun peut avoir un éclairage... merci !
 
S

Seb

Guest
Très concretement, (essai a l'instant) :
Code:
Sub RAZ()

Sheets('Suivi Actions').Select
Columns.Hidden = False

Columns('A:BM').Select
Selection.EntireColumn.Hidden = False

Range('H:H,J:J,M:M,O:O,Q:Q,T:V,AD:AF,AI:AI,AK:AK,AS:AS,AU:AU').Select   'colonnes toujours cachées
Selection.EntireColumn.Hidden = True

Range('A:G,I:I,K:L,N:N,P:P,R:S').Select
Selection.EntireColumn.Hidden = False

End Sub

Ca me cache tout ce qu'il faut, sauf les colonnes H, J, M, O, et Q.
Pourquoi ?????
 
S

Seb

Guest
Et ceci :

Code:
Sub AEIP()

Dim test As String
Sheets('Saisie').Select
test = Range('C5').Value

If test = 'I' Then
    Sheets('Suivi Actions').Select
    Columns('W:W').Select
    Selection.EntireColumn.Hidden = True
ElseIf test = 'A' Then
    Sheets('Suivi Actions').Select
    Columns('K:R').Select
    Selection.EntireColumn.Hidden = True
    Columns('W:Z').Select
    Selection.EntireColumn.Hidden = True
    Columns('AJ:AJ').Select
    Selection.EntireColumn.Hidden = True
    Columns('AM:AN').Select
    Selection.EntireColumn.Hidden = True
ElseIf test = 'E' Then
    Sheets('Suivi Actions').Select
    Columns('I:R').Select
    Selection.EntireColumn.Hidden = True
    Columns('W:Z').Select
    Selection.EntireColumn.Hidden = True
    Columns('AM:AN').Select
    Selection.EntireColumn.Hidden = True
End If


End Sub
Systématiquement il n'affiche que les colonnes A à D (qui sont figées), puis normalement à partir de la S. Enfin bonje crois que je vais finir par laisser tomber pour l'instant, à moins que qqun arrive à me décoincer...
 

G.David

XLDnaute Impliqué
Seb
il est possible que ce qui merde soit simplement du au nom de ta feuille : Suivi actio essayes de le remplacer par Suivi_action dans VBA et sur l'onglet . je ne sais pas pourquoi mais VBA n'apprécie pas du tout les espace dans les noms
G.David
 
S

Seb

Guest
Cette fois je pige plus... J'ai réessayé en faisant enregistrer une nouvelle macro qui est celle ci :
Code:
Sub Macro1()
    Sheets('Suivi_Actions').Select
    Range('H:H,J:J,M:M,O:O,Q:Q').Select
    Selection.EntireColumn.Hidden = True
End Sub
Et juste ça, je l'envoie (avec auparavant toutes les colonnes visibles), et il me cache les colonnes E à R incluses. C'est tout de même pas normal, y a bien une solution, non ?
 
S

Seb

Guest
Bon et ben je suis vraiment désolé de vous avoir embetés avec ça toute la journée, mais j'ai fini par trouver... Je suis simplement un boulet, y avait un endroit ou ces oclonnes étaient fusionnées j'avais pas fait gaffe...
Alors désolé et merci qd meme a ceux qui m'ont fait des suggestoins...
 

G.David

XLDnaute Impliqué
sur ya queque choise qui cloche chez mpoi ca marche OK
essayes voir de faire
aide
detecter et reparer
si que des fois Excel il aurait pas des vapeurs
un petit office Update par dessus (ca ne peut pas nuire)
apres reessayes tes macros
Cordialement
G.David
 

Statistiques des forums

Discussions
312 765
Messages
2 091 888
Membres
105 084
dernier inscrit
lca.pertus