OVH Cloud OVH Cloud

Apparaitre les RF

16 réponses
Avatar
Érico
J'ai la macro suivante:
Elle me fait aparaitre toutes les groupe de 4 lignes, les projets contenant
la lettre "A" dans la colonne G
Les choix peuvent ête les suivantes:
R
C
A
R - C
R - A
R - C
C - A
R - C - A


Je veux rajouter les choix suivants:
RF-C-A
RF-A
RF-C

Je veux modifier cette macro pour le faire afficher tous les projets
contenant les lettres "RF"

Merci
____________________________________________________________

Sub masquesi()

'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect

Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.4")
.Unprotect ' mot de passe si nécessaire
' tu sélectionnes la première cellule où le la boucle débute :
For i = 14 To 414 Step 4
Adr = .Range("g" & i).Address
If Evaluate("(" & Adr & "=0)+(" & Adr & "=""R"")+" & _
"(" & Adr & "="" "")") > 0 Then
.Range("G" & i, "G" & i + 3).EntireRow.Hidden = True
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With

End Sub

6 réponses

1 2
Avatar
Youky
Il y a un truc que tu n'as pas pigé....
exemple repris dans ta macro
If Left(.Cells(i, 7), 3) = "RF-C-A" Then tv = True
Left cé gauche et le chiffre 3 indique le nombre de caracteres à partir de
la gauche
donc ici cela renvoie "RF-" les trois 1er de gauche et tous, qui commence
par ces 3 lettres est pris en compte
si au lieu de 3 tu mets 6, c'est les 6 caracteres qui sont regardés.
Les 3 caracteres de gauche ne pourront jamais égaler les 6 caracteres de
...RF-C-A
donc bien veiller à mettre le bon chiffre à la place du 3 de l'exemple
Cé bon, cette fois
Youky


"Érico" a écrit dans le message de news:


Voici ma dernière version du "Annexe 1.6"
Il fait afficher des projets vide et pas juste des "RF"
________________________________
Sub masques16()
Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.6")
.Unprotect ' mot de passe si nécessaire
' tu sélectionnes la première cellule où le la boucle débute :
For i = 14 To 623 Step 5
'If Left(.Cells(i, 7), 2) = "RF" Then tv = True
If Left(.Cells(i, 7), 3) = "RF" Then tv = True
'If Left(.Cells(i, 7), 3) = "R -" Then tv = True ' sur 3 lettres
If Left(.Cells(i, 7), 2) = "R-" Then tv = True 'au cas si pas
espace 2lettres
If Left(.Cells(i, 7), 3) = "RF-C" Then tv = True
If Left(.Cells(i, 7), 3) = "RF-C-A" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub




Avatar
Érico
Rien ne fonctionne.....

On dirais que ta macro fais l'inverse de ce que je demande, aucun projet
commençant par "RF"
En plus, des lignes (groupe de 5) ne contenant aucun projet , affiche
pareil.

Voici ma dernière macro:
______________________________________________
Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.6")
.Unprotect ' mot de passe si nécessaire
' tu sélectionnes la première cellule où le la boucle débute :
For i = 14 To 623 Step 5
If Left(.Cells(i, 7), 2) = "RF" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub
Avatar
Érico
Salut Youki,

J'ai trouvé ceci et ça fonctionne, sauf des lignes qui ne contiennent rien,
il les affiches quant même...
J'ai mis ceci:
If Left(.Cells(i, 7), 1) = "" Then tv = True
Ça marche pas
J'ai mis ceci:
If Left(.Cells(i, 7), 1) = " " Then tv = True
Ça marche pas

__________________________________________
Sub masques16()

Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.6")
.Unprotect ' mot de passe si nécessaire
For i = 14 To 623 Step 5
If Left(.Cells(i, 7), 1) = "" Then tv = True
If Left(.Cells(i, 7), 2) = "R" Then tv = True
If Left(.Cells(i, 7), 2) = "C" Then tv = True
If Left(.Cells(i, 7), 2) = "A" Then tv = True
If Left(.Cells(i, 7), 3) = "A-R" Then tv = True
If Left(.Cells(i, 7), 3) = "C-R" Then tv = True
If Left(.Cells(i, 7), 5) = "C-R-A" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub
Avatar
Érico
Et maintenant, j'ai réussi à faire pour l'annexe 1.4
Sauf que j'ai encore des lignes vierges de trop (pas oublié, une formule
comme liaison) avec aucune réponse
_____________________________________
Sub masques14()

Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.4")
.Unprotect ' mot de passe si nécessaire
For i = 14 To 623 Step 5
'If Left(.Cells(i, 7), 1) = " " Then tv = True
If Left(.Cells(i, 7), 1) = "R" Then tv = True
If Left(.Cells(i, 7), 2) = "RF" Then tv = True
If Left(.Cells(i, 7), 3) = "RF-" Then tv = True
If Left(.Cells(i, 7), 6) = "RF-C-A" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub
Avatar
Youky
cette ligne copiée dans ta macro n'est pas utilisée car elle comporte une
Apostrophe
il suffit de l'enlever
'If Left(.Cells(i, 7), 1) = " " Then tv = True
si les cellules sont vide remplace cette ligne par ceci
If .Cells(i, 7)= ""

en haut on test si la 1ere lettre est un espace ou l'autre solution si rien
Youky

"Érico" a écrit dans le message de news:

Et maintenant, j'ai réussi à faire pour l'annexe 1.4
Sauf que j'ai encore des lignes vierges de trop (pas oublié, une formule
comme liaison) avec aucune réponse
_____________________________________
Sub masques14()

Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.4")
.Unprotect ' mot de passe si nécessaire
For i = 14 To 623 Step 5
'If Left(.Cells(i, 7), 1) = " " Then tv = True
If Left(.Cells(i, 7), 1) = "R" Then tv = True
If Left(.Cells(i, 7), 2) = "RF" Then tv = True
If Left(.Cells(i, 7), 3) = "RF-" Then tv = True
If Left(.Cells(i, 7), 6) = "RF-C-A" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub



Avatar
Érico
C'est moi qu'il l'avait faite et elle ne fonctionne pas.
Oublie pas, dans la colonne "G", j'ai comme formule (=+Annexe_1.1b!I18) qui
donne = zéro

Mais, je l'ai trouvé. J'ai mis le zéro et ça fonctionne .
If Left(.Cells(i, 7), 1) = "0" Then tv = True

Merci beaucoup pour ton aide.

Érico


"Youky" a écrit dans le message de news:

cette ligne copiée dans ta macro n'est pas utilisée car elle comporte une
Apostrophe
il suffit de l'enlever
'If Left(.Cells(i, 7), 1) = " " Then tv = True
si les cellules sont vide remplace cette ligne par ceci
If .Cells(i, 7)= ""

en haut on test si la 1ere lettre est un espace ou l'autre solution si
rien
Youky

"Érico" a écrit dans le message de news:

Et maintenant, j'ai réussi à faire pour l'annexe 1.4
Sauf que j'ai encore des lignes vierges de trop (pas oublié, une formule
comme liaison) avec aucune réponse
_____________________________________
Sub masques14()

Dim tv As Boolean
'deverrouille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Unprotect
Rows("14:768").Select
Selection.EntireRow.Hidden = False
Range("E14").Select
With Worksheets("Annexe_1.4")
.Unprotect ' mot de passe si nécessaire
For i = 14 To 623 Step 5
'If Left(.Cells(i, 7), 1) = " " Then tv = True
If Left(.Cells(i, 7), 1) = "R" Then tv = True
If Left(.Cells(i, 7), 2) = "RF" Then tv = True
If Left(.Cells(i, 7), 3) = "RF-" Then tv = True
If Left(.Cells(i, 7), 6) = "RF-C-A" Then tv = True
If tv = True Then
Adr = .Range("g" & i).Address
.Range("G" & i, "G" & i + 4).EntireRow.Hidden = True
tv = False
End If
Next
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub







1 2