Extraire des données de classeur vers une base de données

Bonjour bonjour,

je souhaiterai répertorier des factures que j'ai répertorié dans un classeur vers une base de donnée à l'aide d'une macro VBA.

Mais voilà! Dès que je lance la macro le fameux message d'erreur propre au cas échant m'indique " Excel : Erreur '1004' : erreur définie par application ou objet

Naturellement je me suis renseigné avant et malgrés avoir vérifié chaque paramètre le problème persiste: HELP !

Nota: je souhaite aussi que tous les fichiers se mettent à la suite

Sub recup()
Dim chemin As String
Dim Fichier As String
Dim Factures As String
Application.ScreenUpdating = False

Range("A1").Select 'sélectionner la cellule de début
chemin = "C:\11'472\" '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

Factures = ActiveWorkbook.Name 'récupère le nom du classeur actif

' Windows(Factures).Activate 'active un classeur

Workbooks(Factures).Worksheets(1).Range("A2:C5").Select
Workbooks(Factures).Worksheets(1).Range("A2:C5").Copy 'copie

Workbooks("classeur_steph").Activate

Application.CutCopyMode = False

Workbooks("classeur_steph").Worksheets(2).Select

ActiveSheet.Paste   ' --------------------------------->  LIGNE MESSAGE D'ERREUR

Range("A65536").End(xlUp).Offset(0, 0).Select

Workbooks(Factures).Close savechanges:=False

Fichier = Dir ' Fichier suivant
Loop

End Sub

Bonjour,

Fournir un spécimen de :

"classeur_steph".Worksheets(2)

comprenant au moins 1 ligne d'enregistrement représentatif.

Un spécimen est une copie à l'identique hein, pas un infect fichier avec des tata, pipo,cucu...

Merci.

A+

Bonjour, merci pour ta réponse !

Etant novice (je sais que l'excuse est nulle mais bon...) je ne suis pas sur de comprendre ton message

Bonjour,

Cette macro devrait faire l'affaire :

Suprimé

Sinon :

A+

je vais essayer ça. Je ne demandais pas à ce qu'on me mache le travail mais bon je vais pas me plaindre ^^ merci


J'ai donc compilé et nouveau message d'erreur!

A la ligne

.Range("A2:C5").Copy Workbooks("classeur_steph") .Worksheets(2).Cells(i, 1).Paste

Je perçois un message d'erreur classique "methode non gérée par cet objet"

Bonjour,

Lire ici (en particulier le point 6)

La macro modifiée :

Sub recup()
Dim chemin$, Fichier$, Factures$, WbD$
Application.ScreenUpdating = False
WbD = ActiveWorkbook.Name  '"classeur_steph" je suppose...
Worksheets(2).Activate
Range("A1").Select 'sélectionner la cellule de début
chemin = "C:\11'472\" '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
Factures = ActiveWorkbook.Name 'récupère le nom du classeur actif
Workbooks(Factures).Worksheets(1).Range("A2:C5").Copy 'copie
Workbooks(WbD).Activate
ActiveSheet.Paste   ' --------------------------------->  LIGNE MESSAGE D'ERREUR
Range("A65536").End(xlUp).Offset(1, 0).Select
Windows(Factures).Activate 'active un classeur
Workbooks(Factures).Close savechanges:=False

Fichier = Dir ' Fichier suivant
Loop

End Sub

A+

J'ai pris note du point 6. Cependant la boucle ne se fait pas j'obtient le message suivant:

erreur 9: l'indice n'appartient pas à la selection.

Nota: j'ai vérifié tous les noms et tout, seul le premier classeur se copie mais pas les autres

Sub recup()
Dim chemin$, Fichier$, Factures$, WbD$
Application.ScreenUpdating = False
WbD = ActiveWorkbook.Name  '"classeur_steph" je suppose...
Worksheets(2).Activate
Range("A1").Select 'sélectionner la cellule de début
chemin = "C:\facture\" 'saisir le chemin complet du dossier où se trouvent les fichiers

Fichier = Dir(chemin & "*.*")  ' Premier fichier

Do While Fichier <> ""

Workbooks.Open Filename:=chemin & Fichier  'charge le classeur
Factures = ActiveWorkbook.Name 'récupère le nom du classeur actif
Workbooks(Factures).Worksheets(1).Range("A2:C5").Copy 'copie
Workbooks(WbD).Activate
ActiveSheet.Paste
Range("A65536").End(xlUp).Offset(1, 0).Select

Windows(Factures).Activate 'active un classeur ' --------------------------------->  LIGNE MESSAGE D'ERREUR
Workbooks(Factures).Close savechanges:=False

Fichier = Dir ' Fichier suivant
Loop

End Sub

Bonjour,

Il y a probablement dans ton répertoire un fichier "zarbi" (qui n'est pas un fichier Excel)

A+

Rechercher des sujets similaires à "extraire donnees classeur base"