Ouvrir un fichier, extraire des données, les coller, faire tourner des formules
amelise
Messages postés
53
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute sur VBA. Je cherche à faire un code:
- qui m'ouvre un fichier (dont le nom changera tous les mois) dans un dossier nommé "Excel"
- me sélectionne les données à partir de la cellule A2 jusqu'à la colonne U et qui me prenne toutes les lignes (le nombre de lignes changera tous les mois)
- me les colle dans un autre fichier (disons le fichier B), à partir de la dernière cellule vide dans la colonne G (ex: j'ai des données jusqu'à G1545, et les nouvelles données doivent se coller en dessus en G1546 jusqu'en AA)
- puis referme le classeur dont le nom changera tous les mois
- ensuite j'aurai besoin de tirer les formules dans les colonnes de A à F et de AB à AE.
C'est fini.
Je me suis entraînée à écrire ce code qui n'est pas adapté à tout cela car je voulais commencer par tout décomposer pour comprendre (il ne marche même pas) mais puisque je poste sur ce forum, autant écrire tout ce que je souhaite faire.
Merci pour votre aide!
Cordialement
Je débute sur VBA. Je cherche à faire un code:
- qui m'ouvre un fichier (dont le nom changera tous les mois) dans un dossier nommé "Excel"
- me sélectionne les données à partir de la cellule A2 jusqu'à la colonne U et qui me prenne toutes les lignes (le nombre de lignes changera tous les mois)
- me les colle dans un autre fichier (disons le fichier B), à partir de la dernière cellule vide dans la colonne G (ex: j'ai des données jusqu'à G1545, et les nouvelles données doivent se coller en dessus en G1546 jusqu'en AA)
- puis referme le classeur dont le nom changera tous les mois
- ensuite j'aurai besoin de tirer les formules dans les colonnes de A à F et de AB à AE.
C'est fini.
Je me suis entraînée à écrire ce code qui n'est pas adapté à tout cela car je voulais commencer par tout décomposer pour comprendre (il ne marche même pas) mais puisque je poste sur ce forum, autant écrire tout ce que je souhaite faire.
Merci pour votre aide!
Cordialement
Sub Test()
'
' Test Macro
'Déclaration des variables
Dim nom_fichier As String
Dim Wbkdata As Workbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ChDir "C:\Users\Monsi\Desktop\excel"
nom_fichier = Application.GetOpenFilename("fichiers Excel(*.),*.")
'Initialisation de la variable WbkData
Set Wbkdata = Workbooks.Open(nom_fichier)
ThisWorkbook.Activate
Range("G38745").Select
'Récupération des données dans l'autre feuille
Wbkdata.Activate
Sheets("Feuil1").Select
Range("A2:U1717").Select
Selection.Copy
Windows("TEST.xlsm").Activate
Range("G38745").Select
'fermeture du classeur d'où les données ont été extraites
Wbkdata.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
A voir également:
- Ouvrir un fichier, extraire des données, les coller, faire tourner des formules
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu utiliser les balises de code (VBA est du basic) quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu n'écris pas ce que tu attends de nous.
As-tu examiné les réponses à des questions très similaires posées ici?
peux-tu utiliser les balises de code (VBA est du basic) quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu n'écris pas ce que tu attends de nous.
As-tu examiné les réponses à des questions très similaires posées ici?
Option Explicit Sub Test() ' ' Test Macro 'Déclaration des variables Dim nom_fichier As String, Wbkdata As Workbook, source As Range, destination As Range Application.DisplayAlerts = False Application.ScreenUpdating = False ChDir "C:\Users\Monsi\Desktop\excel" nom_fichier = Application.GetOpenFilename("fichiers Excel(*.),*.") 'Initialisation de la variable WbkData Set Wbkdata = Workbooks.Open(nom_fichier) 'Récupération des données dans l'autre feuille Set source = Wbkdata.Sheets("Feuil1").Range("A2:U1717") Set destination = ThisWorkbook.Sheets("??").Range("G38745") Set destination = destination.Resize(source.Rows.Count, source.Columns.Count) source.Copy destination 'fermeture du classeur d'où les données ont été extraites Wbkdata.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End SubOption Explicit Sub Test() ' ' Test Macro 'Déclaration des variables Dim nom_fichier As String, Wbkdata As Workbook, source As Range, destination As Range Dim fdest As Worksheet, ligvid As Long Application.DisplayAlerts = False Application.ScreenUpdating = False ChDir "C:\Users\Monsi\Desktop\excel" nom_fichier = Application.GetOpenFilename("fichiers Excel(*.),*.") 'Initialisation de la variable WbkData Set Wbkdata = Workbooks.Open(nom_fichier) 'Récupération des données dans l'autre feuille Set source = Wbkdata.Sheets("Feuil1").Range("A2:U1717") Set fdest = ThisWorkbook.Sheets("??") ligvid = fdest.UsedRange.Row + fdest.UsedRange.Rows.Count Set destination = fdest.Cells(ligvid, "g").End(xlUp).Offset(1) Set destination = destination.Resize(source.Rows.Count, source.Columns.Count) source.Copy destination 'fermeture du classeur d'où les données ont été extraites Wbkdata.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub