Probleme copie feuille nom deja existant Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
j
jc jez
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 13 août 2016
Version d'Excel : 2019

Message par jc jez » 16 février 2018, 20:06

Bonjour a tous,

J'ai cree une macro qui copie une feuille vers une autre classeur apres l'avoir renommee...
Lorsque je modifie la feuille et que je veux la copier a nouveau en lancant la macro, une erreur m'est renvoyée: "erreur 1004 impossible de renommer une feuille comme une autre feuille..."
j'aimerai que la version deja existante soit remplacee par la derniere...

Merci a vous...
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 6'667
Appréciations reçues : 322
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 16 février 2018, 21:51

Bonsoir,

il vous suffit alors avec l'exportation de supprimer la première, non ?

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
j
jc jez
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 13 août 2016
Version d'Excel : 2019

Message par jc jez » 16 février 2018, 22:15

Bonjour,

Je me suis mal exprimé, en fait ma macro colle et copie le contenu de la feuille "CR" de mon classeur "2018" vers le classeur "CR2018" et renomme la feuille en fin de macro: sem1, sem2, sem3....
J aimerai que si la feuille "sem3" existe déja, elle soit supprimée et remplacée par celle qui est en train d'etre archivée....
J'espere avoir été plus clair,merci

voici ma macro:

Sub ARCHIVER_CR()
'
'
Application.ScreenUpdating = False
Dim wb As Workbook
Set wb1 = Workbooks(" 2018 .xlsm")
Set wb2 = Workbooks.Open("C:\Users\Jc\Desktop\CR2018.xlsx")
Windows(" 2018 .xlsm").Activate
wb1.Sheets("CR").Copy After:=wb2.Sheets(wb2.Sheets.Count)
Range("B16:Z64").Select
Selection.Copy
Range("B16").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Name = "Sem " & Range("A3")
Range("A1").Select
ActiveWorkbook.Save
ActiveWindow.Close
Application.ScreenUpdating = True
Range("A1").Select
End Sub
j
jc jez
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 13 août 2016
Version d'Excel : 2019

Message par jc jez » 16 février 2018, 22:20

Je pense qu'il faudrait que la macro vérifie avant d archiver une nouvelle feuille qu'il n'existe pas une feuille déja existante qui porte le nom de celle que l'on veut nommer...et si c'est le cas, supprimer cette feuille...
j
jc jez
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 13 août 2016
Version d'Excel : 2019

Message par jc jez » 17 février 2018, 00:02

Voila, comme LooReeD me le conseillait j'ai décidé de supprimer la feuille avant de copier la nouvelle, et si celle ci n'existe pas, passer directement au collage de la nouvelle...
seulement lors de l'exécution, excel me renvoie "erreur d'execution 438, propriété ou méthode non gérée par cet objet"

je ne trouve pas l'erreur, si quelqu'un pouvait m'éclairer...
voici le début de la macro...

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim wb As Workbook
Set wb1 = Workbooks("2018 .xlsm")
Set wb2 = Workbooks.Open("C:\Users\JC\Desktop\CR2018.xlsx")
Windows("2018 .xlsm").Activate
Windows("CR2018.xlsx").Activate
If Sheets("Sem " & Workbooks("2018 .xlsm").Sheets("CR").Range("A3").Value) = True Then
Sheets("Sem " & Workbooks("2018 .xlsm").Sheets("CR").Range("A3").Value).Select
ActiveWindow.SelectedSheets.Delete
ElseIf Sheets("Sem " & Workbooks("2018 .xlsm").Sheets("CR").Range("A3").Value) = False Then
Windows("2018 .xlsm").Activate
wb1.Sheets("CR").Copy After:=wb2.Sheets(wb2.Sheets.Count)
Range("B16:Z64").Select
Selection.Copy

Merci
Avatar du membre
Patty5046
Membre impliqué
Membre impliqué
Messages : 1'323
Appréciations reçues : 134
Inscrit le : 2 février 2016
Version d'Excel : 2016

Message par Patty5046 » 17 février 2018, 14:33

Bonjour

Il faudrait que tu fasses quelque chose de ce style :
Public Function FichierExiste(MonFichier As String)
   If Len(Dir(MonFichier)) > 0 Then
      FichierExiste = True
   Else
      FichierExiste = False
   End If
End Function
Sub test()
chemin = "C:\Fich\"
' test existence fichier pour savoir si on doit le créer
        If FichierExiste(chemin & "FichPays.xls") = True Then
            fi = chemin & "FichPays.xls"
            Kill fi
        End If
        Set newbook = Workbooks.Add
        ThisWorkbook.SaveAs ("FichPays.xls")
End Sub
Ton code est difficile à lire car non indenté. Tu as des balises au-dessus ( 5ème à partir de la gauche).

A+

Désolée à côté de la plaque , je pensais fichier
Avatar du membre
Patty5046
Membre impliqué
Membre impliqué
Messages : 1'323
Appréciations reçues : 134
Inscrit le : 2 février 2016
Version d'Excel : 2016

Message par Patty5046 » 17 février 2018, 15:01

Bonjour
Pour supprimer ta feuille , tu peux faire cela :
Sub test()
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
End Sub
A+
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message