Comment activer/desactiver une ligne dans excel en fonction de la valeur d'une c [Résolu]

themagnakai 2 Messages postés lundi 16 mai 2005Date d'inscription 11 mai 2007 Dernière intervention - 11 mai 2007 à 10:33 - Dernière réponse : Sir_DEC 144 Messages postés mardi 17 avril 2007Date d'inscription 12 mai 2012 Dernière intervention
- 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.
Afficher la suite 

5 réponses

Répondre au sujet
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 11 mai 2007 à 10:42
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Molenn
Sir_DEC 144 Messages postés mardi 17 avril 2007Date d'inscription 12 mai 2012 Dernière intervention - 11 mai 2007 à 10:50
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Sir_DEC
Sir_DEC 144 Messages postés mardi 17 avril 2007Date d'inscription 12 mai 2012 Dernière intervention - 11 mai 2007 à 11:19
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Sir_DEC
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 11 mai 2007 à 10:42
0
Utile
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
Commenter la réponse de jrivet
themagnakai 2 Messages postés lundi 16 mai 2005Date d'inscription 11 mai 2007 Dernière intervention - 11 mai 2007 à 11:00
0
Utile
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
Commenter la réponse de themagnakai

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.