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.