Problème macro excel
Victor klajnowski
-
Victor K -
Victor K -
Bonjour à tous,
Voilà j'ai un petit soucis avec ma macro excel,
Quand je l'ai créer tout fonctionner très bien...
Depuis 1 semaine j'ai des problèmes lors de l'opération de sauvegarde...
C'est à dire que soit elle bug ou soit ça ne fait rien. Pourtant le reste de la macro s’exécute toujours correctement...
Voici la macro :
Private Sub Workbook_Open()
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("k1351") & "_" & 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
Le problème le plus récurrent vient de : ( erreur du debuggeur 1004)
ThisWorkbook.SaveAs (nom)
Merci d'avance pour votre aide,
Cordialement,
Victor K
Voilà j'ai un petit soucis avec ma macro excel,
Quand je l'ai créer tout fonctionner très bien...
Depuis 1 semaine j'ai des problèmes lors de l'opération de sauvegarde...
C'est à dire que soit elle bug ou soit ça ne fait rien. Pourtant le reste de la macro s’exécute toujours correctement...
Voici la macro :
Private Sub Workbook_Open()
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("k1351") & "_" & 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
Le problème le plus récurrent vient de : ( erreur du debuggeur 1004)
ThisWorkbook.SaveAs (nom)
Merci d'avance pour votre aide,
Cordialement,
Victor K
A voir également:
- Problème macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
1 réponse
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
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