Comment activer/desactiver une ligne dans excel en fonction de la valeur d'une c

Résolu
themagnakai Messages postés 2 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 11 mai 2007 - 11 mai 2007 à 10:33
Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012 - 11 mai 2007 à 11:19
Bonjour,

je suis nouveau sur le Forum, et je voudrais désactiver des lignes d'un tableau excel en fonction de la valeur d'une cellule.(Je sais pas si ca change quelque chose mais je travail juste avec l'éditeur vb6.3 d'excel). Il faut que je lance cette macro à partir d'un bouton.

   Pour i=2 à valeur (de la dernière_ligne du tableau)
      Si cellule("D"&i)="inactif" alors
            rendre la ligne(i) inactive
      sinon
            rendre la ligne(i) active
      Fin si
   Fin pour

Merci d'avance à celui qui pourra m'aider.

5 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 mai 2007 à 10:42
Qu'est-ce que tu appelles Rendre une ligne inactive ? Juste la masquer, la verrouiller ?
Si c'est la masquer, il te faudra un bout de code du style :

for i = 2 to DernièreLigne '(plein de codes existe sur le site te donnant ceci, moi même je me suis fait une fonction que je réutilise à l'infini)
      if Range("D3&i).value = "Inactif" then      
         row(i & ":" & i).EntireRow.Hidden=true
         else
         row(i & ":" & i).EntireRow.Hidden=false
      end if
next i

Attention tout de même avec les codes pour déterminer la dernière ligne (utilisant la propriété .End), si tu as des lignes masquées, elles ne sont pas considérées, ça saute les lignes vides masquées par ex. Ca ne te pose peut être pas de pbs, mais faut le savoir.

Molenn
3
Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012
11 mai 2007 à 10:50
Que veux-tu dire par "désactiver" ?

Tu veux cacher la ligne ("masquer") ?
Si c'est bien ça que tu veux faire, il suffira de changer la propriété "hidden" de ta ligne, comme suit :

For i = 2 To derniere_ligne (à calculer, derniere_ligne)
    If (Range("D" & i) = ???) Then
       Rows(i).EntireRow.Hidden = True
    Else
       Rows(i).EntireRow.Hidden = False
    End If
Next
Range("D" & i) peut être remplacé par Cells(i,4)

Maintenant je ne pense pas que tu veuilles dire masquer car une cellule seule ne peut l'être...
Tu veux peut-être dire vide ?
Dans ce cas le test serait WorksheetFunction.CountBlank(Range("D" & i) = 1)
Ensuite, pour supprimer les valeurs de la ligne : Rows(i).ClearContents
Ou pour supprimer carrément la ligne : Rows(i).Delete
3
Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012
11 mai 2007 à 11:19
Tu peux simplement protéger la feuille et vérouiller ou dévérouiller les cellules (une cellule vérouillé sur une feuille protégée n'est pas modifiable).

Ensuite, il te suffit de changer la mise en forme en même temps, avec la propriété Interior.ColorIndex par exemple pour le fond.

PS : Personne pour m'aider moi ? :S (sujet juste dessous)
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 mai 2007 à 10:42
Salut,
Bienvenu
Bien posé comme problème,
Juste une chose, qu'entends tu par Active ou inactive?

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
themagnakai Messages postés 2 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 11 mai 2007
11 mai 2007 à 11:00
En fait, ca reviendrait au même que de rendre un bouton inactif, tu le vois mais il sert à rien, je voudrais les figées en fait.
J'ai une liste de 500 emplacements, pour chaque emplacement j'ai une cellule où on peut choisir si l'emplacement est actif ou pas. Si il est inactif alors je veux que ma ligne soit figée (et pourquoi pas change d'apparence), mais existe-t-il quelque chose de similaire à la propriété enabled des boutons pour les lignes excel.???

Je vais déjà essayer ce que vous m'avez donné, en tout cas merci beaucoup, vous avez fait vite.

PA
0
Rejoignez-nous