Correction de macro Excell,

plastickman Messages postés 66 Statut Membre -  
plastickman Messages postés 66 Statut Membre -
Bonjour à tous,

Depuis mon dernier passage sur le site je bute sur un problème et je ne trouve aucune explication vraiment logique, je m'explique:

J'ai une macro:

Sub LOCAUX()

Range("B41:B85").Select
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True

End If


Next

Sheets("feuille 2").Select
Range("B5:B50").Select
For Each o In Selection

If o.Value = "" Then

o.EntireRow.Hidden = True
End If
Next


End Sub


Le but est de masquer les lignes entre 41 et 85 de ma feuille 1 lorsque les cellules B 41:85 sont vides, et même chose pour la feuille 2 avec les lignes 5 à 50.

Précisons que le bouton est situé sur la feuille 1, que la différence entre les cellules B de la feuille 1 et de la feuille 2 est :dans le second cas elles contiennent une formule.

Et le résultat est que tout fonctionne très bien sur la feuille 1 mais que sur la feuille 2 il me reste toujours 5 lignes qui ont toutes en commun d'avoir un remplissage en colonne A. Et pour les faire disparaitre correctement il faut que j'efface soit le remplissage de la colonne A soit la formule de la colonne B.... et là je ne vois plus du tout... car dans les 40 autres lignes qui ont bien été masquée, un bon paquet avaient les mêmes caractéristiques.


Une deuxième chose:
Je veux masquer ma colonne E si les cellules E10:E50 sont vides, comment faire sans utiliser "une condition par cellule" puis "and _"


MERCI d'avance à tous ceux qui prendront le temps de me répondre.

A+

4 réponses

le père
 
Bonjour

ça a bien l'air de marcher chez moi...
Dans ta feuille2, quelles valeurs as-tu en colonne A et quelles formules en colonne B ?
N'as-tu pas des espaces qui te feraient croire qu'une ligne est vide ?
0
plastickman Messages postés 66 Statut Membre 6
 
Bien vu, c'était effectivement un problème d'espace, mais pas celui auquel je pensais, en fait ma formule en B étatait du type:
=Feuil1!A4&" "&Feuil1!B4, et je ne pensait pas que l'espace de la formule était pris en compte.... mais ça n'explique pas pourquoi ça fonctionnait sur la majorité des autres ligne..... en fin bref, maintenent ça marche et c'est le principal !
Merci beaucoup,

Par contre est ce que tu saurais me résoudre mon problème de colonne ? parce que avec ma méthode j'y suis encore demain !
0
le père
 
ça ressemble beaucoup :


Sub colonneE()

Dim F As Worksheet
Dim o As Range

Set F = Worksheets("Feuil1") ' ou ActiveWorksheet, ça dépend de ce que tu veux
For Each o In F.Range("E10:E50")
If o.Value <> "" Then Exit Sub
Next o
F.Range("E1").EntireColumn.Hidden = True

End Sub
0
plastickman Messages postés 66 Statut Membre 6
 
Merci encore une fois, ça fonctionne bien. Sans doute à très bientôt.

A+
0