Remplacer feuille par une autre

Bonsoir, j'ai créé un macro qui me permet de regrouper dans un fichier toutes les deuxième feuilles des autres fichiers situés dans un même répertoire . Maintenant je veux qu'à la réexecussion du macro les feuilles existantes ne soient pas renommées mais remplacées par les nouvelles.

Bonjour,

Penses-tu sincèrement que l'on puisse apporter une solution adaptée avec aussi peu d'éléments ? Il est où le code de cette fameuse macro ?

bonjour

salut Pedro22

récupérer des données depuis plusieurs fichiers se fait sans VBA, avec Power Query

https://www.youtube.com/watch?v=gwW2CDdvUUs

gratuit, et maintenant intégré aux versions plus récentes d'Excel.

bon travail

amitiés à tous

Bonjour,

Penses-tu sincèrement que l'on puisse apporter une solution adaptée avec aussi peu d'éléments ? Il est où le code de cette fameuse macro ?

Désolé, voici ci-apres le code

Private Sub Workbook_Open()

Dim chemin As String ' classeur regroupé

Dim rep As String ' répertoire à traiter

Dim fic As String ' classeur regroupé

Dim ligne As Long ' ligne écriture

Dim nbc As Integer ' nombre de classeurs

Dim Wf As Worksheet ' feuille regroupement

Dim Wl As Worksheet ' feuille regroupée

Dim sht As Worksheet

For Each sht In ThisWorkbook.Sheets

Select Case sht.Name

Case "CH Térm"

sht.Select Replace:=True

End Select

Next

rep = ThisWorkbook.Path & "\"

Application.ScreenUpdating = False

Application.EnableEvents = False

Application.DisplayAlerts = False

On Error GoTo fin

Set Wf = ThisWorkbook.ActiveSheet ' variable feuille groupe

Wf.Cells.ClearContents

nbc = 0: nbf = 0 ' initialisation variables

ligne = 1

fic = Dir(rep & "*.xls*") ' recherche fichiers

While fic <> ""

If fic <> ThisWorkbook.Name Then

chemin = rep & fic ' chemin fichiers

Workbooks.Open chemin, 0 ' ouverture

fic_1 = Split(ActiveWorkbook.Name, ".")(0)

Set Wl = ActiveWorkbook.Sheets(2)

Wl.Copy After:=Wf

ActiveSheet.Name = fic_1

Workbooks(fic).Close SaveChanges:=False ' Fermeture du classeur

nbc = nbc + 1

End If

fic = Dir

Wend

fin:

MsgBox nbc & " classeurs regroupés"

Application.ScreenUpdating = True

Application.EnableEvents = True

Application.DisplayAlerts = True

End Sub

Si tu veux actualiser le contenu des feuilles déjà présentes, il faut :

1. Que tu copies le contenu de tes feuilles, et pas la feuille elle-même

2. Que tu vérifies si le nom de fichier existe déjà dans ton classeur de regroupement

--> Si OUI : on colle le contenu sur cette feuille

--> Si NON: on crée une nouvelle feuille, que l'on renomme comme le fichier, puis on y colle le contenu

Bonjour à tous

Il est beaucoup plus simple, si la feuille existe, de la supprimer et copier la feuille qui la remplace afin de récupérer les mises en forme colonnes, lignes et pages, ce qui n'est pas le cas si on copie le contenu dans un nouvel onglet...

Bonjour à tous

Il est beaucoup plus simple, si la feuille existe, de la supprimer et copier la feuille qui la remplace afin de récupérer les mises en forme colonnes, lignes et pages, ce qui n'est pas le cas si on copie le contenu dans un nouvel onglet...

Oui c'est exactement ce que je veux faire. Mais je n'y arrive pas.

Rechercher des sujets similaires à "remplacer feuille"