[XL 2003] Comment parcourir une plage de cellules d'une autre feuille

did85

XLDnaute Junior
[Résolu] Comment parcourir une plage de cellules d'une autre feuille

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 :
Erreur d'execution 1404 : "La méthode 'Range' de l'objet '_worksheet' a échoué

je ne trouve pas mon erreur dans le code suivant :

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
    [COLOR="Red"]Set rPlageCell = shCible.Range(Cells(lSource, 1), Cells(lSource, 3))[/COLOR]
Next lSource
End Sub
En rouge la ligne qui provoque l'erreur, je dois mal me débrouiller avec l'utilisation :
Code:
range(cells(lig, col), cells(lig,col))
Le ligne du dessus en commentaire fonctionne, mais ne me permet pas de lire la plage de cellules dont j'ai besoin par la suite.

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
 

Pièces jointes

  • ClasseurSource.xls
    38.5 KB · Affichages: 69
  • ClasseurCommande.xls
    16.5 KB · Affichages: 82
  • ClasseurSource.xls
    38.5 KB · Affichages: 72
  • ClasseurSource.xls
    38.5 KB · Affichages: 72
Dernière édition:

kjin

XLDnaute Barbatruc
Re : [XL 2003] Comment parcourir une plage de cellules d'une autre feuille

Bonjour,
Dans le module de la feuille
Code:
Option Explicit
Private Sub CmdImport_Click()
Dim vNomFeuille As String, Tablo As Variant
vNomFeuille = ActiveSheet.Name
Tablo = Importation(vNomFeuille)
Range(Cells(3, 1), Cells(UBound(Tablo, 1) + 2, UBound(Tablo, 2))) = Tablo

End Sub
Dans le module1
Code:
Option Explicit
Function Importation(sNomFeuille As String)
Dim wbCible As Workbook, shCible As Worksheet, TabTemp As Variant
Set wbCible = Application.Workbooks.Open(Application.GetOpenFilename)
Set shCible = Workbooks(wbCible.Name).Worksheets(sNomFeuille)
TabTemp = shCible.Range("A3:C" & Range("A65000").End(xlUp).Row)
Importation = TabTemp

End Function
A noter qu'il manque tous les contrôles d'erreurs
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400