Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 10h45   #1
Invité régulier
 
Date d'inscription: décembre 2003
Messages: 18
Par défaut Parcourir une feuille d'un autre classeur

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:
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
    Set rPlageCell = shCible.Range(Cells(lSource, 1), Cells(lSource, 3))
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
Fichiers attachés
Type de fichier : xls ClasseurSource.xls (38,5 Ko, 1 affichages)
Type de fichier : xls ClasseurCommande.xls (16,5 Ko, 1 affichages)

Dernière modification par jpcheck ; 04/02/2010 à 11h00. Motif: on privilegie les prefixes pour les version Excel :)
did85 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 11h49   #2
Invité régulier
 
Date d'inscription: décembre 2003
Messages: 18
Par défaut

J'ai trouvé, il faut ajouter dans la ligne en rouge :

Code :
Set rPlageCell = shCible.Range(shCible.Cells(lSource, 1), shCible.Cells(lSource, 3))
Merci
did85 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 11h55   #3
Membre Expert
 
Avatar de Fvandermeulen
 
Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
Par défaut

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))
A+

Edit: Post inutile, désolé j'avais pas rafraichi...
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 03h51.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.