La méthode 'range' de l'objet _worksheet a échoué

Fermé
CoSimon - Modifié par pijaku le 20/12/2013 à 14:01
CoSimon Messages postés 1 Date d'inscription vendredi 20 décembre 2013 Statut Membre Dernière intervention 20 décembre 2013 - 20 déc. 2013 à 15:48
Bonjour,

Lors de l'éxécution du code ci-dessous je rencontre l'erreur suivante : "La méthode 'range' de l'objet _worksheet a échoué" sur la ligne "Set celluleRowRange = .Range("B", .Range("B").End(xlUp))"

J'ai retourné le code dans tous les sens mais sans succès.

Code :
---------
'On split le libellé afin de récupérer la chaîne de caractère source1 à rechercher dans la colonne B
                TabSrcDoubleEntree = Split(PtoutPar(j).Nom, "/")
                ' on récupère la ligne du doc (colonne B) dans laquelle la chaîne source 1 (=TabSrcDoubleEntree(0)) est renseignée
                Set sheet = Workbooks(PFile).Sheets(ParMap(j).Parametrage.SrcFeuille)
                With sheet
                    Set celluleRowRange = .Range("B", .Range("B").End(xlUp))
                    Set celluleFind = celluleRowRange.Find(TabSrcDoubleEntree(0), LookIn:=xlValues, lookat:=xlWhole)
                    celluleRowFind = celluleFind.Row
                End With
                'on initialise la ligne à partir de laquelle on fait la recherche à "c.Row"
                ThisWorkbook.Sheets(PFeuilleDest).Cells(iDest, ParMap(j).Parametrage.DestCol).Value = Workbooks(PFile).Sheets(ParMap(j).Parametrage.SrcFeuille).Cells(celluleRowFind + ParMap(j).Parametrage.SrcPremiereLigne, ParMap(j).Parametrage.SrcCol).Value


=> Est ce que vous connaissez l'origine de mon problème ?

Je vous remercie par avance pour votre aide.
Simon

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 déc. 2013 à 14:14
Bonjour,
.range("B" & .Range("B65000").End(xlup).row)

a mon avis, la ligne d'après posera aussi problème: voir l'aide sur Find...
0
CoSimon Messages postés 1 Date d'inscription vendredi 20 décembre 2013 Statut Membre Dernière intervention 20 décembre 2013
20 déc. 2013 à 15:48
Merci Michel_m.

J'ai contourné mon problème avec le code ci-dessous

TabSrcDoubleEntree = Split(PtoutPar(j).Nom, "/")
Set sheet = Workbooks(PFile).Worksheets(ParMap(j).Parametrage.SrcFeuille)
With sheet.Range("B1:B65536") 'Borne max pour compatibilité excel 2003
' on récupère la ligne dans laquelle la chaîne source 1 (=TabSrcDoubleEntree(0)) est trouvée
Set celluleFind = .Find(TabSrcDoubleEntree(0), LookIn:=xlValues, lookat:=xlWhole)
'
If Not celluleFind Is Nothing Then
celluleRowFind = celluleFind.Row
ThisWorkbook.Sheets(PFeuilleDest).Cells(iDest, ParMap(j).Parametrage.DestCol).Value = Workbooks(PFile).Sheets(ParMap(j).Parametrage.SrcFeuille).Cells(celluleRowFind + ParMap(j).Parametrage.SrcPremiereLigne, ParMap(j).Parametrage.SrcCol).Value
End If
End With
0