XL 2016 Remplacer "FeuilX" d'un excel ouvert par une feuille d'un excel fermé

nicobush

XLDnaute Nouveau
Bonjour à tous.

Actuellement, j'ai un fichier excel avec deux boutons sur la feuille1 et deux autre feuilles vierge "Feuil AA" et "Feuil BB".

Sur chaque bouton, j'ai mis une macro qui me permet d'aller prendre la feuille d'un autre fichier excel et de la copier dans celui ouvert.
la voici :
VB:
    Sub Ajout()
    Dim NomFichier As Workbook
    Dim wk1 As Workbook
    Dim NomFeuille As Worksheet
    Dim NomModele As Variant

    Set NomFichier = ThisWorkbook
    ' Ouverture boite information
    MsgBox "Choisir le fichier Semaine S-1"
    'Ouverture fenêtre de choix

    NomModele = Application.GetOpenFilename("Excel Files (*.xlsx), *.xls")

    ' Si aucun choix arrêt
    If NomModele = False Then Exit Sub
    Workbooks.Open NomModele
    Set wk1 = ActiveWorkbook
    'Récupération nom de la feuille

    Set NomFeuille = ActiveSheet
    'Copie de la feuille

    NomFeuille.Copy After:=NomFichier.Sheets("Feuil1")

    'fermeture du fichier sans l'enregistrer
    wk1.Close SaveChanges:=False

    NomFichier.Activate
    End Sub
Maintenant, j'aimerais juste que lorsque la copie se fasse, cela ne créer pas de nouvelle feuille mais remplisse (et écrase si donné existante) la "Feuil AA".

Je corrigerai le code pour aller chercher ma "feuil BB" aussi

Merci par avance.
 

Pièces jointes

  • Comparateur speed.xlsm
    20.2 KB · Affichages: 10

GALOUGALOU

XLDnaute Accro
bonsoir nicobush bonsoir le forum
depuis vendredi aucune réponse, je suis surpris, ..................................:rolleyes:il ne faut pas hésiter a faire un commentaire pour faire remonter votre fil.

j'ai essayé de traiter votre problématique, je vous propose la solution ci-dessous en modifiant votre code
un petit essai uniquement pour la feuille aa
j'ai repris votre code que j'ai modifié pour écraser les données et la mise en forme de la feuille aa

dans le code définir la feuille et la plage souhaité pour la copie

Enrichi (BBcode):
Sub Ajout()
Dim NomFichier As Workbook
Dim wk1 As Workbook
Dim wk2 As Workbook
Dim NomFeuille As Worksheet
Dim NomModele As Variant

Set wk2 = ActiveWorkbook 'recup du nom du classeur source
Sheets("AAA").Select
 Range("A1:CM200").Select 'selection plage de cellule identique a la ligne inférieure
        Selection.Clear ' effacer valeur et mise en forme
' Ouverture boite information
MsgBox "Choisir le fichier Semaine S-1"
'Ouverture fenêtre de choix
NomModele = Application.GetOpenFilename("Excel Files (*.xlsx), *.xls")

' Si aucun choix arrêt
If NomModele = False Then Exit Sub
Workbooks.Open NomModele
Set wk1 = ActiveWorkbook 'Récupération nom pour fermeture classeur

   Range("A1:CM200").Select 'choisir la plage de cellule dans le classeur cible
    Selection.Copy

wk2.Activate
Sheets("AAA").Select 'activer la feuille de transfert dans le classeur source
    Range("A1").Select 'coller les données à partir de la cellule A1
     ActiveSheet.Paste
      Application.CutCopyMode = False



wk1.Close SaveChanges:=False 'fermeture du classeur cible sans l'enregistrer
Range("A1").Select

End Sub
cordialement
galougalou
 

Pièces jointes

  • Comparateur speed V1.xlsm
    70.6 KB · Affichages: 2

nicobush

XLDnaute Nouveau
Bonjour,

Merci pour avoir répondu.
Je n'ai pas voulu remonter le sujet prématurément ;).

Merci pour le code, je vais l'essayer.

En attendant, j'avais trouvé ceci :

VB:
Sub Ajout1()
Dim NomFichier As Workbook
Dim wk1 As Workbook
Dim NomFeuille As Worksheet
Dim NomModele As Variant

Set NomFichier = ThisWorkbook
' Ouverture boite information
MsgBox "Choisir le fichier 2"
'Ouverture fenêtre de choix

NomModele = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx")

' Si aucun choix arrêt
If NomModele = False Then Exit Sub
Workbooks.Open NomModele
Set wk1 = ActiveWorkbook
'Récupération nom de la feuille

Set NomFeuille = ActiveSheet
'Copie de la feuille

NomFeuille.Cells.Copy NomFichier.Sheets("Smart S-1").Range("A1")

'fermeture du fichier sans l'enregistrer
wk1.Close SaveChanges:=False

NomFichier.Activate
End Sub


Merci encore pour le code fournit ;) !
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 016
Membres
103 093
dernier inscrit
Molinari