Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 08h58   #1
Membre à l'essai
 
Inscription : juillet 2009
Messages : 102
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : juillet 2009
Messages : 102
Points : 22
Points : 22
Par défaut Copier Feuille depuis un classeur fermé en gardant la mise en forme

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.

Code :
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
J'imagine que le changement doit se faire sur la ligne en rouge, mais de quelle manière?

Merci pour votre aide
altra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h52.


 
 
 
 
Partenaires

Hébergement Web