|
Publicité | ||||||||||||||||||||||
|
|
#1 | |
|
Invité régulier
![]() Date d'inscription: décembre 2003
Messages: 18
|
Bonjour,
je cherche à lire au fur et à mesure des lignes du haut vers le bas dans une feuille donnée dans un classeur. Je cherche à utiliser une ligne de code sous la forme : <Nom du classeur à lire>.<Feuille du classeur à lire>.<parcourir un range de cellules> J'ai le message d'erreur : Citation:
Code :
Option Explicit
Sub Importation(sNomFeuille As String)
Dim lSource As Long, lDest As Long
Dim WbSource As Workbook, wbCible As Workbook
Dim shCible As Worksheet
Dim rPlageCell As Range
Set WbSource = ThisWorkbook
Set wbCible = Application.Workbooks.Open(Application.GetOpenFilename)
Set shCible = Workbooks(wbCible.Name).Worksheets(sNomFeuille)
For lSource = 3 To shCible.Range("A56536").End(xlUp).Row
'Set rPlageCell = shCible.Range("A" & lSource) 'Cette ligne fonctionne
Set rPlageCell = shCible.Range(Cells(lSource, 1), Cells(lSource, 3))
Next lSource
End Sub
Code :
range(cells(lig, col), cells(lig,col)) Je vous joins les 2 fichiers que j'ai épuré pour l'exemple. Le fichier classeursource.xls est à ouvrir en 1er, puis un clic sur le bouton Importation dans un des onglets demande l'ouverture du second fichier : classeurcommande.xls Merci de votre aide Did85 Dernière modification par jpcheck ; 04/02/2010 à 11h00. Motif: on privilegie les prefixes pour les version Excel :) |
|
|
|
|
|
|
#2 |
|
Invité régulier
![]() Date d'inscription: décembre 2003
Messages: 18
|
J'ai trouvé, il faut ajouter dans la ligne en rouge :
Code :
Set rPlageCell = shCible.Range(shCible.Cells(lSource, 1), shCible.Cells(lSource, 3)) |
|
|
|
|
|
#3 |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
Salut,
Quand tu utilise Range(Cells(x,y),cells(x,z)) il vaut toujours mieux préciser la feuille sur laquelle la plage doit être récupérée, surtout si tu travaille avec deux fichiers. En fait la fait de préciser avant Range ne suffit pas car il considère que Cells appartient à la feuille active. Ta ligne doit donc s'écrire Code :
Set rPlageCell = shCible.Range(shCible.Cells(lSource, 1), shCible.Cells(lSource, 3)) Edit: Post inutile, désolé j'avais pas rafraichi...
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
![]() |
||
[XL-2003] Parcourir une feuille d'un autre classeur
|
||
| Outils de la discussion | |
|
|