code à revoir

archi

XLDnaute Impliqué
Bjr à tous,

j'ai un problème dans le code suivant (créer avec l'editeur de macro):

Code:
Sub Effacer_Données()

    Sheets(Array('Deom S.', 'Hervieu Y.', 'Junker M.', 'Martin S.', 'Neef O.')).Select
    Sheets('Deom S.').Activate
    Range('A28:H28').Select
    Selection.AutoFill Destination:=Range('A4:H28'), Type:=xlFillDefault
    Range('A4:H28').Select
    Range('J28:M28').Select
    Selection.AutoFill Destination:=Range('J6:M28'), Type:=xlFillDefault
    Range('J6:M28').Select
End Sub

ce code correspond a l'effacement de données dans des feuil intitulées de la même façon, à savoir 'Nom+Initiale Prénom'
malheureusement, cette macro ne fonctionne pas sur de nouvelles feuil rajouter.

d'ou mon problème
merci de votre aide
bye
 

Hervé

XLDnaute Barbatruc
bonsoir

ton code ne travaille que sur les feuilles indiquées dans 'le array' :

Sheets(Array('Deom S.', 'Hervieu Y.', 'Junker M.', 'Martin S.', 'Neef O.')).Select

il te faut faire une boucle sur toutes tes feuilles, par exemple, ce code travaille sur toutes les feuilles du classeur sauf la feuille 1 :

dim ws as worksheet

for each ws in worksheets
if not ws.name='feuil1' then
'ton traitment
end if
next ws


salut :)
 

archi

XLDnaute Impliqué
Merci Hervé,

je viens d'essayer
Code:
Sub Test()

Dim ws As Worksheet

For Each ws In Worksheets
If Not ws.Name = 'Feuil1' Then
    Range('A11:B11').Select
    Selection.AutoFill Destination:=Range('A3:B11'), Type:=xlFillDefault
    Range('A3:B11').Select
    Range('D11:E11').Select
    Selection.AutoFill Destination:=Range('D3:E11'), Type:=xlFillDefault
End If
Next ws
End Sub

mais cela ne fonctionne que sur la feuil active ??

par ailleurs, comment rajouter d'autre feuil dans le If Not qui sont intitulé 'Feuil+ un nombre'??

bye
 

Hervé

XLDnaute Barbatruc
bonsoir archi

essayes comme ceci (code non testé) :

Sub Test()

Dim ws As Worksheet

For Each ws In Worksheets
If Not ws.Name = 'Feuil1' And Not ws.Name = 'feuil2' Then
ws.Range('A11:B11').Select
Selection.AutoFill Destination:=Range('A3:B11'), Type:=xlFillDefault
ws.Range('A3:B11').Select
ws.Range('D11:E11').Select
Selection.AutoFill Destination:=Range('D3:E11'), Type:=xlFillDefault
End If
Next ws
End Sub


salut
 

archi

XLDnaute Impliqué
Merci Hervé,

j'ai un bug en ligne
ws.Range('A11:B11').Select

voici mon fichier pour plus de compréhension

bye [file name=Test_Classeur1.zip size=22954]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Test_Classeur1.zip[/file]
 

Pièces jointes

  • Test_Classeur1.zip
    22.4 KB · Affichages: 16

Hervé

XLDnaute Barbatruc
bonjour archi

:eek: :eek: :eek:

désolé.

j'ai pas ouvert ton fichier je manque de temps, pour le code, essaye comme ceci :

Sub Test()

Dim ws As Worksheet

For Each ws In Worksheets
If Not ws.Name = 'Tables' And Not ws.Name = 'Base' And Not ws.Name = 'Individuel' Then
ws.Range('A11:H11').AutoFill Destination:=ws.Range('A4:H11'), Type:=xlFillDefault
ws.Range('J11:M11').AutoFill Destination:=ws.Range('J6:M11'), Type:=xlFillDefault
End If
Next ws
End Sub


salut
 

Discussions similaires

  • Question
Microsoft 365 Formules
Réponses
2
Affichages
463

Statistiques des forums

Discussions
312 589
Messages
2 090 027
Membres
104 350
dernier inscrit
mohamedismaelmesbeh@gmail