XL 2010 erreur incompatibilité de type

dev_co

XLDnaute Occasionnel
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
 

Fichiers joints

sylvanu

XLDnaute Barbatruc
Supporter XLD
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
 

dev_co

XLDnaute Occasionnel
Eh oui !! merci , mais est ce parce que DIM ou SET ? car j'ai supprimé le Dim est encore pareil si je laisse workbooks(ficO)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

dev_co

XLDnaute Occasionnel
Bonjour ; @sylvanu
En fouinant j'ai trouvé , il fallait juste faire :
With Workbooks(wbMyWb.Name).Worksheets(1)
donc ajouter .name à la variable
 

dev_co

XLDnaute Occasionnel
Ou faire simplement l'ex du post #2
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 ?
 

Dranreb

XLDnaute Barbatruc
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 !
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas