Copier derniere ligne d'un onglet via un repertoire
dianbobo
Messages postés151Date d'inscriptionmardi 20 avril 2010StatutMembreDernière intervention15 juin 2014
-
7 juil. 2010 à 12:08
dianbobo
Messages postés151Date d'inscriptionmardi 20 avril 2010StatutMembreDernière intervention15 juin 2014
-
27 juil. 2010 à 14:30
bonjour ,
je cherche a faire la chose suivante mais je n'arrive pas au bout de peines
si vous voulez bien me donner un coup de main s'il vous plait
voila j'ai un claseur actif dans lequel je travail et je voudrai copier la derniere ligne non
vide du classeur le plus recent du repertoire que j'ai indiqué dans le code
a savoir dans le dossier Résultat économique ,dans lequel je vais cherché mon fichier contient plusieurs types de fichiers
tous ayant des noms commençant par la date exemple :
20100701 - Résultat Economique;
20100702 - Résultat Economique ;
20100705 - Résultat Economique
c'est des exemples de fichiers qui m'interresent
'mais mon objectif c'est d'aller dans le fichier le plus recent dans l'exemple (le plus recent est :20100705 - Résultat Economique) ensuite allez dans l'onglet Historik et copier la derniere
'ligne non vide de cet onglet:
voici mon code:
d'abord une fonction :
Function NomPlusJeuneFichierByName(Chemin As String, PatternNomFichier As String) As String
Dim Fso As FileSystemObject
Dim Fichier As File
Dim PlusJeuneFichier As File
Set Fso = CreateObject("scripting.filesystemobject")
For Each Fichier In Fso.GetFolder(Chemin).Files
If Fichier.Name Like PatternNomFichier _
Then
If PlusJeuneFichier Is Nothing Then
Set PlusJeuneFichier = Fichier
ElseIf Fichier.Name > PlusJeuneFichier.Name Then
Set PlusJeuneFichier = Fichier
End If
End If
Next
' // Résultat
If PlusJeuneFichier Is Nothing Then
NomPlusJeuneFichierByName = ""
Else
NomPlusJeuneFichierByName = PlusJeuneFichier.Path
End If
End Function
et enfin:
Sub toto_22()
Dim I As Long
Dim k As Long
Dim Chemin As String, LaFeuille As String, LeFichier As String
Dim motif As String
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks("Classeurvarparahist")
Set ws = wb.Worksheets("Feuil1")
k = ws.Cells(Rows.Count, 4).End(xlUp).Row + 1
LaFeuille = "Historik"
motif = "######## - Résultat Economique"
Chemin = "S:\PGB\DER\_Commun\MBO\RESULTAT ECO suivi quotidien\Résultat économique"
LeFichier = NomPlusJeuneFichierByName(Chemin, motif)
'copie de la derniere ligne du tableau dans l'historique des var dans le résultat eco
For I = 0 To 27
ws.Cells(k, I + 1).Value = Workbooks("LeFichier").Worksheets(LaFeuille).Cells(k, I + 1).Value
Next
MsgBox NomPlusJeuneFichierByName(Chemin, motif)
End Sub
merci de votre aide
A voir également:
Copier derniere ligne d'un onglet via un repertoire
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 juil. 2010 à 12:31
Salut
Il te manque juste l'ouverture du fichier.
Actuellement, tu recherches le fichier dans un répertoire; tu obtiens donc une chaine avec son chemin et son nom.
Avant de vouloir lire ses cellules, il faut l'ouvrir (et le refermer ensuite ?)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 juil. 2010 à 20:06
Comme d'habitude : Tu enregistres une macro pendant que tu fais la manip à la main avec un fichier bidon et tu auras le code nécessaire, il ne te restera plus qu'à remplacer le nom du fichier bidon par le tien.
dianbobo
Messages postés151Date d'inscriptionmardi 20 avril 2010StatutMembreDernière intervention15 juin 2014 27 juil. 2010 à 14:30
Bonjour,
etant donné k la derniere ligne de la feuille ("Feuil1") ,je voudrais copier la derniere ligne
'de la feuille "historik" sachant que cette ligne change chaque jour elle est toujours a "k+1"
'comment bien definir le tableau: