Bonjour,
je me permets de vous solliciter, n'ayant pas trouvé de solution suite à de nombreuses recherches. Je cherche tout simplement à sauvegarder une fichier une fois que j'ai dupliqué des données dans ce dernier mais la sauvegarde ne marche pas.
Voici mon code :
Ce dernier récupère les valeurs d'une premier fichier, copie ces dernières vers une feuille "Temporaire" ou elles sont traitées et je récupère le résultat sur la feuille "Ranking. Je vais alors recopier ces résultats vers 3 fichiers appelés des maquettes à différents endroits.
La copie des datas marche très bien, mais dès lors que je boucle sur ma deuxième série à analyser ces dernières se "volatilisent", c'est pour cela que j'ai pensé à rajouter une étape de sauvegarde (qui ne marche pas non plus).
Merci d'avance pour votre temps et votre aide.
J'ai testé différentes méthodes que j'ai d'ailleur laissé avec des ', mais ces dernières donnent toutes le même résultat.
je me permets de vous solliciter, n'ayant pas trouvé de solution suite à de nombreuses recherches. Je cherche tout simplement à sauvegarder une fichier une fois que j'ai dupliqué des données dans ce dernier mais la sauvegarde ne marche pas.
Voici mon code :
Ce dernier récupère les valeurs d'une premier fichier, copie ces dernières vers une feuille "Temporaire" ou elles sont traitées et je récupère le résultat sur la feuille "Ranking. Je vais alors recopier ces résultats vers 3 fichiers appelés des maquettes à différents endroits.
La copie des datas marche très bien, mais dès lors que je boucle sur ma deuxième série à analyser ces dernières se "volatilisent", c'est pour cela que j'ai pensé à rajouter une étape de sauvegarde (qui ne marche pas non plus).
Merci d'avance pour votre temps et votre aide.
Code:
Windows(fichier).Activate
'On commence par faire une boucle sur chaque sheet du fichier
For Each i In ActiveWorkbook.Worksheets
If (Len(i.Name) = 3) And (Left(i.Name, 1) = "F") Then
'On cherche le nombre de facteurs et de valeurs par sheet
Sheets(i.Name).Select
NbVal = Range("B65536").End(xlUp).Row ' a deplacer ou val a prendre dans un autre fichier
NbFonds = Range("VI1").End(xlToLeft).Column - 1 'on enleve 1 pour enlever la colonne des dates
'Boucle sur les fonds à l'intérieur de chaque famille
j = 2
For j = 2 To NbFonds
Windows(fichier).Activate
Sheets("Temporaire").Cells.ClearContents
Sheets(i.Name).Select
Application.Calculation = xlCalculationManual
' Donne la correspondance des chiffres en colonnes, sur la table ASCII "A"= 65
Select Case j
Case Is <= 26
string_j = Chr(64 + j)
Case Is > 26
string_j = Chr(64 + Int(((j - 1) / 26))) 'Retourne la première lettre
string_j = string_j & Chr(64 + 26 * (j / 26 - Int((j - 1) / 26))) ' Retourne la deuxième lettre
End Select
'On selectionne les datas puis on les copie afin d'obtenir le rang
Range(string_j & "2:" & string_j & NbVal).Select
Selection.Copy
Sheets("Temporaire").Select
Range("A2:A" & NbVal).Select
Selection.PasteSpecial Paste:=xlValues
Calculate
'On recupere les datas avec le rang et les duplique vers les maquettes
Sheets("Ranking").Select
Range("C3:C" & NbVal).Select
Selection.Copy
'Ouverture et copie des données dans les 3 maquettes
k = 1
For k = 1 To 3
fichiermaquette = "M" & k & "_" & etudeType & ".xls"
Windows(fichiermaquette).Activate
If fichiermaquette = "M3_w.xls" Then
'Maquette 3
Sheets(i.Name).Select
Range(string_j & 41).Select
' Selection.PasteSpecial Paste:=xlValue
Selection.Paste
'ActiveWorkbook.Save
Else
'Maquette 1 et 2
Sheets(i.Name).Select
Range(string_j & 21).Select
'Selection.PasteSpecial Paste:=xlValue
ActiveSheet.Paste
'Selection.Paste
'Windows(fichiermaquette).Activate
' ActiveWorkbook.Saved = True
'ActiveWorkbook.Close savechanges:=True
ActiveWorkbook.Save
'ThisWorkbook.Save
'ActiveSheets.Save
End If
Next k
Next j
Windows(fichier).Activate
End If
Next i
J'ai testé différentes méthodes que j'ai d'ailleur laissé avec des ', mais ces dernières donnent toutes le même résultat.