Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ouvrire le Nème enregistrement

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cj welch

XLDnaute Occasionnel
Bonsoir,

je me demande s'il est possible d'ouvrire le dernier fichier enregistré a partir d'un bouton.

j'ai une feuille de commande avec un bouton et lorsque j'appuis sur ce bouton, j'aimerais que le dernier enregistrement s'ouvre. Le nom du fichier est identique pour tous les enregistrement avec comme seul difference le mois + l'année (Exemple : véhicule octobre 2008).

Si qlqu'un peut m'aider a completer mon code, si ma demande est possible, ça m'aiderais beaucoup.


Sub véhicule()

' Workbooks.Open Filename:= _
"C:\Documents and Settings\Ordi\Mes documents\excel\Véhicule octobre 2008"

End Sub


merci de votr aide

A+
 
Re : Ouvrire le Nème enregistrement

Bonsoir

Code:
Sub test_I()
Dim chemin$, nom$
'ici pour [B]véhicule octobre 2008.xls[/B]
'chemin = "C:\Documents and Settings\Ordi\Mes documents\excel\"
chemin = "C:\Temp\"
nom = "véhicule " & MonthName(Month(Date)) & Space(1) & Year(Date) & ".xls"
Workbooks.Open (chemin & nom)
End Sub



Code:
Sub test_II()
' ic pour [B]véhicule 10 2008.xls[/B]
Dim chemin$, nom$
chemin = "C:\Documents and Settings\Ordi\Mes documents\excel\"
nom = "véhicule " & Month(Date) & Space(1) & Year(Date) & ".xls"
 Workbooks.Open (chemin & nom)
End Sub
 
Dernière édition:
Re : Ouvrire le Nème enregistrement

salut staple1600,

merci pour ton aide

je ne sait pas si j'ai bien rentré le code mais j'ai crée 2 fichiers véhicule:
véhicule octobre 2008
véhicule novembre2008

Quand je lance la macro c'est le fichier d'octobre qui s'ouvre alors que moi j'aurais voulu le fichier de novembre.

A+
 
Dernière édition:
Re : Ouvrire le Nème enregistrement

Bonsoir cj welch, Staple,

Voici une macro qui fait un balayage à partir de décembre 2027 jusqu'à janvier 2008 et qui normalement doit ouvrir le dernier fichier en date dans cette période :

Code:
Sub véhicule()
Dim i As Integer
For i = 240 To 1 Step -1
On Error Resume Next
Workbooks.Open "C:\Documents and Settings\Ordi\Mes Documents\excel\Véhicule " & _
Format(DateAdd("m", i, "1/12/2007"), "mmmm yyyy") & ".xls"
If Err = 0 Then Exit For
On Error GoTo 0
Next
End Sub

Bonne nuit et A+

Edit : on peut bien sûr réduire la période pour diminuer le temps de calcul. Si l'on est sûr que l'année du dernier fichier ne dépasse pas l'année en cours + 1, on peut écrire :
Code:
Sub véhicule()
Dim i As Integer
For i = 23 To 0 Step -1
On Error Resume Next
Workbooks.Open "C:\Documents and Settings\Ordi\Mes Documents\excel\Véhicule " & _
Format(DateAdd("m", i, "1/1/" & Year(Date)), "mmmm yyyy") & ".xls"
If Err = 0 Then Exit For
On Error GoTo 0
Next
End Sub
 
Dernière édition:
Re : Ouvrire le Nème enregistrement

Re



Cela fonctionne si le nom des fichiers a la même structure

véhiculeESPACEmoisESPACEannée.xls

et la macro ouvre le fichier avec le nom du mois en cours.
 
Dernière édition:
Re : Ouvrire le Nème enregistrement

Bonjour job75


Oui je sais


Mais je lui expliquait pourquoi mon code en fonctionnait pas chez lui


Pourquoi ne pas utiliser la propriéte LastSaved ou LastModified dans ce cas?
 
Re : Ouvrire le Nème enregistrement

salut job75, staple1600,

Merci ça fonctionne super bien.

j'ai une dernière petite demande plus simple :
Et si je voulais ouvrir un dossier appelé facture qui contient des factures classés par mois. quel code faut il ? j'ai essayé avec l'enregistreur mais cela na pas marché.

Merci de votre aide
 
Re : Ouvrire le Nème enregistrement

Bonjour cj welch,

Si les noms des feuilles sont du genre "novembre 2008", il faut d'abord simplement ouvrir le classeur, puis faire un balayage sur les feuilles, par exemple en utilisant la 2ème solution que j'ai indiquée :

Code:
Sub facture()
Dim i As Integer
Workbooks.Open "C:\Documents and Settings\Ordi\Mes Documents\excel\facture.xls"
For i = 23 To 0 Step -1
On Error Resume Next
Sheets(Format(DateAdd("m", i, "1/1/" & Year(Date)), "mmmm yyyy")).Activate
If Err = 0 Then Exit For
On Error GoTo 0
Next
End Sub

Mais normalement vos feuilles seront classées dans l'ordre des mois, et il suffira alors d'activer la dernière feuille :

Code:
Sub facture()
Workbooks.Open "C:\Documents and Settings\Ordi\Mes Documents\excel\facture.xls"
Sheets(Sheets.Count).Activate
End Sub

A+
 
Re : Ouvrire le Nème enregistrement

salut job 75,

merci encore une fois pour ton aide.

j'ai essayé le 2ème code et malheureusement j'ai eu un message d'erreur. j'ai bien vérifié le chemin plusieurs fois.

A+
 
Re : Ouvrire le Nème enregistrement

salut job,

je viens de faire un nouvelle essai et j'ai encore ce message d'erreur. Sur le chemin il n'y a pas d'erreur car j'ai fait du copier coller.

je me suis peut etre mal exprimé. je récap

Dans un dossier qu'on appèlera facture , j' ai des fichiers appellés
facture octobre 2008, facture novembre 2008, etc
Quand j'actionne le bouton, je voudrais que le dossier facture s'ouvre et laisse apparaitre toutes les fact de ce dossier.

dans l'attente de te lire
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…