bonjour,
j'ai un fichier excel contenant plusieurs feuille excel, je souhaite extraire des données de ces feuilles et les coller sur la feuilles sensibilité - solvabilté (contient un tableau qui doit être renseigner) pour la mettre à jour, et par la suite m'enregistrer une copie du fichier mis à jour dans le dossier. j'ai mis un code sur R il m'ecrit que les valeurs ont bien été copier mais je n'arrive pas à avoir le fichier finale. pourriez vous m'aider s'il vous plait !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
})