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

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

Votre réponse

5 réponses

Meilleure réponse
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
3
Merci
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

Merci Molenn 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Molenn
Messages postés
144
Date d'inscription
mardi 17 avril 2007
Dernière intervention
12 mai 2012
3
Merci
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

Merci Sir_DEC 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Sir_DEC
Messages postés
144
Date d'inscription
mardi 17 avril 2007
Dernière intervention
12 mai 2012
3
Merci
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)

Merci Sir_DEC 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Sir_DEC
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
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
Messages postés
2
Date d'inscription
lundi 16 mai 2005
Dernière intervention
11 mai 2007
0
Merci
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.