Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

une macro qui rame

  • Initiateur de la discussion Initiateur de la discussion dédé_la_sardine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

dédé_la_sardine

Guest
bonjour

je suis nouveau sur ce forum
j'ai un peu cherché et j'ai pas trouvé ma réponse
si j'ai mal cherché, pardon d'avance

contexte
une macro qui masque / affiche dans une feuille les lignes selon la valeur d'une cellule dans cette ligne. en gros, masquer les lignes si quantité = 0

mon pb
1- j'ouvre le fichier
2- si je lance la macro c'est rapide
3- si je relance la macro , elle rame et idem les fois suivantes

ma question
- pourquoi ca rame ?
bien sur le code est ss doute pas génial

je vous joins le code d'une boucle (il y en a 4)
merci d'avance de vos idées ou commentaires
dédé

Count = 0
For b = 29 + Start To 46 + Start
'vide = Worksheets("Proposition Client").Cells(b, 8).Value
Range("D" & b).Select
vide = ActiveCell.Value
If (vide = "") Then
Rows(b).Select
Selection.EntireRow.Hidden = True
Else
Rows(b).Select
Selection.EntireRow.Hidden = False
Count = Count + 1
End If
Next b
If (Count = 0) Then
Rows(282).Select
Selection.EntireRow.Hidden = True
Else
Rows(282).Select
Selection.EntireRow.Hidden = False
End If
 
Re : une macro qui rame

Bonsoir,

si j'ai bien compris.....

Essaie ainsi :

Code:
Sub Macro1()
Start = 0
With Range(Cells(29 + Start, 4), Cells(46 + Start, 4))
    .EntireRow.Hidden = False
    .SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End With
End Sub
 
Re : une macro qui rame

Bonsoir le forum,

En plus, pour gagner du temps, tu peux ajouter:

Application.screenupdating=false en début de macro

Puis à la fin

Application.screenupdating=true

ça évite la perte de temps avec la prise en compte de l'affichage.

A+
 
Re : une macro qui rame

Bonsoir, Smotty

pour info

la ligne de code :

Code:
Application.ScreenUpdating = False

n'impose une remise à True, que si tu utilises un USF, ou autres objets dans ton code (Inputbox......)

Le simple fait de fermer un code remet la valeur à True, et actualise la feuille....
 
Re : une macro qui rame

Bonjour le forum,

tu pourrais aussi virer les selects qui ne servent a rien ainsi que la variable vide:

Code:
Count = 0
For b = 29 + Start To 46 + Start
   If Range("D" & b).value = "" Then
      Rows(b).EntireRow.Hidden = True
   Else
      Rows(b).EntireRow.Hidden = False
      Count = Count + 1
   End If
Next b
If (Count = 0) Then
   Rows(282).EntireRow.Hidden = True
Else
   Rows(282).EntireRow.Hidden = False
End If

A+🙂
 
Dernière édition:
Re : une macro qui rame

merci pour vos réponses

@bhbh
merci pour la super macro qui a l'air bien compacte mais ca marche pas toujours
j'ai qqfois le message "pas de cellules correspondantes"

la méthode specialCell recherche une valeur (xlCellBlanks) mais la cellule observée contient une formule : =si(booleen;valeur 1;"")
du coup je sais pas si la ligne
.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
considere la valeur ou la formule de la cellule

toujours est-il que ca marche pas

@Bigfish

merci pour les remarques de concision et de productivité, j'en ai profité pour répercuter ailleurs
btw : bigfish = tres bon film, tres bonne BO

merci encore
cdt
dédé_la_sardine
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
376
Réponses
4
Affichages
760
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…