Masquer des lignes sous conditions
Résolu/Fermé
Nepenthes6224
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
-
16 avril 2018 à 16:45
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 17 avril 2018 à 14:42
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 17 avril 2018 à 14:42
A voir également:
- Masquer des lignes sous conditions
- Masquer conversation whatsapp - Guide
- Comment masquer les amis sur facebook - Guide
- Masquer application android - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Partager des photos en ligne - Guide
7 réponses
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
16 avril 2018 à 18:21
16 avril 2018 à 18:21
Bonjour,
Pas sûr que ce soit bon, mais si "ACTIVITY" est le nom de l'onglet, il faut le mettre entre guillemets. Le message d'erreur au débogage devrait t'indiquer quelque chose dans ce sens. (ACTIVITY non définie)
Pour passer de ligne en ligne il faut une boucle.
Essaie :
Pas sûr que ce soit bon, mais si "ACTIVITY" est le nom de l'onglet, il faut le mettre entre guillemets. Le message d'erreur au débogage devrait t'indiquer quelque chose dans ce sens. (ACTIVITY non définie)
Pour passer de ligne en ligne il faut une boucle.
Essaie :
ligne=2 While Cells(ligne,9).Value <> "" If Cells(ligne,9).Value = "100" And Sheets("ACTIVITY).Range("G" & ligne) < startMonth Then Cells(ligne,9).EntireRow.Hidden = True ligne=ligne+1 Wend
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
16 avril 2018 à 18:30
16 avril 2018 à 18:30
Bonjour
Difficile de répondre sans le fichier, dans un premier temps essaies ceci pour la ligne 2 de la colonne I (ton exemple)
Cdlmnt
Difficile de répondre sans le fichier, dans un premier temps essaies ceci pour la ligne 2 de la colonne I (ton exemple)
Range("I2").Select If ActiveCell.Value = 100 And Sheets("ACTIVITY").Range("G2") < startMonth Then ActiveCell.EntireRow.Hidden = True
Cdlmnt
Nepenthes6224
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
5
Modifié le 17 avril 2018 à 09:50
Modifié le 17 avril 2018 à 09:50
Merci pour vos réponses.
Actuellement, j'ai ceci qui ne me met pas de bug (en fait, ma feuille "Activité" se nomme de 3 manières, je ne comprends pas, du coup je me suis plantée : elle s'appelle "feuil1", Activité, et SHEET_ACTIVITY. Difficile de comprendre le pourquoi du comment). En corrigeant, il ne me mets plus d'erreur :
'-----------> Hide rows
Dim numero As Integer
numero = 3
While numero <= 999
Sheets(sheetName).Cells(numero, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(numero, 7) < startMonth Then ActiveCell.EntireRow.Hidden = True
Cells(numero, 9) = numero
numero = numero + 1
Wend
Par contre, dépendant de où je le place dans cette immense macro, soit il ne fait rien, soit il remplace ma colonne G par les chiffres de 3 à 999
Actuellement, j'ai ceci qui ne me met pas de bug (en fait, ma feuille "Activité" se nomme de 3 manières, je ne comprends pas, du coup je me suis plantée : elle s'appelle "feuil1", Activité, et SHEET_ACTIVITY. Difficile de comprendre le pourquoi du comment). En corrigeant, il ne me mets plus d'erreur :
'-----------> Hide rows
Dim numero As Integer
numero = 3
While numero <= 999
Sheets(sheetName).Cells(numero, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(numero, 7) < startMonth Then ActiveCell.EntireRow.Hidden = True
Cells(numero, 9) = numero
numero = numero + 1
Wend
Par contre, dépendant de où je le place dans cette immense macro, soit il ne fait rien, soit il remplace ma colonne G par les chiffres de 3 à 999
Nepenthes6224
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
5
Modifié le 17 avril 2018 à 11:28
Modifié le 17 avril 2018 à 11:28
J'ai ceci où il ne me remplace plus les données par des chiffres et où il ne me met pas de bug, mais je n'ai aucune ligne qui se cache :
For i = 1 To 999
Next
Sheets(sheetName).Cells(i, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(i, 7) < startMonth Then ActiveCell.EntireRow.Hidden = True
Cells(i, 9) = i
i = i + 1
For i = 1 To 999
Next
Sheets(sheetName).Cells(i, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(i, 7) < startMonth Then ActiveCell.EntireRow.Hidden = True
Cells(i, 9) = i
i = i + 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nepenthes6224
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
5
17 avril 2018 à 12:49
17 avril 2018 à 12:49
Je pense que la macro ne fait rien car ma date en colonne G est jj/mm/aaaa et ma "start date" est juste un mois. Du coup, j'essaie de convertir le tout en une date, mais ça plante. Sachant que le mois et l'années sont deux variables mises dans des cellules différentes (et que l'on fait varier selon ce que l'on veut voir apparaître de la ligne du temps) ( = startMonth et startYear) :
For i = 3 To 999
Next
Dim endproject As Date
endproject = "startMonth" & "startYear"
Sheets(sheetName).Cells(i, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(i, 7) < endproject Then ActiveCell.EntireRow.Hidden = True
Cells(i, 9) = i
i = i + 1
For i = 3 To 999
Next
Dim endproject As Date
endproject = "startMonth" & "startYear"
Sheets(sheetName).Cells(i, 9).Select
If ActiveCell.Value = "100" And Sheets(SHEET_ACTIVITY).Cells(i, 7) < endproject Then ActiveCell.EntireRow.Hidden = True
Cells(i, 9) = i
i = i + 1
Nepenthes6224
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
5
17 avril 2018 à 14:26
17 avril 2018 à 14:26
Bon, finalement, j'ai trouvé un truc plus simple, j'ai seulement rajouté des colonnes dans la feuille de départ, où je mets mes conditions (et ça met un x quand les conditions sont réunies), et dans la macro, je ne sélectionne que les lignes où le x est mis :-)
En effet, mon bug est du au format "date" (bien que j'aie essayé de mettre le format en date, ça se plante. Idem de toute façon dans les conditions "excel" (et non vba), j'ai dû mettre (if G2<DATE(Home_E4) sinon il ne le comprenait pas comme une date (bien que ma cellule est inscrite comme une date).
Merci à tous!
En effet, mon bug est du au format "date" (bien que j'aie essayé de mettre le format en date, ça se plante. Idem de toute façon dans les conditions "excel" (et non vba), j'ai dû mettre (if G2<DATE(Home_E4) sinon il ne le comprenait pas comme une date (bien que ma cellule est inscrite comme une date).
Merci à tous!
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
17 avril 2018 à 14:42
17 avril 2018 à 14:42
Sans le fichier, on joue un peu aux devinettes.......
Un exemple qui te montrera comment tu peux tenter faire ça
https://www.cjoint.com/c/HDrmOO7GPwB
Cdlmnt
Un exemple qui te montrera comment tu peux tenter faire ça
https://www.cjoint.com/c/HDrmOO7GPwB
Cdlmnt
17 avril 2018 à 10:00
Sheets(sheetName).Cells(numero, 9).Select
ligne = 2
While Cells(ligne, 9).Value <> ""
If Cells(ligne, 9).Value = "100" And Sheets(SHEET_ACTIVITY).Range("G" & ligne) < startMonth Then Cells(ligne, 9).EntireRow.Hidden = True
ligne = ligne + 1
Wend
error 1004 : application-defined or object-defined error