Création de classeur

Bonjour tout le monde , je m'excuse , je suis nouveau sur excel du coup je pose toujours des questions.

S'il vous plait , j'ai un classeur excel nommé 2023 , il contient des feuilles , chaque feuille est liée à une feuille KPI , par exemple j'ai une feuille Production et une feuille Production KPIs. Cette feuille Production KPIs est remplie automatiquement par les données de la feuille Production. Hors ce que j'essaie de faire à l'aide de VBA et de créer un nouveau classeur 2024 qui est une copie du classeur 2023 mais avec des valeurs numériques vides sur la feuille Production , normalement je dois avoir des 0 dans la feuille Production KPIs mais quand je fais le code les valeurs de Productions KPIs restent liées à la feuille Production du classeur 2023 original.

Voici le code que j'ai fait :

Sub CopierFeuillesEtViderValeurs()
Dim classeur2023 As Workbook
Dim classeur2024 As Workbook
Dim feuille2023 As Worksheet
Dim feuille2024 As Worksheet
Dim feuillesAVider As Variant
Dim feuilleAVider As Variant
Dim plage As Range

' Feuilles à vider leurs valeurs numériques
feuillesAVider = Array("Production", "Qualité", "HSE", "Maintenance", "Supply chain", "Achats", "SAV")

' Ouvrir le classeur 2023
Set classeur2023 = Workbooks.Open("2023.xlsx")

' Créer un nouveau classeur 2024
Set classeur2024 = Workbooks.Add

' Boucler à travers chaque feuille du classeur 2023
For Each feuille2023 In classeur2023.Sheets
' Copier la feuille dans le classeur 2024
feuille2023.Copy After:=classeur2024.Sheets(classeur2024.Sheets.Count)
' Référence à la feuille copiée dans le classeur 2024
Set feuille2024 = classeur2024.Sheets(classeur2024.Sheets.Count)

' Vérifier si la feuille doit être vidée
If IsInArray(feuille2023.Name, feuillesAVider) Then
' Vider les valeurs numériques des cellules dans la feuille copiée
Set plage = feuille2024.UsedRange
On Error Resume Next
plage.SpecialCells(xlCellTypeConstants).ClearContents
On Error GoTo 0
End If
Next feuille2023

' Enregistrer le classeur 2024
classeur2024.SaveAs "chemin_vers_le_classeur_2024.xlsx"

' Fermer les classeurs
classeur2023.Close
classeur2024.Close

' Libérer la mémoire
Set classeur2023 = Nothing
Set classeur2024 = Nothing
Set feuille2023 = Nothing
Set feuille2024 = Nothing

MsgBox "Le classeur 2024 a été créé avec succès en vidant les valeurs numériques des feuilles spécifiées."
End Sub

Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
Dim element As Variant
For Each element In arr
If StrComp(CStr(element), CStr(stringToBeFound), vbTextCompare) = 0 Then
IsInArray = True
Exit Function
End If
Next element
IsInArray = False
End Function

Je vous remercie en avance !

Bonjour

Un fichier est TOUJOURS le bienvenu

Pourquoi ne pas enregistrer le fichier 2023 en 2024 et le vider ensuite...

A+ François

Bonjour François ,

En fait , je fais le copier coller mais je vide les valeurs numériques de quelques feuilles . J'essaie d'automatiser cette procédure

Coridalement,

Rechercher des sujets similaires à "creation classeur"