extraction données via XL

MURET31

XLDnaute Nouveau
Bonjour,

je voudrais extraire des données XL sur une autre feuille XL, je m'explique:

J'ai créé un dossier sur mon bureau nommé "X" dans lequel tombe tous les matins une extraction de données XL avec la nomenclature suivante "nom -année mois jour" exemple : "Bravo-20171215" ce qui correspond "Bravo-15 décembre 2017"

je voudrais une macro qui extrait tous les matins dans le dernier fichier XL c'est à dire celui du jour (Bravo-Année mois jour" les données des cellules contenant la date du lendemain avec la nomenclature suivante exemple: "16122017", je m'explique:

La date du lendemain se trouve toujours dans la colonne C et je voudrais si la date du lendemain s'arrête par exemple à C10 copié toutes les colonnes A10 -B10-C10 -D10-E10 etc..... vers un nouveau fichier XL sur le bureau qui lui s'appellera "Y"

Par avance merci de votre aide

Bien cordialement
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Est-ce que cela t'ennuierait de joindre un fichier exemple anonymisé, stp?
(Histoire de ne pas avoir à recréer ce qui existe déjà sur ton disque dur)

Voila pour le premier point
VB:
Sub ouvrir()
Dim strPath
'NB: Test OK sur mon PC
strPath = Environ("USERPROFILE") & "\Desktop\X\"
Workbooks.Open strPath & "Bravo-" & Format(Date, "yyyymmdd") & ".xlsx" 'changer l'extension si besoin
End Sub
 
Dernière édition:

MURET31

XLDnaute Nouveau
Bonjour,

je voudrais extraire des données XL sur une autre feuille XL, je m'explique:

J'ai créé un dossier sur mon bureau nommé "X" dans lequel tombe tous les matins une extraction de données XL avec la nomenclature suivante "nom -année mois jour" exemple : "Bravo-20171215" ce qui correspond "Bravo-15 décembre 2017"

je voudrais une macro qui extrait tous les matins dans le dernier fichier XL c'est à dire celui du jour (Bravo-Année mois jour" les données des cellules contenant la date du lendemain avec la nomenclature suivante exemple: "16122017", je m'explique:

La date du lendemain se trouve toujours dans la colonne C et je voudrais si la date du lendemain s'arrête par exemple à C10 copié toutes les colonnes A10 -B10-C10 -D10-E10 etc..... vers un nouveau fichier XL sur le bureau qui lui s'appellera "Y"

Par avance merci de votre aide

Bien cordialement
Bonsoir le fil, le forum

Est-ce cela t'ennuierait de joindre un fichier exemple anonymisé, stp?

Voila pour le premier point
VB:
Sub ouvrir()
Dim strPath
'NB: Test OK sur mon PC
strPath = Environ("USERPROFILE") & "\Desktop\X\"
Workbooks.Open strPath & "Bravo-" & Format(Date, "yyyymmdd") & ".xlsx" 'changer l'extension si besoin
End Sub


Merci pour ta réponse rapide, je viens de joindre un exemple du fichier
 

Pièces jointes

  • Bravo-20171116.xlsm
    38.3 KB · Affichages: 16

Staple1600

XLDnaute Barbatruc
Re

Voici la suite, je te laisse tester
VB:
Sub OuvrirEtCopierPuisFermer()
Dim strPath$, wb As Workbook, y As Range, z As Workbook
strPath = Environ("USERPROFILE") & "\Desktop\X\"
Set wb = Workbooks.Open(strPath & "Bravo-" & Format(Date, "yyyymmdd") & ".xlsx")
With wb.Sheets(1)
Set y = .Columns("C:C").Find(What:=Date + 1, LookIn:=xlValues)
Rows(y.Row).Copy
Set z = Workbooks.Add(-4167)
z.Sheets(1).Paste
End With
wb.Close False
z.SaveAs strPath & "Y.xlsx", 51
z.Close True
End Sub
 
Dernière édition:

MURET31

XLDnaute Nouveau
Re

Voici la suite, je te laisse tester
VB:
Sub OuvrirEtCopierPuisFermer()
Dim strPath, wb As Workbook, y As Range, z As Workbook
strPath = Environ("USERPROFILE") & "\Desktop\X\"
Set wb = Workbooks.Open(strPath & "Bravo-" & Format(Date, "yyyymmdd") & ".xlsx")
With wb.Sheets(1)
Set y = .Columns("C:C").Find(What:=Date + 1, LookIn:=xlValues)
Rows(y.Row).Copy
Set z = Workbooks.Add(-4167)
z.Sheets(1).Paste
End With
wb.Close False
z.SaveAs strPath & "Y.xlsx", 51
z.Close True
End Sub

Re

je teste tout ça et reviens vers toi rapidement
Merci pour tout, super sympa

Cdlt

AM
 

Staple1600

XLDnaute Barbatruc
Re

@MURET31
Oui, cela fonctionne chez moi, sinon pourquoi aurais-je posté cette macro?

Et concernant l'extension de ton fichier Excel?
*.xls ou *.xlsx?

EDITION: En relisant le fil, je viens de voir que ton fichier est un *.xlsm
Or j'ai crée mon code avant que tu joignes un fichier, et j'ai testé avec un *.xlsx
Il suffisait donc de faire le changement idoine
Set wb = Workbooks.Open(strPath & "Bravo-" & Format(Date, "yyyymmdd") & ".xlsm")
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Quel est le contenu de ton dossier X?
Quel est le nom exact du fichier correspondant à aujourd'hui?
Qu'affiche cette macro de test?
VB:
Sub Test_path()
Dim strPath$
strPath = Environ("USERPROFILE") & "\Desktop\X\"
If Dir(strPath, vbDirectory) <> vbNullString Then
        MsgBox strPath & " existe."
    Else
        MsgBox strPath & " n'existe pas."
    End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

???
Maintenant l'extension est *.xlsx alors qu'au post#3 c'était *.xlsm

Tu as recopié le code tel quel?

Encore une fois, ça marche chez moi (avec mon fichier de test)

Je viens de voir que dans ta colonne C, on a:
17/11/2017
17/11/2017
17/11/2017
18/11/2017
19/11/2017

Or tu disais dans ton premier message
La date du lendemain se trouve toujours dans la colonne C
Le lendemain du 18/12/2017 c'est le 19/12/2017 pas le 19/11/2017 !!!
 
Dernière édition:

MURET31

XLDnaute Nouveau
Tu as parfaitement raison, c'est mon erreur car j'avais récupéré un vieux fichier
maintenant que j'ai modifié la date ça fonctionne
Cependant je me suis mal exprimé peut être mais j'aurais voulu qu'elle me copie toutes les lignes contenant la date du lendemain mais pas seulement la première et dans une feuille XL sur le bureau que j'aurais nommé Y
le but c'est de créer une macro avec Y qui me fera le calcul des données extraites à chaque fois
Merci encore
Bien cordialement
AM
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 365
Membres
103 528
dernier inscrit
maro