1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| # Installer le package si nécessaire
if (!require(openxlsx)) {
install.packages("openxlsx")
library(openxlsx)
}
# Définir le chemin d'accès au fichier Excel
file_path <- "C:/Users/.../projet R - fichier de contrôle/Fichier de contrôle.xlsx"
output_path <- "C:/Users/.../projet R - fichier de contrôle/Fichier de contrôle - TEST_modifié.xlsx"
# Vérifier que le fichier existe
if (!file.exists(file_path)) {
stop("Le fichier n'existe pas à l'emplacement spécifié : ", file_path)
}
# Charger le fichier Excel
wb <- tryCatch({
loadWorkbook(file_path)
}, error = function(e) {
stop("Erreur lors du chargement du fichier Excel : ", e$message)
})
# Lire la feuille cible
sheet_target <- "Sensibilités - Solvabilité - V2"
# Fonction pour copier une cellule d'une feuille source à une feuille cible
copy_cell <- function(wb, sheet_source, row_source, col_source, sheet_target, row_target, col_target) {
tryCatch({
data <- readWorkbook(wb, sheet = sheet_source, rows = row_source, cols = col_source, colNames = FALSE)
if (!is.null(data) && length(data) > 0) {
writeData(wb, sheet = sheet_target, x = data, startCol = col_target, startRow = row_target, colNames = FALSE)
message(paste("Successfully copied data from", sheet_source, "cell", paste0("(", row_source, ",", col_source, ")"),
"to", sheet_target, "cell", paste0("(", row_target, ",", col_target, ")"), ": Value =", data))
} else {
message(paste("No data found in", sheet_source, "cell", paste0("(", row_source, ",", col_source, ")")))
}
}, error = function(e) {
message(paste("Error copying data from", sheet_source, "cell", paste0("(", row_source, ",", col_source, ")"),
"to", sheet_target, "cell", paste0("(", row_target, ",", col_target, ")"), ":", e$message))
})
}
# Copier les cellules spécifiques (exemple de quelques cellules)
copy_cell(wb, "COREP CA3 N-1", 2, 4, sheet_target, 5, 3)
copy_cell(wb, "COREP CA2 N-1", 2, 4, sheet_target, 9, 3)
copy_cell(wb, "COREP CA2 N-1", 5, 4, sheet_target, 11, 3)
copy_cell(wb, "COREP CA2 N-1", 49, 4, sheet_target, 49, 3)
copy_cell(wb, "COREP CA2 N-1", 52, 4, sheet_target, 51, 3)
copy_cell(wb, "COREP CA2 N-1", 62, 4, sheet_target, 60, 3)
copy_cell(wb, "COREP CA2 N-1", 66, 4, sheet_target, 65, 3)
copy_cell(wb, "COREP CA2 N-1", 67, 4, sheet_target, 67, 3)
copy_cell(wb, "COREP CA2 N-1", 71, 4, sheet_target, 72, 3)
copy_cell(wb, "COREP CA2 N-1", 72, 4, sheet_target, 74, 3)
copy_cell(wb, "COREP CA3 N", 2, 4, sheet_target, 5, 4)
copy_cell(wb, "COREP CA2 N", 2, 4, sheet_target, 9, 4)
copy_cell(wb, "COREP CA2 N", 5, 4, sheet_target, 11, 4)
copy_cell(wb, "COREP CA2 N", 49, 4, sheet_target, 49, 4)
copy_cell(wb, "COREP CA2 N", 52, 4, sheet_target, 51, 4)
copy_cell(wb, "COREP CA2 N", 62, 4, sheet_target, 60, 4)
copy_cell(wb, "COREP CA2 N", 66, 4, sheet_target, 65, 4)
copy_cell(wb, "COREP CA2 N", 67, 4, sheet_target, 67, 4)
copy_cell(wb, "COREP CA2 N", 71, 4, sheet_target, 72, 4)
copy_cell(wb, "COREP CA2 N", 72, 4, sheet_target, 74, 4)
# Copier les cellules pour les plages C12 à C29 et D12 à D29
for (i in 0:17) {
copy_cell(wb, paste0("COREP CR_SA N-1", if (i == 0) "" else paste0(" - Classe ", i)), 6, 24, sheet_target, 12 + i, 3)
copy_cell(wb, paste0("COREP CR_SA N", if (i == 0) "" else paste0(" - Classe ", i)), 6, 24, sheet_target, 12 + i, 4)
}
# Enregistrer le fichier modifié
tryCatch({
saveWorkbook(wb, file = output_path, overwrite = TRUE)
message("Le fichier a été enregistré avec succès à l'emplacement suivant : ", output_path)
}, error = function(e) {
stop("Erreur lors de l'enregistrement du fichier Excel : ", e$message)
}) |
Partager