Importer données EXCEL par macro

  • Initiateur de la discussion Initiateur de la discussion steph71
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

steph71

XLDnaute Occasionnel
Bonsoir à tous

J'aurais besoin, par une macro, d'importer dans un fichier EXCEL des données provenant d'un autre fichier EXCEL

EX : importer dans l'onglet 'TOTO' du fichier A toutes les données de l'onglet 'TATA' du fichier B


Quelqu'un aurait il une idée du code à mettre en place ???

Merci d'avance et longue vie à ce forum
 
bonsoir Steph


'importer le contenu d'une feuille de calcul d'un classeur fermé
'(seules les données sont importées, pas les mises en forme)

Sub testQuery()
fich$ = 'D:\\ExempleTris.xls''à adapter
Feuille$ = 'Feuil1''à adapter

QueryWorksheet fich, Feuille
End Sub

Public Sub QueryWorksheet(NomFichier$, Feuille$)
'Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String

''' Crée la chaîne de connexion
szConnect = 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & NomFichier & ';' & _
'Extended Properties=Excel 8.0;'

' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
' Adapter ce nom à vos besoins
szSQL = 'SELECT * FROM [' & Feuille & '$];'

Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText

''' Vérifie qu'on a bien reçu des données
If Not rsData.EOF Then
'à adapter
Feuil1.Range('A1').CopyFromRecordset rsData
Else
MsgBox 'Aucun enregistrement renvoyé.', vbCritical
End If

''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing

End Sub

à bientôt
 
Merci beaucoup pour ces premiers éléments de réponse.
Malheureusement, je ne suis pas trés doué en VBA et je n'ai pas encore réussi à le mettre en place.

Ou dois je placer ce code ?
Sur la feuille qui va réceptionner les données ?

Avec comme exemple suivant :
Réception des données dans l'onglet 'TDB_FACTURATION' du fichier 'TDB_DEPOSITAIRES sur le disque C
Origine des données Onglet 'Données' du fichier 'SUIVI_2005' sur le disque C

Te serait il possible d'adapter ton code en fonction de ces éléments ?

Merci d'avance
 
Salut et merci encore pour ton aide
J'ai tenté de mettre en place ton code dans mon appli.
Cela fonctionne pas mal sauf qu'il ne m'importe pas les entêtes de colonnes desdonnées numériques.
As tu une idée pour remédier à cela ?

Merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
228
D
  • Question Question
Réponses
5
Affichages
248
Didierpasdoué
D
Réponses
4
Affichages
265
Retour