Récupération de certaines colonnes dans un autre classeur

Résolu/Fermé
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015 - 15 juin 2015 à 09:49
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015 - 15 juin 2015 à 10:28
Bonjour,

Je suis toute nouvelle sur ce forum, et également en VBA. je fais donc appel à vous pour une petite aide si possible.

J'ai le code suivant :

Private Sub ListBox1_Click()

Application.Workbooks("Copie de Classeur1.xlsx").Worksheets (1)

'On sélectionne la feuille 1 du fichier actif
Worksheets("Feuil1").Select
'On l'active pour effectuer les modifications nécessaires
Worksheets("Feuil1").Activate

Dim tableau(655) As String
Dim NumLig As Integer
'On définit une variable temporelle comme un entier
Dim temp As Integer

'On lui assigne la valeur de la plage de cellule de la colonne B
temp = Range("B" & Rows.Count).End(xlUp).Row

For NumLig = 1 To temp
'On affecte au tableau virtuel créé la valeur de la cellule dans le tableau initial
tableau(NumLig - 1) = Range("B" & NumLig).Value
Next NumLig

Application.Workbooks("TableauVBA.xlsx").Worksheets (1)

'On sélectionne la deuxième feuille de calcul et on l'active
Worksheets("Feuil2").Select
Worksheets("Feuil2").Activate

For NumLig = 1 To temp
'On assigne à chaque cellule de la nouvelle feuille la valeur correspondante
Range("A" & NumLig).Value = tableau(NumLig - 1)
Next NumLig

End Sub


Je voudrais récupérer certaines colonnes de "Copie de Classeur1", et les mettre dans "TableauVBA". Cependant le code me renvoit une erreur : "Utilisation incorrecte de la propriété."
Il me montre également que l'erreur est sur la ligne Application.Workbooks...

Après avoir cherché sur internet, je ne comprends toujours pas comment corriger mon erreur. Pourriez vous m'aider ?
Merci

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 juin 2015 à 10:22
Bonjour
Bienvenue à bord du Titanic! :o)

pas besoin de l'objet application pour un Workbooks

ton code (non testé donc...) sans boucle
Option Explicit
'---------
Private Sub ListBox1_Click()
Dim Temp As Integer, Tableau

With Workbooks("Copie de Classeur1.xlsx").Worksheets(1)
'On lui assigne la valeur de la plage de cellule de la colonne B
Temp = .Range("B" & Rows.Count).End(xlUp).Row
Tableau = Application.Transpose(.Range("B1:B" & Temp))
End With

With Workbooks("TableauVBA.xlsx").Worksheets(2)
.Range("A1").Resize(Temp, 1) = Application.Transpose(Tableau)
.Activate
End With

End Sub

0
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
15 juin 2015 à 10:28
Merci beaucoup beaucoup !
0