Bonjour,
Je souhaite copier une feuille d'un classeur fermé vers le classeur qui exécute la macro.
J'ai déjà pu rassembler ce code qui fonctionne mais qui copie uniquement le texte. J'aimerais pouvoir garde aussi la mise en forme de la page copiée.
J'imagine que le changement doit se faire sur la ligne en rouge, mais de quelle manière?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Sub copie2() Dim Cn As ADODB.Connection Dim Fichier As String Dim NomFeuille As String, texte_SQL As String Dim Rst As ADODB.Recordset 'Définit le classeur fermé servant de base de données Fichier = ThisWorkbook.Path & "\TempData.xlsx" 'Nom de la feuille dans le classeur fermé NomFeuille = "Rapport" Set Cn = New ADODB.Connection '--- Connexion --- With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;""" .Open End With '----------------- '... la requête ... ' texte_SQL = "SELECT * FROM [Rapport$]" Set requete = New ADODB.Recordset Set requete = Cn.Execute(texte_SQL) 'tu ajoutes une feuille a ton classeur ouvert ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) ActiveSheet.Name = "Rapport" 'on récupère les données ActiveSheet.Range("A1").CopyFromRecordset requete '--- Fermeture connexion --- requete.Close Cn.Close Set Cn = Nothing Set requete = Nothing End Sub
Merci pour votre aide
Partager