Problème boucle

J'ai ce code ci-dessous, le problème c'est que je n'arrive pas à faire une boucle sur la valeur (NonVide + Masque).

Auriez-vous une solution ? Merci.

        NonVide1 = Application.WorksheetFunction.CountA(Range("F6:F" & DerLigneOPEX))
        NonVide2 = Application.WorksheetFunction.CountA(Range("H6:H" & DerLigneOPEX))
        NonVide3 = Application.WorksheetFunction.CountA(Range("J6:J" & DerLigneOPEX))
        NonVide4 = Application.WorksheetFunction.CountA(Range("L6:L" & DerLigneOPEX))
        NonVide5 = Application.WorksheetFunction.CountA(Range("N6:N" & DerLigneOPEX))
        NonVide6 = Application.WorksheetFunction.CountA(Range("P6:P" & DerLigneOPEX))
        NonVide7 = Application.WorksheetFunction.CountA(Range("R6:R" & DerLigneOPEX))
        NonVide8 = Application.WorksheetFunction.CountA(Range("T6:T" & DerLigneOPEX))
        NonVide9 = Application.WorksheetFunction.CountA(Range("V6:V" & DerLigneOPEX))

        NumColonne = 6

        For Masque = 1 To 9

            If NonVide & Masque = 0 Then
                Cells(6, NumColonne).EntireColumn.Hidden = True
                Cells(6, NumColonne + 1).EntireColumn.Hidden = True
            Else
                Cells(6, NumColonne).EntireColumn.Hidden = False
                Cells(6, NumColonne + 1).EntireColumn.Hidden = False
            End If

        NumColonne = NumColonne + 2
        Next Masque

Salutation !

Dans son If tu devrait plutôt utiliser un And :

If NonVide = 0 And Masque = 0 Then

Restant à dispo si sa marche pas

Bonjour, Re Juice

Essaie avec ce code :

        For i = 1 To 9
            If Application.CountA(Range(Cells(6, 4 + 2 * i), Cells(DerLigneOPEX, 4 + 2 * i))) = 0 Then
                Cells(6, 4 + 2 * i).EntireColumn.Hidden = True
                Cells(6, 5 + 2 * i).EntireColumn.Hidden = True
            Else
                Cells(6, 4 + 2 * i).EntireColumn.Hidden = False
                Cells(6, 5 + 2 * i).EntireColumn.Hidden = False
            End If
        Next i

Sinon il faudrait passer par une variable tableau du style NonVide(1) = ..., NonVide(2) = ..., puis contrôler le résultat dans la boucle avec un NonVide(Masque). En effet, NonVide & Masque renvoie une chaîne de caractères, pas la variable NonVide1 par exemple.

Bonjour

peux etre comme ca

NUMCOLONNE = 6

        For Masque = 1 To 9
'  '          If NonVide & Masque = 0 Then
            If Application.WorksheetFunction.CountA(Range(Cells(6, NUMCOLONNE), Cells(DerLigneOPEX, NUMCOLONNE))) = 0 Then
                Cells(6, NUMCOLONNE).EntireColumn.Hidden = True
                Cells(6, NUMCOLONNE + 1).EntireColumn.Hidden = True
            Else
                Cells(6, NUMCOLONNE).EntireColumn.Hidden = False
                Cells(6, NUMCOLONNE + 1).EntireColumn.Hidden = False
            End If

        NUMCOLONNE = NUMCOLONNE + 2
        Next Masque

A+

Maurice

Merci pour votre aide,

PEDRO, je me suis servi de ton code et en le modifiant un peu ça fonctionne.

NumColonne = 6

        For i = 1 To 9

            If Application.CountA(Range(Cells(6, NumColonne), Cells(DerLigneOPEX, NumColonne))) = 0 Then

                Cells(6, NumColonne).EntireColumn.Hidden = True
                Cells(6, NumColonne + 1).EntireColumn.Hidden = True
            Else
                Cells(6, NumColonne).EntireColumn.Hidden = False
                Cells(6, NumColonne + 1).EntireColumn.Hidden = False
            End If

        NumColonne = NumColonne + 2
        Next i

Encore merci.

Merci pour votre aide,

PEDRO, je me suis servi de ton code et en le modifiant un peu ça fonctionne.

NumColonne = 6

        For i = 1 To 9

            If Application.CountA(Range(Cells(6, NumColonne), Cells(DerLigneOPEX, NumColonne))) = 0 Then

                Cells(6, NumColonne).EntireColumn.Hidden = True
                Cells(6, NumColonne + 1).EntireColumn.Hidden = True
            Else
                Cells(6, NumColonne).EntireColumn.Hidden = False
                Cells(6, NumColonne + 1).EntireColumn.Hidden = False
            End If

        NumColonne = NumColonne + 2
        Next i

Encore merci.

Ok, j'avais supprimé NumColonne car sauf erreur de ma part : NumColonne = 4 + 2 * i.

Re PEDRO,

Ok, j'avais supprimé NumColonne car sauf erreur de ma part : NumColonne = 4 + 2 * i

Tu as tout à fait raison sauf que je ne sais pas pourquoi, ça me masquait les colonnes à partir de W.

Un grand merci pour ton aide.

Rechercher des sujets similaires à "probleme boucle"