Copie depuis un classeur fermer

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 !

Multhani

XLDnaute Nouveau
Bonjour,

Je reviens vers vous car j'ai de nouveau un problème, je souhaite récupérer des données depuis un classeur fermé, j'ai réussi a récupérer les données (texte) du classeur fermer mais je souhiaterais également récupérer la mise en forme et les commentaires. Je ne suis pas sûr que ce soit possible, merci de me dire si cela est possible et si oui comment dois-je modifier mon code.

Code:
Sub RequeteClasseurFerme1()
    Dim Cn As ADODB.Connection
    Dim fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset
    Dim conn As Object
    
    'Définit le classeur fermé servant de base de données
    fichier = Sheets("données").Cells(2, 2).Value & "\" & Sheets("données").Cells(2, 3).Value
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "7$"
    
    cellule = "B4:H19"
    
    Set Cn = New ADODB.Connection
    
    '--- Connection ---
    connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & fichier & _
    "';Extended Properties='Excel 12.0;HDR=NO;IMEX=1';"
    Cn.Open connstring
    '-----------------
    
    'Définit la requête.
    '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
    texte_SQL = "SELECT * FROM [" & NomFeuille & cellule & "]"
        
    Set Rst = New ADODB.Recordset
    Rst.Open texte_SQL, Cn
    'Set Rst = Cn.Execute(texte_SQL)
    
    'Ecrit le résultat de la requête dans la cellule A2
    Range("B4").CopyFromRecordset Rst
    
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing

End Sub
 
Re : Copie depuis un classeur fermer

Re,


Code:
Sub Importer()
Dim Chemin As String, Fichier As String

    Chemin = ThisWorkbook.Path & "\"
    Fichier = "Formules.xls"

  Application.ScreenUpdating = False
  
  On Error Resume Next
    With Workbooks.Open(Chemin & Fichier)
       Range("A1:N30").Copy ThisWorkbook.ActiveSheet.Range("A1")
       With ThisWorkbook.ActiveSheet
       .Range("A1:L30").Columns.AutoFit
       End With
       .Close savechanges:=False
       Application.Goto ActiveSheet.Range("A1")
    End With
End Sub



A+ 😎
 
Dernière édition:
Re : Copie depuis un classeur fermer

Salut, merci pour ta réponse, mais si je comprend bien ton code, tu ouvre un fichier, tu copie les données, sa je sais le faire, ce que je veux c'est copier l'environnement d'une cellule (cells(x,y).interior.color) et (cells(x,y).comment) mais sans ouvrir le fichier source. Je pourrais mettre un fichier mais pas sûr que ce soit très utile. Si tu veux je m'enverrais demain.

Je pense que c'est possible de le faire avec un objet ADO puisqu'il est possible de copier une feuille entière...
 
Re : Copie depuis un classeur fermer

Bonjour Multhani,

Tout ce qui est format, mise en forme des cellules, shapes et autres... ADO n'aime pas les avoir sur le DOS. MsgBox "DONT NOT POSSIBLE! I DONT LIKE, SORRY. PLEASE CALL MICROSOFT AND CRY HELP. TANK YOU.", , "MIMI"


A+ 😎
 
- 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
8
Affichages
733
Retour