Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion obyone
  • 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 !

obyone

XLDnaute Occasionnel
bonjour,
je viens de terminer ma macro "équilibrage" accessible en cliquant sur le bouton via le userform, mais il me reste 3 petits problèmes:
1 les calculs sont long y-a-t-il possibilité de simplifier mes formules pour accélérer tout cela.
2 j'aimerais conserver le style du tableau de la feuille"CIC" mais lors de la recopie s'est pas toujours le cas y voyez vous une solution( peut etre une copie des ligne mais pas de leur style(je ne sais pas faire))
3 j'aimerais filtrer automatiquement (les masquer) les lignes qui sont marquées "r"
merci d'avance pour vos idées.
laurent
 

Pièces jointes

Re : Filtre en vba

je viens de bosser un peut sur le filtre
lorsqu'on clic sur le bouton OK, la copie ce passe bien le filtre à l'air de fonctionner mais j'ai une erreur d'exécution 1004
est ce que vous voyez d'ou cela peut venir
merci
 

Pièces jointes

Re : Filtre en vba

re bonjour,
mon filtre fonctionne mais uniquement de la ligne 5 à 100, j'aimerais le faire de la ligne 5 à la preimère ligne vide
pouvez vous m'éclairer un peu
merci d'avance
 

Pièces jointes

Re : Filtre en vba

bon j'ai encore avancé un peu
le tri ( masquage des lignes contenant "r" de la feuille"CIC") ne fonctionne pas lorsque je clic sur OK de la feuille "Equilibrage" voici mon vba :

Private Sub CommandButton1_Click()
' copie si l'Equilibrage est OK
Dim Lequ As Long
If Sheets("Equilibrage").Cells(5, 11) = "0" Then
With Sheets("Equilibrage")
For Lequ = 1 To .[a65000].End(xlUp).Row
If .Cells(Lequ, 5) = "p" Then
With Sheets("CIC")
ligne = .[a65000].End(xlUp).Row + 1
Sheets("Equilibrage").Cells(Lequ, 1).Cut .Cells(ligne, 1)
Sheets("Equilibrage").Cells(Lequ, 2).Cut .Cells(ligne, 2)
Sheets("Equilibrage").Cells(Lequ, 3).Cut .Cells(ligne, 3)
Sheets("Equilibrage").Cells(Lequ, 4).Cut .Cells(ligne, 4)
Sheets("Equilibrage").Cells(Lequ, 5).Cut .Cells(ligne, 5)
Sheets("Equilibrage").Cells(Lequ, 6).Cut .Cells(ligne, 6)
Sheets("Equilibrage").Cells(Lequ, 7).Cut .Cells(ligne, 7)
ligne = ligne + 1

End With
ElseIf .Cells(Lequ, 5) = "" Then
With Sheets("CIC")
ligne = .[a65000].End(xlUp).Row + 1
Sheets("Equilibrage").Cells(Lequ, 1).Cut .Cells(ligne, 1)
Sheets("Equilibrage").Cells(Lequ, 2).Cut .Cells(ligne, 2)
Sheets("Equilibrage").Cells(Lequ, 3).Cut .Cells(ligne, 3)
Sheets("Equilibrage").Cells(Lequ, 4).Cut .Cells(ligne, 4)
Sheets("Equilibrage").Cells(Lequ, 5).Cut .Cells(ligne, 5)
Sheets("Equilibrage").Cells(Lequ, 6).Cut .Cells(ligne, 6)
Sheets("Equilibrage").Cells(Lequ, 7).Cut .Cells(ligne, 7)
ligne = ligne + 1
End With
ElseIf .Cells(Lequ, 5) = "r" Then
With Sheets("CIC")
ligne = .[a65000].End(xlUp).Row + 1
Sheets("Equilibrage").Cells(Lequ, 1).Cut .Cells(ligne, 1)
Sheets("Equilibrage").Cells(Lequ, 2).Cut .Cells(ligne, 2)
Sheets("Equilibrage").Cells(Lequ, 3).Cut .Cells(ligne, 3)
Sheets("Equilibrage").Cells(Lequ, 4).Cut .Cells(ligne, 4)
Sheets("Equilibrage").Cells(Lequ, 5).Cut .Cells(ligne, 5)
Sheets("Equilibrage").Cells(Lequ, 6).Cut .Cells(ligne, 6)
Sheets("Equilibrage").Cells(Lequ, 7).Cut .Cells(ligne, 7)
ligne = ligne + 1
End With
End If
Next
End With


With Sheets("CIC")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
.Activate
.[a65000].End(xlUp).Select
'supprime les lignes si la premiere celulle est vide
Do
If IsEmpty(ActiveCell) Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop Until ActiveCell.Row = 1
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Dim LignR
' masque les lignes avec r
For LignR = Range("A65536").End(xlUp).Row To 5 Step -1
If Cells(LignR, 5) = "r" Then Rows(LignR).Hidden = True
Next

End With
End If
End Sub

pourtant il fonctionne lorsque je clique sur le bouton de la feuille "CIC" dont voici le VBA

Private Sub CommandButton1_Click()
For LignR = Range("A65536").End(xlUp).Row To 5 Step -1
If Cells(LignR, 5) = "r" Then Rows(LignR).Hidden = True
Next
End Sub


la je commence à bien coincer et je n'ai pas de message d'erreur
est ce que quelqu'un peu m'aider?
merci
 

Pièces jointes

Re : Filtre en vba

Salut Obyone,
Tu as un With pour CIC si la page active n'est pas CIC il te faut mettre des points
comme ceci, j'en ai mis 3(de points)
Code:
Dim LignR
' masque les lignes avec r
For LignR =[COLOR="Red"] .[/COLOR]Range("A65536").End(xlUp).Row To 5 Step -1
If[COLOR="red"] .[/COLOR]Cells(LignR, 5) = "r" Then[COLOR="red"] .[/COLOR]Rows(LignR).Hidden = True
Next

Bruno
 
Re : Filtre en vba

re:
Essaye aussi comme ceci
Bruno
Code:
' copie si l'Equilibrage est OK
Dim Lequ As Long
If Cells(5, 11) = "0" Then
With Sheets("CIC")
ligne = .[A65000].End(xlUp).Row + 1
For Lequ = 1 To [A65000].End(xlUp).Row
If .Cells(Lequ, 5) = "p" Or .Cells(Lequ, 5) = "" Or .Cells(Lequ, 5) = "r" Then
Cells(Lequ, 1).Cut .Cells(ligne, 1)
Cells(Lequ, 2).Cut .Cells(ligne, 2)
Cells(Lequ, 3).Cut .Cells(ligne, 3)
Cells(Lequ, 4).Cut .Cells(ligne, 4)
Cells(Lequ, 5).Cut .Cells(ligne, 5)
Cells(Lequ, 6).Cut .Cells(ligne, 6)
Cells(Lequ, 7).Cut .Cells(ligne, 7)
ligne = ligne + 1
End If
Next
For ligne = .[A65000].End(3).Row To 5 Step -1
If .Cells(ligne, 1) = "" Then .Rows(ligne).Delete
Next
' masque les lignes avec r
Feuil5.ListObjects("Tableau14").Range.AutoFilter Field:=5, Criteria1:="<>r"

End With
End If
 
- 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

Discussions similaires

J
Réponses
1
Affichages
2 K
Réponses
2
Affichages
1 K
A
Réponses
37
Affichages
4 K
asso78Lim
A
Y
Réponses
11
Affichages
3 K
Y
E
Réponses
1
Affichages
4 K
P
Réponses
1
Affichages
2 K
PierreJeanPierre
P
J
Réponses
0
Affichages
6 K
juju53
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…