Code VBA : Boucle For … Next

Bonjour,

Dans le fichier ci-joint, j’ai un problème avec le passage suivant :

        For i = 20 To 31
            If Range("K:" & i) = "Age dépassé" Then
                Rows("i").Hidden = True
                Else
                Rows("i").Hidden = True
            End If
        Next

Tout d’abord, ça bloque sur la ligne :

            If Range("K:" & i) = "Age dépassé" Then

et je présume que quand vous m’aurez donné la solution pour ce passage, ça bloquera sur les lignes :

                Rows("i").Hidden = True
                Rows("i").Hidden = False

Pouvez-vous m'aider ?

A vous relire.

201annexe-3.xlsm (23.19 Ko)

Bonjour

Sub Masqueligne()
    For i = 20 To 32
    If Cells(i, 11) = "Age dépassé" Then Rows(i).Hidden = True
    Next
End Sub

Pas besoin de dire de ne pas masquer les autres lignes puisqu'au départ elles ne le sont pas.

Amicalement

Nad

Salut Nad,

Merci infiniment pour ton aide, j'ai ainsi pu résoudre mon problème (et si rapidement, j'en suis toujours autant étonné ).

Je désire que les lignes soient à nouveau visibles au cas où on change la date en H13 pour un âge plus jeune.

Je vais finalement utiliser le code suivant, comme dans le fichier joint :

For i = 20 To 31
        If Cells(i, 11) = "Age dépassé" Then
            Rows(i).Hidden = True
            Else: Rows(i).Hidden = False
        End If
        Next

Bonne fin de journée.

185annexe-3.xlsm (22.14 Ko)

Re

Je comprends alors pourquoi tu voulais afficher les lignes.

J'imagine que tu as modifié ton code entre temps car dans le dernier fichier joint il est toujours faux.

Pour calculer ton décimal en M13, tu as une formule plus simple (pas besoin de L13)

=(DATEDIF(H13;H14;"m")+1)/12

Amicalement

Nad

Salut Nad,

Je me demande si tu ne te trompes pas de fichier (j'ai malheureusement laissé le même nom pour les deux variantes ), mais le code - qui fonctionne bien - placé dans le deuxième fichier est bien celui inscrit dans le texte du message correspondant.

En ce qui concerne le calcul de l'âge en M13, je te remercie beaucoup pour ton conseil fort utile.

A la prochaine.

-- 11 02 2011 2:26 pm --

Re-Salut Nad,

Je me rends compte - après avoir fait plus d'essais - que ta formule ne donne pas le même résultat que les miennes (voir fichier ci-joint).

Nous travaillons effectivement uniquement avec les mois et les années, sans nous soucier des jours.

Mais merci quand même encore une fois pour ton aide.

Cordialement.

136essai-de-dates.xlsx (11.96 Ko)

Re

Il est vrai que je n'avais pas testé d'autres dates. La bonne formule est (en me servant de ton dernier fichier) :

=SI(JOUR(A2)>JOUR(B2);ARRONDI((DATEDIF(A2;B2;"m")+1)/12;5);ARRONDI(DATEDIF(A2;B2;"m")/12;5))

Amicalement

Nad

Cette fois nos résultats concordent Effectivement que ta solution est plus simple.

Merci et bonne fin de journée.

Rechercher des sujets similaires à "code vba boucle next"