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 !
Salut tout le monde,
Je me suis mis recemment a la prog en vba pour mon taff et g un ptetit soucis, je n'arriv po a copier une feuille d'un classeur fermé dans mon classeur actif.
g fouillé et fouillé le forum mai le seul petit indice que g traouvé c comment recuperer la valeur d'une cellule, alor g bien penser a copier cellule par cellule mais g plus de 150 ligne et une 15zaine de colonnes, jvous laisse compter le nombre de celule que ca fé.
Je me doute qu'il faut utiliser un truc dans le genre :
Salut Excalibur,
Mrci de ton conseil mais croi moi que si j'en vien a laisser un post c ke g passé la matinée a fouiller le forum, et ke tout les exemple dont tu parle ne regle pa mon probleme.
Moi e cherche a faire un truc du genre:
Dim MaFeuille As sheet
MaFeuille = "='" & Chemin & "\[" & NomFic & "]" & Onglet & "'!"
et la plupart d post ne correspondent po a ce ke je cherche, je pense que le probleme vien de la syntaxe de "='" & Chemin & "\[" & NomFic & "]" & Onglet & "'!"
il y a des truc a mettre a la suite mais je trouve pa koi!
Merci kan mm,
Jsui tjr en galerr, alor si vous avez une soluce, hesitez po!!!!
Tu peux utiliser des formules de liaison afin d'extraire les données duclasseur:
Ouvre un classeur vierge
Dans la cellule A1, saisit la formule ci dessous, en adaptant:
Le chemin du classeur
Le nom du classeur
Le nom de la feuille qui contient les informations à récupérer.
='C:\Documents and Settings\michel\[monClasseur.xls]Feuil1'!A1
Le contenu de la cellule A1 de 'monClasseur.xls' va s'afficher dans la cellule A1 du nouveau classeur.
Ensuite, utilise les poignées de recopie pour étirer la formule sur les autres cellules.
Sinon, voici une macro qui permet de se connecter à un classeur afin d'extraire le contenu de la feuille nommée "Feuil1".
Necessite d'activer la référence Microsoft ActiveX Data Objects x.x Library
Code:
Sub RequeteClasseurFerme()
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 = "C:\monClasseurBase.xls"
'Nom de la feuille dans le classeur fermé
NomFeuille = "Feuil1"
Set Cn = New ADODB.Connection
'--- Connection ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule A2
Range("A2").CopyFromRecordset Rst
'--- Fermeture connection ---
Cn.Close
Set Cn = Nothing
End Sub
Ajoute le paramètre HDR=NO si vous souhaitez également récupérer le contenu de la première ligne. Celle ci est considérée comme un entête (ou Champ), par défaut. ";Extended Properties=""Excel 8.0;HDR=NO"""
Etant donné que la première ligne est considérée comme un entête, il est aussi possible de boucler sur les noms de champs afin d'en extraire le contenu:
Code:
Dim i As Integer
'
'
'...
'
'Définit la requête.
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'--- Boucle sur les entêtes pour récupérer les noms ---
For i = 0 To Rst.Fields.Count - 1
Cells(1, i + 1) = Rst.Fields(i).Name
Next i
'------------------------------------------------------
'Ecrit le résultat de la requête dans la cellule A2
Range("A2").CopyFromRecordset Rst
'
'...
'
Salut a tous!
Merci michel pour ta reponse tres detaillé!!
Ta macro utilisant la référence Microsoft ActiveX Data Objects x.x Library
est un peu trop evolué pour moi, jvé utiliser ta premiere idée, jpense fair comme ca:
Code:
For Lign = 1 To 10
For Col = 1 To 10
Cells(Lign, Col) = "='" & Chemin & "\[" & LeFichier & "]" & LaFeuille & "'!R" & Lign & "C" & Col
Next Col
Next Lign
Ca marche mais ca recupere que les valeur, ya pa moyen de recuperer plus de truc,genre la police, la couleur du fond et aussi tres important Les Formules!!!
Si vous avez des idées, je suis tout ouies!
Merci Pour Tout!
Bne Journé
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.