Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

toutes les feuilles sauf certaines [VBA XL2K]

11 réponses
Avatar
J
Bonjour à tous

pour éviter les pb du fait de l'absence de données en I10 et L10, ce
code met 0 si vide dans certaines feuilles (respecte les données et les
formules).
Cela semble fonctionner, mais y a t il plus élégant, allégé ?
Merci
J@@
'*****************
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
Feuille.Select
For Each sht In ActiveWorkbook.Windows(1).SelectedSheets
ActiveSheet.Unprotect
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
ActiveSheet.Next.Select
Next sht
End If
Next Feuille
End Sub
'*****************

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Pas sûr d'avoir compris ce que tu veux faire; peut-être :

Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
With Feuille
.Unprotect
If .[i10].Value = "" Then .[i10].Value = "0"
If .[L10].Value = "" Then .[L10].Value = "0"
End With
End If
Next Feuille
End Sub

Cordialement.
Daniel

Bonjour à tous

pour éviter les pb du fait de l'absence de données en I10 et L10, ce code met
0 si vide dans certaines feuilles (respecte les données et les formules).
Cela semble fonctionner, mais y a t il plus élégant, allégé ?
Merci
J@@
'*****************
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
Feuille.Select
For Each sht In ActiveWorkbook.Windows(1).SelectedSheets
ActiveSheet.Unprotect
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
ActiveSheet.Next.Select
Next sht
End If
Next Feuille
End Sub
'*****************
Avatar
LSteph
Bonjour,

Oui avec un select case


Cordialement

--
LSteph



On 29 mar, 06:18, "J@@" wrote:
Bonjour à tous

pour éviter les pb du fait de l'absence de données en I10 et L10, ce
code met 0 si vide dans certaines feuilles (respecte les données et les
formules).
Cela semble fonctionner, mais y a t il plus élégant, allégé ?
Merci
J@@
'*****************
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
     Application.ScreenUpdating = False
     On Error Resume Next
     For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
         If Feuille.Name <> "ListeFeuilles" _
            And Feuille.Name <> "RapDoc" _
             And Feuille.Name <> "Etat_" Then
             Feuille.Select
             For Each sht In ActiveWorkbook.Windows(1).Sele ctedSheets
                 ActiveSheet.Unprotect
                 If [i10].Value = "" Then [i10].Value = "0"
                 If [L10].Value = "" Then [L10].Value = "0"
                 ActiveSheet.Next.Select
             Next sht
         End If
     Next Feuille
End Sub
'*****************
Avatar
J
Bonjour Daniel
J'ai besoin que, dans pleins de feuilles semblables, si I10 et L10 ne
contiennent pas de donnée, il y ait un 0.

Mon code fonctionne, mais je le trouve très balourd.

Le tien est nettement mieux, et fonctionne :-) mais faut que je rajoute
".Select" pour que cela marche.

For Each Feuille In ActiveWorkbook.Worksheets
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
With Feuille
.Unprotect
.Select '<=*****ajout
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
End With
End If
Next Feuille

Merci Daniel.
@+
J@@

Le 28/03/2011 21:15, DanielCo a écrit :
Bonjour,
Pas sûr d'avoir compris ce que tu veux faire; peut-être :

Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
With Feuille
.Unprotect
If .[i10].Value = "" Then .[i10].Value = "0"
If .[L10].Value = "" Then .[L10].Value = "0"
End With
End If
Next Feuille
End Sub

Cordialement.
Daniel

Bonjour à tous

pour éviter les pb du fait de l'absence de données en I10 et L10, ce
code met 0 si vide dans certaines feuilles (respecte les données et
les formules).
Cela semble fonctionner, mais y a t il plus élégant, allégé ?
Merci
J@@
'*****************
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
Feuille.Select
For Each sht In ActiveWorkbook.Windows(1).SelectedSheets
ActiveSheet.Unprotect
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
ActiveSheet.Next.Select
Next sht
End If
Next Feuille
End Sub
'*****************
Avatar
J
Bonjour LSteph
comment cela un select case?
je n'ai pas beaucoup d'options, j'ai juste une 100aine de feuilles
semblables, avec juste qq cellules où flanquer des 0.
mais je ne peux pas grouper toutes les feuilles, car des feuilles
contiennent des formules que j'écraserais alors.

Le code revu par Daniel fonctionne, mais l'approche select case
m'intéresse, pour la culture.
Merci encore
cordialement
j@@

Le 28/03/2011 21:47, LSteph a écrit :

Oui avec un select case
--
LSteph

On 29 mar, 06:18, "J@@" wrote:

pour éviter les pb du fait de l'absence de données en I10 et L10, ce
code met 0 si vide dans certaines feuilles (respecte les données et les
formules).
Cela semble fonctionner, mais y a t il plus élégant, allégé ?
Merci
J@@
'*****************
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet
Dim sht As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
If Feuille.Name<> "ListeFeuilles" _
And Feuille.Name<> "RapDoc" _
And Feuille.Name<> "Etat_" Then
Feuille.Select
For Each sht In ActiveWorkbook.Windows(1).SelectedSheets
ActiveSheet.Unprotect
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
ActiveSheet.Next.Select
Next sht
End If
Next Feuille
End Sub
'*****************
Avatar
DanielCo
Nan, mais j'avais mis un "." avant [i10] et [L10].
Daniel


Bonjour Daniel
J'ai besoin que, dans pleins de feuilles semblables, si I10 et L10 ne
contiennent pas de donnée, il y ait un 0.

Mon code fonctionne, mais je le trouve très balourd.

Le tien est nettement mieux, et fonctionne :-) mais faut que je rajoute
".Select" pour que cela marche.

For Each Feuille In ActiveWorkbook.Worksheets
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
With Feuille
.Unprotect
.Select '<=*****ajout
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
End With
End If
Next Feuille

Merci Daniel.
@+
J@@
Avatar
MichD
Bonjour,

En reprenant l'exemple de Daniel, tu pourrais écrire la même chose en utilisant un select case


'-------------------------------------------------
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet

Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
Select Case Feuille.Name
Case Is = "ListeFeuilles", "RapDoc", "Etat_"
'Si la feuille est dans ce groupe, rien se passe
Case Else
'Si les feuilles n'appartiennent pas au premier groupe
With Feuille
.Unprotect
If .[i10].Value = "" Then .[i10].Value = "0"
If .[L10].Value = "" Then .[L10].Value = "0"
End With
End Select
Next Feuille
End Sub
'-------------------------------------------------


MichD
--------------------------------------------
Avatar
J
Bonjour MichD
D'accord, je comprends.
C'est vrai que c'est beaucoup plus lisible que mon code initial.
Merci
@+
J@@

Le 29/03/2011 01:25, MichD a écrit :
Bonjour,

En reprenant l'exemple de Daniel, tu pourrais écrire la même chose en utilisant un select case


'-------------------------------------------------
Sub MetZeroEnIetLdix()
Dim Feuille As Worksheet

Application.ScreenUpdating = False
On Error Resume Next
For Each Feuille In ActiveWorkbook.Worksheets '5 feuilles
Select Case Feuille.Name
Case Is = "ListeFeuilles", "RapDoc", "Etat_"
'Si la feuille est dans ce groupe, rien se passe
Case Else
'Si les feuilles n'appartiennent pas au premier groupe
With Feuille
.Unprotect
If .[i10].Value = "" Then .[i10].Value = "0"
If .[L10].Value = "" Then .[L10].Value = "0"
End With
End Select
Next Feuille
End Sub
'-------------------------------------------------


MichD
--------------------------------------------

Avatar
LSteph
;-) ... je viens de revenir, bin voilà MD t'a répondu...

mais l'approche select case
m'int resse, pour la culture.



On Mar 29, 6:00 pm, "J@@" wrote:
Bonjour MichD
D'accord, je comprends.
C'est vrai que c'est beaucoup plus lisible que mon code initial.
Merci
@+
J@@

Le 29/03/2011 01:25, MichD a crit :
Avatar
J
Ça c'est de l'organisation :-)
Encore merci
J@@

Le 29/03/2011 07:35, LSteph a écrit :
;-) ... je viens de revenir, bin voilà MD t'a répondu...

mais l'approche select case
m'int resse, pour la culture.



On Mar 29, 6:00 pm, "J@@" wrote:
Bonjour MichD
D'accord, je comprends.
C'est vrai que c'est beaucoup plus lisible que mon code initial.
Merci
@+
J@@

Le 29/03/2011 01:25, MichD a crit :
Avatar
J
Bonjour Daniel
Faut que je change de lunettes, je n'avais pas vu ces .
Honte à moi.
Merci encore
J@@

Le 28/03/2011 22:19, DanielCo a écrit :
Nan, mais j'avais mis un "." avant [i10] et [L10].
Daniel


Bonjour Daniel
J'ai besoin que, dans pleins de feuilles semblables, si I10 et L10 ne
contiennent pas de donnée, il y ait un 0.

Mon code fonctionne, mais je le trouve très balourd.

Le tien est nettement mieux, et fonctionne :-) mais faut que je
rajoute ".Select" pour que cela marche.

For Each Feuille In ActiveWorkbook.Worksheets
If Feuille.Name <> "ListeFeuilles" _
And Feuille.Name <> "RapDoc" _
And Feuille.Name <> "Etat_" Then
With Feuille
.Unprotect
.Select '<=*****ajout
If [i10].Value = "" Then [i10].Value = "0"
If [L10].Value = "" Then [L10].Value = "0"
End With
End If
Next Feuille

Merci Daniel.
@+
J@@




1 2