Bonjour
Je teste la copie de colonne d'un autre classeur pour coller dans le fichier de base
Donc j'ouvre un fichier excel je veux ensuite copier la col. A , mais là j'ai erreur incompatibilité de type ( er 13)
j'ouvre un .xlsx .. je vois pas
Bonsoir dev_co,
ficO est déjà un Workbooks, donc Workbooks(ficO) est une redondance qu'il n'aime pas.
VB:
Sub copie()
Dim fic As Variant, ficO As Workbook
fic = Application.GetOpenFilename()
Set ficO = Workbooks.Open(fic)
ficO.Worksheets(1).Range("A:A").Copy
ThisWorkbook.Worksheets(1).Range("A1").PasteSpecial (xlValue)
End Sub
VBA est très permissif. Vous n'êtes pas obligé de déclarer vos variables. ( très mauvaise habitude )
Si elles ne sont pas déclarées, VBA les type en fonction du contexte.
Oui , j'avais dis Ok , mais ce que tu as écrit est incorrect !! puisque j'ai pu mettre l'instruction WORKBOOKS et que apparemment il aime bien !!!!!!!! en lui précisant son nom
ou alors ficO est un workbooks mais ficO.name n'en est pas un ?
Bonjour.
Soyons un peu plus rigoureux.
Workbook est un type d'objet destiné à représenter un classeur ouvert.
Workbooks est une collection de tous les objets Workbook, et une propriété de Application.
Name est une propriété String de beaucoup d'objets Excel. Elle est généralement sa clé dans une collection à laquelle il appartient, à de très rares exceptions.
La propriété Name de l'objet Workbook est le nom du classeur qu'il représente.
Workbooks(wbMyWb.Name) est idiot: pourquoi rechercher dans la collection Workbooks un Workbook dont le nom est celui d'un Workbook déjà défini ? C'est forcément la même chose que ce dernier lui même ! En l'occurrence c'est la même chose que wbMyWb tout simplement !