A voir également:
- Problème macro excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- Déplacer une colonne excel - Guide
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
- Aller à la ligne excel - Guide
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
7 sept. 2016 à 15:23
7 sept. 2016 à 15:23
Bonjour Victor, bonjour le forum,
Peut-être comme ça :
Peut-être comme ça :
Private Sub Workbook_Open()
Dim myRange As Range
Dim nom As String
Dim CH As String
Sheets("Feuil1").Select 'nom de l'onglet à adapter
Set myRange = Range("A" & Rows.Count).End(xlUp)
If Not myRange = Date Then
'j'insert une ligne au dessus de la dernière
myRange.EntireRow.Insert
myRange.EntireRow.Select
'je copie la derniere ligne et je la colle au dessus en dur
Selection.Copy
myRange.Offset(-1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'je met à jour la date de la dernière fois par celle du jour
myRange = Date
'sauvegarder avec la nouvelle date
CH = "C:\Users\vklajnow\Documents\OXXXX PXXXXX\LISTE_KPI\"
nom = CH & Range("k1351").Value & "_" & Year(Date) & "-" & Month(Date) & "-" & Day(Date) & ".xls"
ThisWorkbook.SaveAs nom
MsgBox ("KPI mis à jour")
Else
MsgBox ("KPI déjà mis à jour aujourd'hui")
End If
End Sub
21 sept. 2016 à 11:05
Merci ThauTheme pour ta réponse, mais cela n'a pas fonctionné.
J'ai résolu le problème en reprenant les précédentes versions.
Voici le code final qui fonctionne parfaitement :
'lorsque l'excel s'ouvre
Private Sub Workbook_Open()
'ensuite je défini une fonction pour trouver la derniere cellule (où il y a la date de l'excel et donc du KPI
Dim myRange As Range
Set myRange = Range("A" & Rows.Count).End(xlUp)
If Not myRange = Date Then
'j'insert une ligne au dessus de la dernière
myRange.EntireRow.Insert
myRange.EntireRow.Select
'je copie la derniere ligne et je la colle au dessus en dur
Selection.Copy
myRange.Offset(-1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'je met à jour la date de la dernière fois par celle du jour
myRange = Date
'sauvegarder avec la nouvelle date
Dim nom As String
ChDir "C:\Users\vklajnow\Documents\OXXXX PXXXXX\LISTE_KPI"
nom = Range("k1352") & "_" & Year(Date) & "-" & Month(Date) & "-" & Day(Date) & ".xls"
ThisWorkbook.SaveAs (nom)
MsgBox ("KPI mis à jour")
Else
MsgBox ("KPI déjà mis à jour aujourd'hui")
End If
End Sub
J'espère que ce que j'ai codé pourra aidé les amateurs et ceux qui cherchent des solutions pour la sauvegarde de fichier qui contiennent la date du jour (très utile pour les KPIs)
Cordialement,
Victor K