Ouvrir un fichier excel en focntion de son indice

Ouvrir un fichier excel en focntion de son indice - VB/VBA/VBS - Programmation

Marsh Posté le 14-11-2007 à 08:36:08    

Bonjour
 
je souhaite une macro VBA pour ouvri un fichier excel dans un repertoire donné. Le repertoire est toujorus le meme par contre le fichier excel se presente sous la forme : incident1.xls, incident2.xls, ....  
Je souhiate en effet ouvrir le fichier qui est au dernier indice dans le repertoire.  
par exemple aujorud'hui le plus recent est incident2.xls, mais la semaine prochiane il faudra ouvrir le incident8.xls car il y aura des nouveaux indicents.
 
Le nombre de l'indice varie de 1 à 9 uniquement
 
Merci à tous pour votre aide

Reply

Marsh Posté le 14-11-2007 à 08:36:08   

Reply

Marsh Posté le 14-11-2007 à 09:28:53    

Le nom de ton fichier doit être stocké dans une variable, par concaténation d'une valeur fixe et d'une valeur de variable numérique incrémentée, par exemple, dans une boucle.

Dim i As Integer
Dim sFichier As String
For i = 1 To 9
    sFichier = "incident" & Str(i) & ".xls"
    ...
Next

Dans ton cas la boucle n'est pas forcément nécessaire, puisque tu ne veux traiter que le dernier.
edit: pour savoir si un fichier existe, tu peux utiliser Dir()


Message édité par tegu le 14-11-2007 à 09:30:38
Reply

Marsh Posté le 14-11-2007 à 11:05:52    

comment savoir à quel indice j'en suis dans mon repertoire ??
 

Reply

Marsh Posté le 14-11-2007 à 13:24:50    

Soit tu incrémentes ta variable compteur (i dans mon exemple) et tu testes avec Dir() si le fichier existe, soit tu listes tous les fichiers de ton répertoire avec Dir() et un masque du genre "incident?.xls" et tu récupères le plus grand indice de cette liste pour savoir quel fichier ouvrir.

Reply

Marsh Posté le 14-11-2007 à 15:20:03    

merci pour l'aide
voici le code que j'ai mis
emplcmt = "C:\fichier" & i & ".xls"
scan = Dir(emplcmt)
 
If scan <> "" Then
 
 testfich = True
 
End If
 
i = i - 1
 
Loop Until testfich
 
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed