Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ma macro ne fonctionne pas!!

  • Initiateur de la discussion Initiateur de la discussion Ice
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

I

Ice

Guest
Hello le forum


Voici ma macro mais elle ne fonctionnepas correctement. Quelqu un pourrait il m aider.

Mon but est de copier seulement les feuille du classeur 'miseajour' dans le classeur 'Copie de EVS' mais uniquement celle qui porte le meme nom.



Sub CopyFeuilles()
Dim i As Byte
Dim j As Byte
Application.DisplayAlerts = True
For j = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Sheets(j).Name = Workbooks('Copie de Evs.xls').Sheets(j).Name Then
Windows('Copie de EVS.xls').Activate
Sheets(j).Delete
Windows('miseajour.xls').Activate
Sheets(j).Copy Before:=Workbooks('Copie de EVS.xls').Sheets('1_agent')
Windows('miseajour.xls').Activate
End If
Next j
End Sub


Merci pour votre aide


Fabrice
 
Bonjour

dans ta macro en fait telle que tu l'as écrite il faut que tes feuilles qui portent le même nom aient également la même position ou le même numéro.

Essaies peut-être ceci

Sub CopyFeuilles()
Dim i As Byte
Dim j As Byte, z as Byte
Application.DisplayAlerts = True
For j = 1 To ActiveWorkbook.Worksheets.Count
for z = 1 to Workbooks('Copie de Evs.xls').Worksheets.Count
If ActiveWorkbook.Sheets(j).Name = Workbooks('Copie de Evs.xls').Sheets(z).Name Then
Windows('Copie de EVS.xls').Activate
Sheets(z).Delete
Windows('miseajour.xls').Activate
Sheets(j).Copy Before:=Workbooks('Copie de EVS.xls').Sheets('1_agent')
Windows('miseajour.xls').Activate
exit for
End If
Next z
Next j
End Sub

Bon courage
 
essaie comme ceci, ça devrait aller mieux :

Sub CopyFeuilles()
'Ti
Dim CopieWbk As Workbook
Dim WsS As Worksheet, WsC As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Set CopieWbk = Workbooks('Copie de Evs.xls')
'mieux vaut être prudent !
If ActiveWorkbook.Name = CopieWbk.Name Then Exit Sub
For Each WsS In ActiveWorkbook.Worksheets
Set WsC = Nothing
Set WsC = CopieWbk.Worksheets(WsS.Name)
If Not WsC Is Nothing Then
WsC.Delete
WsS.Copy Before:=CopieWbk.Sheets('1_agent')
End If
Next WsS
Application.DisplayAlerts = True
End Sub
 
Hello Ti

Merci pour ta correction!

Je ne suis pas un pro comme tu as pu le voir ! :whistle:

Juste une question ! faut ilque les feuille soit dans la meme position dans les deux classeurs comme tu me l as fait remarquer precedement ?


merci encore

Fabrice
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
685
Réponses
2
Affichages
586
Réponses
9
Affichages
1 K
Réponses
11
Affichages
847
Réponses
3
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…