Extraire des données de classeur vers une base de données
Fermé
yannes.cgn
Messages postés
1
Date d'inscription
mercredi 6 août 2014
Statut
Membre
Dernière intervention
6 août 2014
-
6 août 2014 à 09:14
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 6 août 2014 à 12:17
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 6 août 2014 à 12:17
A voir également:
- Extraire des données de classeur vers une base de données
- Extraire une video youtube - Guide
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
- Tnt base de données vide - Forum TNT / Satellite / Réception
3 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
6 août 2014 à 09:40
6 août 2014 à 09:40
Bonjour,
Sub recup()
Dim i%, chemin$, Fichier$, Factures$
Application.ScreenUpdating = False
'i = Range("A1").Row 'sélectionner la cellule de début ??????????????
i = 1
chemin = "C:\factures" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(chemin & "*.xls") ' Premier fichier
Do While Fichier <> ""
Workbooks.Open Filename:=chemin & Fichier 'charge le classeur
With ActiveWorkbook.Worksheets(1)
'.Range("A2:C5").Copy Workbooks("classeur_steph_solution2").Worksheets(2).Cells(i, 1)
.Range("A2:C5").Copy Workbooks("classeur_steph_solution2").Worksheets(2).Range("A" & i).Resize(i + 3, 2)
.Close savechanges:=False
End With
MsgBox ("pb")
i = Range("A65536").End(xlUp)(2).Select
Fichier = Dir ' Fichier suivant
Loop
End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
6 août 2014 à 09:43
6 août 2014 à 09:43
Bonjour,
1- vérifier que le(s) classeur(s) concerné(s) s'ouvre(nt) bien.
2- pas top top :
A remplacer par :
=> pas de paste : inutile
=> c'est le workbook que l'on ferme, pas WorkBook.WorkSheets(1)...
=> suppression du i et du Select inutile.
3- Ton code devient donc :
4- Si tu le souhaites, tu n'es même pas obligé d'ouvrir tes classeurs... Voir cette astuce.
On peut l'appliquer à ton cas très facilement, si tu le veux...
1- vérifier que le(s) classeur(s) concerné(s) s'ouvre(nt) bien.
chemin = "C:\factures"dans ton cas ne fonctionnera pas. Il faut ajouter le "" en fin de chemin, soit :
chemin = "C:\factures"
2- pas top top :
With ActiveWorkbook.Worksheets(1) .Range("A2:C5").Copy Workbooks("classeur_steph_solution2").Worksheets(2).Cells(i, 1).Paste .Range("A65536").End(xlUp).Select .Close savechanges:=False End With
A remplacer par :
With ActiveWorkbook .Worksheets(1).Range("A2:C5").Copy Workbooks("classeur_steph_solution2").Worksheets(2).Range("A65536").End(xlUp).Offset(1, 0) .Close savechanges:=False End With
=> pas de paste : inutile
=> c'est le workbook que l'on ferme, pas WorkBook.WorkSheets(1)...
=> suppression du i et du Select inutile.
3- Ton code devient donc :
Sub recup() Dim chemin$, Fichier$, Factures$ Application.ScreenUpdating = False chemin = "C:\factures" 'saisir le chemin complet du dossier où se trouvent les fichiers Fichier = Dir(chemin & "*.xls") ' Premier fichier Do While Fichier <> "" Workbooks.Open Filename:=chemin & Fichier 'charge le classeur With ActiveWorkbook .Worksheets(1).Range("A2:C5").Copy Workbooks("classeur_steph_solution2").Worksheets(2).Range("A65536").End(xlUp).Offset(1, 0) .Close savechanges:=False End With 'MsgBox ("pb") Fichier = Dir ' Fichier suivant Loop End Sub
4- Si tu le souhaites, tu n'es même pas obligé d'ouvrir tes classeurs... Voir cette astuce.
On peut l'appliquer à ton cas très facilement, si tu le veux...
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
6 août 2014 à 10:27
6 août 2014 à 10:27
Bonjour Pijaku,
viens seulement de voir ca:
chemin = "C:\factures" manque "\" a la fin
pour lecture fichier sans ouvrir, il faut que je m'y mette ca doit etre top si pas mal de fichier
viens seulement de voir ca:
chemin = "C:\factures" manque "\" a la fin
pour lecture fichier sans ouvrir, il faut que je m'y mette ca doit etre top si pas mal de fichier
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
6 août 2014 à 10:30
6 août 2014 à 10:30
Salut f894009,
pour lecture fichier sans ouvrir, il faut que je m'y mette ca doit etre top si pas mal de fichier
Oui. Un gain de temps appréciable.
En plus la méthode décrite est loin d'être aussi complexe qu'une méthode par ADO ou autre connexion...
pour lecture fichier sans ouvrir, il faut que je m'y mette ca doit etre top si pas mal de fichier
Oui. Un gain de temps appréciable.
En plus la méthode décrite est loin d'être aussi complexe qu'une méthode par ADO ou autre connexion...
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
6 août 2014 à 12:17
6 août 2014 à 12:17
Re,
En effet, moins complexe que ADO, ayant fait pas mal de programme avec connexion ADO, DAO en VB6, excel et autre, je sais que de temps en temps ca coince pour un truc tout bete
En effet, moins complexe que ADO, ayant fait pas mal de programme avec connexion ADO, DAO en VB6, excel et autre, je sais que de temps en temps ca coince pour un truc tout bete