Import de données de diff. classeurs excel

Résolu/Fermé
dufosse.david Messages postés 3 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 16 mai 2010 à 12:21
dufosse.david Messages postés 3 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 17 mai 2010 à 10:25
Bonjour,


J'ai d'un côté des fiches clients, avec des données non pas sous forme de colonnes, mais réparties dans de cellules çà et là, s'agissant d'un formulaire mis en forme sous excel.
Je souhaiterai pouvoir récupérer ces données pour les faire apparaitre dans un tableau style base de données (champs classiques, nom, prénom, n°tél...).
Si possible de manière automatisée (a l'aide d'une macro), car j'ai beaucoup de fiches clients à traiter.
Les données à importer sont systématiquement dans les mêmes cellules, çà va de soit.

J'avais trouvé ceci :
http://boisgontierjacques.free.fr/...
Rubrique consolidation de fiches dans une BD
, mais çà ne se prête pas tout à fait à mon cas de figure, car il est importé une plage de données sous forme de colonne, de plus, il doit y avoir un problème dans la macro, quand je tente de l'effectuer j'obtiens un message d'erreur.

Pouvez-vous m'aider ?

Merci.

A voir également:

4 réponses

Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
16 mai 2010 à 22:36
Bonjour,
Pouvez-vous mettre une fiche client (la sructure suffit) sur https://www.cjoint.com/ pour voir se qu'il est possible de faire ?
Comment ces fiches clients sont réparties sur la feuille ....?
0
dufosse.david Messages postés 3 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 17 mai 2010
17 mai 2010 à 08:33
Bonjour et merci pour votre réponse.

La structure de ma macro :

Sub Transfert()
ChDir ThisWorkbook.Path ' Répertoire application
ClassActuel = ThisWorkbook.Name
Range("A2:L1000").ClearContents
Range("b2").Select
nf = Dir("DD*.xls") ' Première fiche
Do While nf <> ""
Workbooks.Open Filename:=nf
[C15:H15].UnMerge 'defusionne
[C16:H16].UnMerge 'defusionne
[C19:H19].UnMerge 'defusionne
[C21:H21].UnMerge 'defusionne
[E43:F43].UnMerge 'defusionne
[E45:F45].UnMerge 'defusionne
[G43:H43].UnMerge 'defusionne
[G45:H45].UnMerge 'defusionne
Range("C15,C16,C19,C21").Copy
Windows(ClassActuel).Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Windows(nf).Activate
Range("E43,E45").Copy
Windows(ClassActuel).Activate
ActiveCell.Offset(0, 4).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Windows(nf).Activate
Range("G43,G45").Copy
Windows(ClassActuel).Activate
ActiveCell.Offset(0, 2).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Workbooks(nf).Close savechanges:=False
ActiveCell.Offset(0, -7) = nf
ActiveCell.Offset(1, -6).Select
nf = Dir() ' Fiche suivante
Loop
End Sub



Après recherches j'ai réussi à établir ceci.
Ce qui me dérange, c'est que je n'arrive à pas faire une sélection comportant des cellules se trouvant dans des colonnes différentes (avec la commande "Range"). Donc dans ma structure, le retour 2 fois à la fiche client ouverte.
Si j'ai besoin besoins d'autres éléments sur ma fiche, je serai obligé de faire autant de retours sur la fiche que d'élément à importer, ce qui risque de rendre assez long le traitement.

Si vous avez une idée je suis preneur.
Merci.
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
17 mai 2010 à 10:18
Bonjour,
Merci pour l'information sur votre procédure, mais cela ne m'aide pas sans.
une réponse à mes questions précédentes.
Désolé, je ne suis pas en mesure dans dire plus.
0
dufosse.david Messages postés 3 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 17 mai 2010
17 mai 2010 à 10:25
Merci pour votre aide, mais je ne suis pas en mesure de vous fournir la trame des fiches clients pour des raison de confidentialité.

Je suis arrivé à mes fins.

Je vais fermer le post.

Bonne continuation.
0