A voir également:
- Problème macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne 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