Excel VBA Macro ... je craque

Fermé
Nico_imuh - Modifié par Nico_imuh le 11/06/2013 à 18:26
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 12 juin 2013 à 23:53
Bonjour, à toutes, à tous,

Je suis nouvel utilisateur (en tant que posteur), mais je vous suis reconnaissant depuis de longue années, tant vous m'avez apporté de solutions.

Voilà je vous explique mon problème.

Je n'ai jamais pris de cours d'excel ou VBA seulement, ai tout appris seul. J'ai un petite société de location de matériel, et pour bien gérer cette affaire il me faut un tableur pour avoir un visu sur les plannings de sortie/retour de matériel.... semaine par semaine bref...

je ne pense pas pouvoir uploader de piece jointe donc j'explique la requête :)

Donc il y a 3 types de feuilles
- Celle qui a le stock (reference + quantité)
- Celle ou j'intègre les commandes (ref + quantité + jour de sortie + jour de retour)
- Celles de planning d'une semaine, en colonnes jours de la semaine; en ligne références produits (donc chaque cellule affiche le cumul de produits commandés sur une même référénce le même jour)

A celà ai-je ajouté une mise en forme conditionnelle me mettant en rouge la cellule (ref + produit & jour) où une référence est commandé en trop grande quantité par rapport au stock

Donc il y a 300+ lignes de ref, et je ne peux pas passer mon temps à scroll de haut en bas, comme si chercher l'aiguille dans la botte de foin (tout cela est supposé m'aider je précise...)

Donc mon idée est la suivante : créer un script via VBA pour que les lignes de référence produit n'étant pas commandé du tout de la semaine soit "cachées", et donc avoir un visu beaucoup plus propre et efficace,

Par avance merciiiiiiiiii


( j'ai trouvé ça,

Sub MasquerLignesVide()
' Macro réalisé par Excel-lent

For i = [A65536].End(xlUp).Row To 2 Step -1

If Application.WorksheetFunction.CountBlank(Range(Cells(i, 2), Cells(i, 8))) = 7 Then
Rows(i).EntireRow.Hidden = True
End If

Next i

End Sub

mais les dites cellules ne sont pas vides.....

elles ont plutot :

=SUMPRODUCT(((année!$A$2:année!$A$1000)=$A2)*((année!$C$2:année!$C$1000)<=B$1)*((année!$D$2:année!$D$1000)>=B$1)*(année!$E$2:année!$E$1000))

)


A voir également:

1 réponse

eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
12 juin 2013 à 23:17
Bonjour,

pourtant un fichier restreint créer pour l'occasion aurait été le bienvenu.
Et c'est ainsi que tu auras plus de chance d'avoir qcq chose qui fonctionne sans à avoir à l'adapter.

For lig = [A65536].End(xlUp).Row To 2 Step -1
Rows(lig).EntireRow.Hidden = cells(lig,"C")<>0
Next lig
Ca sera la seule proposition sans fichier.
Mais c'est sans doute plus simple et suffisant de mettre un filtre automatique.

eric
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
12 juin 2013 à 23:53
Bonsoir Éric

Je vote aussi pour le filtre !!!

Patrice
0