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"
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
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
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" <hahaha@videotron.ca> a écrit dans le message de news:
OHKyHhEeGHA.764@TK2MSFTNGP05.phx.gbl...
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
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
É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
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
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
É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
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
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
É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
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
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
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
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" <hahaha@videotron.ca> a écrit dans le message de news:
OAOFjIPeGHA.3888@TK2MSFTNGP04.phx.gbl...
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
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
É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
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" <bruno.jeune@wanadoo.fr> a écrit dans le message de news:
uB7lk7QeGHA.4892@TK2MSFTNGP02.phx.gbl...
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" <hahaha@videotron.ca> a écrit dans le message de news:
OAOFjIPeGHA.3888@TK2MSFTNGP04.phx.gbl...
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
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