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

remplacement de valeur par VBA

9 réponses
Avatar
Patrick BASTARD
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la valeur
"CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis Q2,T2,W2...
(incrémentation de 3 colonnes jusqu'à trouver une cellule vide).
Les cellule à corriger contiennent la valeur suivante : 12/06/2006 14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec la
valeur : 38880.6174189815, mais cela ne fonctionne pas non plus (poussières
de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par "CDD".

Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard

9 réponses

Avatar
Jacquouille
Salut Pat
Une connerie de réponse toute simple
For each c in range......
If [c]="12/06/2006 14:49:05" then
[c]= "CDD"
Endive
Next
??????
Tu me dis quoi ce que t'en penses?
Bonne soirée
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la valeur
"CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis Q2,T2,W2...
(incrémentation de 3 colonnes jusqu'à trouver une cellule vide).
Les cellule à corriger contiennent la valeur suivante : 12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec la
valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par "CDD".

Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard





Avatar
Daniel
Bonsoir.
Essaie :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
If [A2] = Var Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If Cells(2, i) = Var Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Cordialement.
Daniel
"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la valeur
"CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis Q2,T2,W2...
(incrémentation de 3 colonnes jusqu'à trouver une cellule vide).
Les cellule à corriger contiennent la valeur suivante : 12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec la
valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par "CDD".

Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard





Avatar
Patrick BASTARD
Bonjour, *Jacquouille*

Merci pour l'intérêt que tu portes à mon problème.
Hélàs : je parlais de poussières de secondes, et ta proposition ne
fonctionne pas...
Je crains que cette date, créée avec maintenant(), puis collage spécial,
valeurs, ne comporte des pouièmes de secondes.

Le problème reste entier.

Je ne comprends cependant pas qu'un code obtenu avec l'enregistreur
fonctionne lors de l'enregistrement et pas lors de son exécution :
Selection.SpecialCells(xlCellTypeConstants, 1).Select
;-(


--
Bien amicordialement,
P. Bastard



Salut Pat
Une connerie de réponse toute simple
For each c in range......
If [c]="12/06/2006 14:49:05" then
[c]= "CDD"
Endive
Next
??????
Tu me dis quoi ce que t'en penses?
Bonne soirée

"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la
valeur "CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis
Q2,T2,W2... (incrémentation de 3 colonnes jusqu'à trouver une
cellule vide). Les cellule à corriger contiennent la valeur suivante :
12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec
la valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par
"CDD". Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True,
AllowFiltering:=True, _ AllowFormattingColumns:=True,
AllowFormattingRows:=True, AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard




Avatar
Jacquouille
Re
C'est vrai que maintenant() fait ch....les gens.
Et si tu essayais le format nombre, avec un arrondi à la 10 ème décimale,
ou un beau gauche(c) ="12/06/2006 14:49:05"??
Re Bonne chance
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Patrick BASTARD" a écrit dans le
message de news:
Bonjour, *Jacquouille*

Merci pour l'intérêt que tu portes à mon problème.
Hélàs : je parlais de poussières de secondes, et ta proposition ne
fonctionne pas...
Je crains que cette date, créée avec maintenant(), puis collage spécial,
valeurs, ne comporte des pouièmes de secondes.

Le problème reste entier.

Je ne comprends cependant pas qu'un code obtenu avec l'enregistreur
fonctionne lors de l'enregistrement et pas lors de son exécution :
Selection.SpecialCells(xlCellTypeConstants, 1).Select
;-(


--
Bien amicordialement,
P. Bastard



Salut Pat
Une connerie de réponse toute simple
For each c in range......
If [c]="12/06/2006 14:49:05" then
[c]= "CDD"
Endive
Next
??????
Tu me dis quoi ce que t'en penses?
Bonne soirée

"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la
valeur "CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis
Q2,T2,W2... (incrémentation de 3 colonnes jusqu'à trouver une
cellule vide). Les cellule à corriger contiennent la valeur suivante :
12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec
la valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par
"CDD". Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True,
AllowFiltering:=True, _ AllowFormattingColumns:=True,
AllowFormattingRows:=True, AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard








Avatar
Jacquouille
Ah, mon fils

" Celui qui travaille la terre , le bois ou les dates en Excel trouve son
Maître"
Vieux proverbe Mandarin du début du millénaire.
Bonne chance -)
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Patrick BASTARD" a écrit dans le
message de news:
Bonjour, *Jacquouille*

Merci pour l'intérêt que tu portes à mon problème.
Hélàs : je parlais de poussières de secondes, et ta proposition ne
fonctionne pas...
Je crains que cette date, créée avec maintenant(), puis collage spécial,
valeurs, ne comporte des pouièmes de secondes.

Le problème reste entier.

Je ne comprends cependant pas qu'un code obtenu avec l'enregistreur
fonctionne lors de l'enregistrement et pas lors de son exécution :
Selection.SpecialCells(xlCellTypeConstants, 1).Select
;-(


--
Bien amicordialement,
P. Bastard



Salut Pat
Une connerie de réponse toute simple
For each c in range......
If [c]="12/06/2006 14:49:05" then
[c]= "CDD"
Endive
Next
??????
Tu me dis quoi ce que t'en penses?
Bonne soirée

"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la
valeur "CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis
Q2,T2,W2... (incrémentation de 3 colonnes jusqu'à trouver une
cellule vide). Les cellule à corriger contiennent la valeur suivante :
12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec
la valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par
"CDD". Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True,
AllowFiltering:=True, _ AllowFormattingColumns:=True,
AllowFormattingRows:=True, AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard








Avatar
Jacquouille
Bonsoir Daniel
Patrick ne va-t-il pas tomber sur le même os?
Si tu donnes à var la valeur de la cel, les chouias de poussière de secondes
vont rester également dans le porte-plume. Tu ne crois pas?
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

Bonsoir.
Essaie :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
If [A2] = Var Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If Cells(2, i) = Var Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Cordialement.
Daniel
"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la valeur
"CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis Q2,T2,W2...
(incrémentation de 3 colonnes jusqu'à trouver une cellule vide).
Les cellule à corriger contiennent la valeur suivante : 12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec la
valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par
"CDD".

Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard









Avatar
Daniel
Bonsoir.
Au temps pour moi :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
ActiveSheet.Unprotect
If DateSerial(Year([A2]), Month([A2]), Day([A2])) + _
TimeSerial(Hour([A2]), Minute([A2]), Second([A2])) _
= "12/06/2006 14:49:05" Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If DateSerial(Year(Cells(2, i)), Month(Cells(2, i)), Day(Cells(2,
i))) + _
TimeSerial(Hour(Cells(2, i)), Minute(Cells(2, i)), Second(Cells(2,
i))) _
= "12/06/2006 14:49:05" Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveSheet.Protect
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Daniel
"Jacquouille" a écrit dans le message de
news: %
Bonsoir Daniel
Patrick ne va-t-il pas tomber sur le même os?
Si tu donnes à var la valeur de la cel, les chouias de poussière de
secondes vont rester également dans le porte-plume. Tu ne crois pas?
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

Bonsoir.
Essaie :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
If [A2] = Var Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If Cells(2, i) = Var Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Cordialement.
Daniel
"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir.
J'essaie de remplacer en ligne 2 des valeurs de type date par la valeur
"CDD".
Ceci dans 31 des 33 pages de plusieurs classeurs.
Les feuilles sont protégées, et la ligne 2 est masquée.
Pour info, les valeurs à corriger sont situées en A2, puis Q2,T2,W2...
(incrémentation de 3 colonnes jusqu'à trouver une cellule vide).
Les cellule à corriger contiennent la valeur suivante : 12/06/2006
14:49:05
J'avais tenté rechercher/remplacer avec cette valeur, et aussi avec la
valeur : 38880.6174189815, mais cela ne fonctionne pas non plus
(poussières de secondes, peut-être)

Cette correction doit s'exécuter sur des classeurs dont le nom est
aléatoire, à partir d'un classeur extérieur nommé "Patch.XLS"
Seuls 2 classeurs sont ouverts, celui à corriger et "Patch.XLS"
Dans un module de Patch.XLS, j'ai placé le code ci-dessous, qui ne
fonctionne pas :
Il semble remplacer toutes les cellules non vides de la ligne 2 par
"CDD".

Votre aide me serait d'un grand secours.

D'avance, merci.

************Mon code ********
Public Sub Patch1() 'Dans un module standard, mais à voir avec open

Dim Wbk As Workbook
Dim Sh As Worksheet

Set Wbk = Workbooks.Item(1)
If Wbk.Name = "Patch" Then
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
End If
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" Then

ActiveSheet.Unprotect
Rows("2:2").Select
Selection.EntireRow.Hidden = False
Selection.SpecialCells(xlCellTypeConstants, xlNumbers).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "CDD"
Range("C1").EntireRow.Hidden = True
ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
End Sub

--
Bien amicordialement,
P. Bastard













Avatar
Patrick BASTARD
Bonsoir à vous deux, *Daniel* et *Jacques*

Je pense avoir résolu le problème :
Seul soucis : il faut d'abord ouvrir le fichier à corriger, et ensuite le
patch.
Sais pas trop comment fonctionne Workbooks.Item(x)
Mais c'est un détail.

Je testerai demain le do...loop de Daniel

Encore un grand merci à tous les deux.
--
Bien amicordialement,
P. Bastard

********Le code******
Public Sub Patch1()

'Définition des Variables
Dim Wbk As Workbook
Dim Sh As Worksheet
Dim Cel As Range

Set Wbk = Workbooks.Item(1)
On Error Resume Next
If Wbk.Name = "Patch1 Saca V2-2" Then
MsgBox (Wbk.Name)
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
MsgBox (Wbk.Name)
End If
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" _
And Sh.Name <> "Premier" And Sh.Name <> "Modèle" _
And Sh.Name <> "TOTAL" _
Then
Sh.Activate
Sh.Unprotect
[B2].EntireRow.Hidden = False
[B2].FormulaR1C1 = "CDD"
For Each Cel In
[b2,q2,t2,w2,z2,ac2,af2,ai2,al2,ao2,ar2,au2,ax2,ba2,bd2,bg2,bj2,bm2,bp2,bs2,bv2,by2,cb2,ce2,ch2,ck2,cn2,cq2,ct2,cw2,cz2,dc2,df2,di2,dl2,do2,dr2,du2,dx2,ea2,ed2,eg2,ej2,em2,ep2,es2,ev2,ey2,fb2,fe2,fh2,fk2,fn2,fq2]
If Cel.Value <> "" Then
Cel.Value = "CDD"
End If
[B2].EntireRow.Hidden = True
Next
Sh.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub



Bonsoir.
Au temps pour moi :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
ActiveSheet.Unprotect
If DateSerial(Year([A2]), Month([A2]), Day([A2])) + _
TimeSerial(Hour([A2]), Minute([A2]), Second([A2])) _
= "12/06/2006 14:49:05" Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If DateSerial(Year(Cells(2, i)), Month(Cells(2, i)),
Day(Cells(2, i))) + _
TimeSerial(Hour(Cells(2, i)), Minute(Cells(2, i)),
Second(Cells(2, i))) _
= "12/06/2006 14:49:05" Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveSheet.Protect
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Daniel
"Jacquouille" a écrit dans le message
de news: %
Bonsoir Daniel
Patrick ne va-t-il pas tomber sur le même os?
Si tu donnes à var la valeur de la cel, les chouias de poussière de
secondes vont rester également dans le porte-plume. Tu ne crois pas?




Avatar
Jacquouille
Re
Pour ta liste de cel, tu ne sais pas faire une boucle avec un pas de deux ou
trois?
où L1Cx ..x=2 to 200 step 2 ?
Si ça marche, JPS paie un gorgeon.
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Patrick BASTARD" a écrit dans le
message de news: %
Bonsoir à vous deux, *Daniel* et *Jacques*

Je pense avoir résolu le problème :
Seul soucis : il faut d'abord ouvrir le fichier à corriger, et ensuite le
patch.
Sais pas trop comment fonctionne Workbooks.Item(x)
Mais c'est un détail.

Je testerai demain le do...loop de Daniel

Encore un grand merci à tous les deux.
--
Bien amicordialement,
P. Bastard

********Le code******
Public Sub Patch1()

'Définition des Variables
Dim Wbk As Workbook
Dim Sh As Worksheet
Dim Cel As Range

Set Wbk = Workbooks.Item(1)
On Error Resume Next
If Wbk.Name = "Patch1 Saca V2-2" Then
MsgBox (Wbk.Name)
Workbooks.Item(2).Activate
Else
Workbooks.Item(1).Activate
MsgBox (Wbk.Name)
End If
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" _
And Sh.Name <> "Premier" And Sh.Name <> "Modèle" _
And Sh.Name <> "TOTAL" _
Then
Sh.Activate
Sh.Unprotect
[B2].EntireRow.Hidden = False
[B2].FormulaR1C1 = "CDD"
For Each Cel In
[b2,q2,t2,w2,z2,ac2,af2,ai2,al2,ao2,ar2,au2,ax2,ba2,bd2,bg2,bj2,bm2,bp2,bs2,bv2,by2,cb2,ce2,ch2,ck2,cn2,cq2,ct2,cw2,cz2,dc2,df2,di2,dl2,do2,dr2,du2,dx2,ea2,ed2,eg2,ej2,em2,ep2,es2,ev2,ey2,fb2,fe2,fh2,fk2,fn2,fq2]
If Cel.Value <> "" Then
Cel.Value = "CDD"
End If
[B2].EntireRow.Hidden = True
Next
Sh.Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True,
AllowSorting:=True
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub



Bonsoir.
Au temps pour moi :

Sub test()
Var = CDate("12/06/2006 14:49:05")
Application.Dialogs(xlDialogOpen).Show
'il manque ici un information sur la feuille à traiter
ActiveSheet.Unprotect
If DateSerial(Year([A2]), Month([A2]), Day([A2])) + _
TimeSerial(Hour([A2]), Minute([A2]), Second([A2])) _
= "12/06/2006 14:49:05" Then [A2] = "CDD"
i = 17
Do Until Cells(2, i) = "" Or i > 256
If DateSerial(Year(Cells(2, i)), Month(Cells(2, i)),
Day(Cells(2, i))) + _
TimeSerial(Hour(Cells(2, i)), Minute(Cells(2, i)),
Second(Cells(2, i))) _
= "12/06/2006 14:49:05" Then Cells(2, i) = "CDD"
i = i + 3
Loop
ActiveSheet.Protect
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Daniel
"Jacquouille" a écrit dans le message
de news: %
Bonsoir Daniel
Patrick ne va-t-il pas tomber sur le même os?
Si tu donnes à var la valeur de la cel, les chouias de poussière de
secondes vont rester également dans le porte-plume. Tu ne crois pas?