Remplacer une feuille d'un classeur

Nazim

XLDnaute Junior
Bonjour à tous,

j'ai un petit soucis avec vba, je ne trouve pas la solution a mon petit problème qui est:

Je souhaite remplacer une feuille EXCEL existante ('DATA') par une autre aussi nommé 'DATA' que je dois importer d'un autre classeur par contre.

Puis-je avoir votre aide ?

Merci,

Nazim
 

Nazim

XLDnaute Junior
Re : Remplacer une feuille d'un classeur

Oui Benoit,
je souhaite remplacer la feuille 'DATA' du premier classeur par la feuille DATA du deuxième classeur.
donc je souhaite supprimer la feuille data du premier classeur et la remplacer par la nouvelle feuille data du deuxième classeur.

Merci
 

job75

XLDnaute Barbatruc
Re : Remplacer une feuille d'un classeur

Bonjour Nazim, thebenoit59,

Mettre cette macro dans un module standard du 1er classeur :

Code:
Sub RemplacerFeuille()
Dim nom$, F1 As Object, F2 As Object, n%
nom = "DATA" 'à adapter
With ThisWorkbook
  If ActiveWorkbook.Name = .Name Then Exit Sub
  On Error Resume Next
  Set F1 = .Sheets(nom)
  Set F2 = ActiveWorkbook.Sheets(nom)
  On Error GoTo 0
  If F1 Is Nothing Then MsgBox "La feuille '" & nom & _
    "' n'existe pas dans '" & .Name & "'": Exit Sub
  If F2 Is Nothing Then MsgBox "La feuille '" & nom & _
    "' n'existe pas dans '" & ActiveWorkbook.Name & "'": Exit Sub
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  n = F1.Index
  .Sheets.Add Before:=F1 'sécurité, si F1 est unique
  F1.Delete
  F2.Copy Before:=.Sheets(n)
  .Sheets(n + 1).Delete
  .Sheets(n).Activate 'facultatif
End With
End Sub
Ensuite activer le 2ème classeur et lancer la macro.

A+
 
Dernière édition:

Nazim

XLDnaute Junior
Re : Remplacer une feuille d'un classeur

Bonjour job75,
Merci pour votre réponse :)

une dernière question: peut-on encore adapter la macro de sorte que je n'aurai pas a activé le classeur 2 mais plutôt de donner la possibilité d'ouvrir le classeur (en utilisant par exemple Application.GetOpenFilename(FileFilter:="Fichiers Excel (*.xlsx), *.xlsx", Title:="Choisir un fichier Excel"))
je n'arrive pas a l'introduire dans la macro

Merci beaucoup :)

Nazim
 

job75

XLDnaute Barbatruc
Re : Remplacer une feuille d'un classeur

Bonjour Nazim,

Code:
Sub RemplacerFeuille()
Dim nom$, F1 As Object, fichier, F2 As Object, n%
nom = "DATA" 'à adapter
With ThisWorkbook
  On Error Resume Next
  Set F1 = .Sheets(nom)
  If F1 Is Nothing Then MsgBox "La feuille '" & nom & _
    "' n'existe pas dans '" & .Name & "'": Exit Sub
  fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", _
    Title:="Choisir un fichier Excel")
  If fichier = False Then Exit Sub
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Workbooks.Open fichier
  Set F2 = ActiveWorkbook.Sheets(nom)
  If F2 Is Nothing Then MsgBox "La feuille '" & nom & _
    "' n'existe pas dans '" & ActiveWorkbook.Name & "'": _
      ActiveWorkbook.Close: Exit Sub
  n = F1.Index
  .Sheets.Add Before:=F1 'sécurité, si F1 est unique
  F1.Delete
  F2.Copy Before:=.Sheets(n)
  F2.Parent.Close
  .Sheets(n + 1).Delete
  .Sheets(n).Activate
End With
End Sub
A+
 

Discussions similaires

Réponses
26
Affichages
378

Statistiques des forums

Discussions
312 184
Messages
2 086 008
Membres
103 088
dernier inscrit
Psodam