Boucle Passage de colonne en colonne

Signaler
Messages postés
3
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour,

Je recherche un code me permettant d'effectuer les actions suivantes:

1 - Tester une cellule de colonne en colonne sur une plage donnée
2 - Test : la cellule est vide ( la cellule contient une fonction somme)
3 - Si la condition est remplie alors la colonne qui contient cette cellule est masquée

Merci par avance

5 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

test sur les cellules d'une même ligne :

Dim oRange as range

for each oRange in Range("A1:F1")
    MsgBox oRange.Text
next oRange

Test si la cellule est vide :
If range("A1").Text vbNullString Or range("A1").Text "0" Then
    ...
End if

Cacher, réafficher une colonne :

Columns(1).Hidden = True
Columns(1).Hidden = False

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
"Masquée" : Tu ne veux pas que la cellule affiche le zéro si elle vaut zéro ?
--> Menu "Outils", "Options", onglet "Affichage" et décoche la case à cocher "Valeurs zéro" dans la zone "Fenêtres"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

Merci je vais essayer.
Messages postés
3
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

Voici le code que j'ai écrit mais je rencontre un problème, la boucle ne se fait pas entièrement, elle s'arrète colonne AM au lieu d'aller jusqu'à la colonne BT. Je ne comprends pas pourquoi. Merci je me dire pourquoi.

Code:

Dim oRange As Range

Range("W3").Select

For Each oRange In Range("W3:BT3")

If oRange.Text vbNullString Or oRange.Text "0" Then
ActiveCell.EntireColumn.Select
Selection.EntireColumn.Hidden = True
Else: Selection.EntireColumn.Hidden = False
End If

Next oRange
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

ça n'a pas lieu d'être :

Sub test()
Dim oRange As Range

    Range("W3").Select
    
    For Each oRange In Range("W3:BT3")
            Debug.Print oRange.Address
'            If
oRange.Text vbNullString Or oRange.Text "0" Then
'                ActiveCell.EntireColumn.Select
'                Selection.EntireColumn.Hidden =
True
'            Else:
Selection.EntireColumn.Hidden = False
'            End If
            
    Next oRange
End Sub
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

Resultat :

$W$3
$X$3
$Y$3
$Z$3
$AA$3
$AB$3
$AC$3
$AD$3
$AE$3
$AF$3
$AG$3
$AH$3
$AI$3
$AJ$3
$AK$3
$AL$3
$AM$3
$AN$3
$AO$3
$AP$3
$AQ$3
$AR$3
$AS$3
$AT$3
$AU$3
$AV$3
$AW$3
$AX$3
$AY$3
$AZ$3
$BA$3
$BB$3
$BC$3
$BD$3
$BE$3
$BF$3
$BG$3
$BH$3
$BI$3
$BJ$3
$BK$3
$BL$3
$BM$3
$BN$3
$BO$3
$BP$3
$BQ$3
$BR$3
$BS$3
$BT$3

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA