Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
Titi
Bonjour =E0 tous,

J'aimerais comprendre une fois pour toute. Les plage nomm=E9es !?

Voici mon bout de code :

Option Explicit
Public MonClasseur As Workbook, MaFeuille As Worksheet, MaPlage As
Range

Sub test()

Set MonClasseur =3D Workbooks.Open("c:\My documents\Test.xls")
Set MaFeuille =3D MonClasseur.Worksheets("Feuil1")
' Set MaPlage =3D MaFeuille.Range("A1:A10") --> style A1 pas d'erreur !
Set MaPlage =3D MaFeuille.Range(Cells(1, 1), Cells(10, 1)) --> style R1C1
erreur sur la methode range !

MaPlage.Select

' Set MaPlage =3D Nothing
' Set MaFeuille =3D Nothing
' MonClasseur.Close
' Set MonClasseur =3D Nothing

End Sub


D=E9cidemment j'ai encore beaucoup a apprendre !

Merci =E0 ceux qui pourront m'=E9clairer !
Salutations,
Titi.

3 réponses

Avatar
patrick
Salut TITI

j'ai essayé avec ça et pas de problème

Sub tst()
Set MonClasseur = ActiveWorkbook
Set MaFeuille = MonClasseur.Worksheets("Feuil1")
' Set MaPlage = MaFeuille.Range("A1:A10") --> style A1 pas d'erreur !
Set MaPlage = MaFeuille.Range(Cells(1, 1), Cells(10, 1))
MaPlage.Select
End Sub

@+
patrick

"Titi" a écrit dans le message news:

Bonjour à tous,

J'aimerais comprendre une fois pour toute. Les plage nommées !?

Voici mon bout de code :

Option Explicit
Public MonClasseur As Workbook, MaFeuille As Worksheet, MaPlage As
Range

Sub test()

Set MonClasseur = Workbooks.Open("c:My documentsTest.xls")
Set MaFeuille = MonClasseur.Worksheets("Feuil1")
' Set MaPlage = MaFeuille.Range("A1:A10") --> style A1 pas d'erreur !
Set MaPlage = MaFeuille.Range(Cells(1, 1), Cells(10, 1)) --> style R1C1
erreur sur la methode range !

MaPlage.Select

' Set MaPlage = Nothing
' Set MaFeuille = Nothing
' MonClasseur.Close
' Set MonClasseur = Nothing

End Sub


Décidemment j'ai encore beaucoup a apprendre !

Merci à ceux qui pourront m'éclairer !
Salutations,
Titi.
Avatar
michdenis
Bonjour Titi,

Tu devrais préconiser ce type de syntaxe dans ton code.
Nonobstant où ton code est inscrit (module feuille ou module standard),
nonobstant la feuille à laquelle ton code fait référence soit la feuille active
ou non, tu n'auras jamais de surprise...
'-----------------------
With MaFeuille
Set MaPlage = .Range(.Cells(1, 1), .Cells(10, 1))
End With
'-----------------------
P.S. Observe les points... il y en a un devant Range et devant
les 2 Cells....signifiant qu'ils appartiennent à la feuille citée avec le With MaFeuille

Évidemment...lorsque tu auras compris plusieurs subtilités quant à la façon d'écrire
la même ligne de code selon les situations... tu pourras abréger un peu la saisie...
mais l'avantage de la méthode énoncée est qu'elle sera toujours bonne et efficace.



Salutations!







"Titi" a écrit dans le message de news:
Bonjour à tous,

J'aimerais comprendre une fois pour toute. Les plage nommées !?

Voici mon bout de code :

Option Explicit
Public MonClasseur As Workbook, MaFeuille As Worksheet, MaPlage As
Range

Sub test()

Set MonClasseur = Workbooks.Open("c:My documentsTest.xls")
Set MaFeuille = MonClasseur.Worksheets("Feuil1")
' Set MaPlage = MaFeuille.Range("A1:A10") --> style A1 pas d'erreur !
Set MaPlage = MaFeuille.Range(Cells(1, 1), Cells(10, 1)) --> style R1C1
erreur sur la methode range !

MaPlage.Select

' Set MaPlage = Nothing
' Set MaFeuille = Nothing
' MonClasseur.Close
' Set MonClasseur = Nothing

End Sub


Décidemment j'ai encore beaucoup a apprendre !

Merci à ceux qui pourront m'éclairer !
Salutations,
Titi.
Avatar
patrick
Merci cette remarque est aussi valable
pour moi

@+

patrick

"michdenis" a écrit dans le message news:

Bonjour Titi,

Tu devrais préconiser ce type de syntaxe dans ton code.
Nonobstant où ton code est inscrit (module feuille ou module standard),
nonobstant la feuille à laquelle ton code fait référence soit la feuille
active

ou non, tu n'auras jamais de surprise...
'-----------------------
With MaFeuille
Set MaPlage = .Range(.Cells(1, 1), .Cells(10, 1))
End With
'-----------------------
P.S. Observe les points... il y en a un devant Range et devant
les 2 Cells....signifiant qu'ils appartiennent à la feuille citée avec le
With MaFeuille


Évidemment...lorsque tu auras compris plusieurs subtilités quant à la
façon d'écrire

la même ligne de code selon les situations... tu pourras abréger un peu la
saisie...

mais l'avantage de la méthode énoncée est qu'elle sera toujours bonne et
efficace.




Salutations!







"Titi" a écrit dans le message de news:


Bonjour à tous,

J'aimerais comprendre une fois pour toute. Les plage nommées !?

Voici mon bout de code :

Option Explicit
Public MonClasseur As Workbook, MaFeuille As Worksheet, MaPlage As
Range

Sub test()

Set MonClasseur = Workbooks.Open("c:My documentsTest.xls")
Set MaFeuille = MonClasseur.Worksheets("Feuil1")
' Set MaPlage = MaFeuille.Range("A1:A10") --> style A1 pas d'erreur !
Set MaPlage = MaFeuille.Range(Cells(1, 1), Cells(10, 1)) --> style R1C1
erreur sur la methode range !

MaPlage.Select

' Set MaPlage = Nothing
' Set MaFeuille = Nothing
' MonClasseur.Close
' Set MonClasseur = Nothing

End Sub


Décidemment j'ai encore beaucoup a apprendre !

Merci à ceux qui pourront m'éclairer !
Salutations,
Titi.