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

utiliser le nom réel de la feuille

18 réponses
Avatar
Pierre CFI [mvp]
bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que je bosse un peu pour gagner un peu
de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom objet d'une feuille, plutot qu'au nom
"humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:\ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub


--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

10 réponses

1 2
Avatar
isabelle
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que je bosse un peu pour gagner un peu
de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom objet d'une feuille, plutot qu'au nom
"humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub




Avatar
Pierre CFI [mvp]
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub





Avatar
isabelle
bonjour Pierre,

essai comme ça,

With Wdata
Set Fdata = Feuil4
end With

isabelle

bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next





Avatar
Pierre CFI [mvp]
non, pas mieux, de toutes façons, avec with, çà revient au méme

bizarre çà, j'ai déjà utilisé le nom logique, mais comment ?????

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

essai comme ça,

With Wdata
Set Fdata = Feuil4
end With

isabelle

bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next






Avatar
isabelle
oui, c'est vraiment currieux,

il y a cette syntaxe qui fonctionne pour récupérer un nom de feuille :

x = Workbooks("Classeur1.xls").Sheets(1).Name

isabelle


non, pas mieux, de toutes façons, avec with, çà revient au méme

bizarre çà, j'ai déjà utilisé le nom logique, mais comment ?????



Avatar
michdenis
Pour faire référence à une feuille "objet" d'un autre classer
voici un exemple simple à adapter à ta situation :

Exemple : dans le classeur A, nous voulons faire référence
à un objet feuille dont la propriété "Name" est Feuil1
et qui est dans le classeur2.xls

'--------------------------------
Sub Test()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Set Sh = Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents("Feuil1").Properties("Index")).Name)
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub
'--------------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:
%
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que
je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom
objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub





Avatar
Pierre CFI [mvp]
merci michdenisje vais essayer çà demain, je pensais qu'il y avait une synthaxe plus simple
je préfere utiliser le nom systéme, car des fois l'utilisateur change le nom de l'onglet, et bien sur le développeur vend de la
"daube"

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

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

Pour faire référence à une feuille "objet" d'un autre classer
voici un exemple simple à adapter à ta situation :

Exemple : dans le classeur A, nous voulons faire référence
à un objet feuille dont la propriété "Name" est Feuil1
et qui est dans le classeur2.xls

'--------------------------------
Sub Test()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Set Sh = Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents("Feuil1").Properties("Index")).Name)
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub
'--------------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:
%
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que
je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom
objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub










Avatar
michdenis
Il y a toujours moyen de simplifier la saisie en utilisant une petite procédure
comme ceci si tu dois répéter la chose à plusieurs reprise...

Il ne reste plus dans cette ligne de code "Var_Feuil Wk, "Feuil1", Sh"
de la procédure qu'à renseigner le nom de l'objet "Feuil1"

'-------------------------------
Sub Test1()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Var_Feuil Wk, "Feuil1", Sh
Set Sh = Sh
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub

'-----------------------------

Sub Var_Feuil(Wk As Workbook, F As String, Optional Sh As Worksheet)

Set Sh = Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents(F).Properties("Index")).Name)

End Sub
'-----------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:

merci michdenisje vais essayer çà demain, je pensais qu'il y avait une synthaxe plus simple
je préfere utiliser le nom systéme, car des fois l'utilisateur change le nom de l'onglet, et bien
sur le développeur vend de la
"daube"

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

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


Pour faire référence à une feuille "objet" d'un autre classer
voici un exemple simple à adapter à ta situation :

Exemple : dans le classeur A, nous voulons faire référence
à un objet feuille dont la propriété "Name" est Feuil1
et qui est dans le classeur2.xls

'--------------------------------
Sub Test()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Set Sh =
Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents("Feuil1").Properties("Index")).Name)
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub
'--------------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:
%
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que
je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom
objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub










Avatar
Pierre CFI [mvp]
re
à force de tatonnenements j'ai trouvé
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")

Debug.Print w.Worksheets(Feuil1.name).[a1]


--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

"michdenis" a écrit dans le message de news:
Il y a toujours moyen de simplifier la saisie en utilisant une petite procédure
comme ceci si tu dois répéter la chose à plusieurs reprise...

Il ne reste plus dans cette ligne de code "Var_Feuil Wk, "Feuil1", Sh"
de la procédure qu'à renseigner le nom de l'objet "Feuil1"

'-------------------------------
Sub Test1()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Var_Feuil Wk, "Feuil1", Sh
Set Sh = Sh
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub

'-----------------------------

Sub Var_Feuil(Wk As Workbook, F As String, Optional Sh As Worksheet)

Set Sh = Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents(F).Properties("Index")).Name)

End Sub
'-----------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:

merci michdenisje vais essayer çà demain, je pensais qu'il y avait une synthaxe plus simple
je préfere utiliser le nom systéme, car des fois l'utilisateur change le nom de l'onglet, et bien
sur le développeur vend de la
"daube"

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

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


Pour faire référence à une feuille "objet" d'un autre classer
voici un exemple simple à adapter à ta situation :

Exemple : dans le classeur A, nous voulons faire référence
à un objet feuille dont la propriété "Name" est Feuil1
et qui est dans le classeur2.xls

'--------------------------------
Sub Test()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Set Sh >> Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents("Feuil1").Properties("Index")).Name)
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub
'--------------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:
%
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que
je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom
objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub
















Avatar
michdenis
Je dois avoir une version spéciale de la version excel 2003,
car j'obtiens une erreur de type 9 (L'indice n'appartient pas à la sélection)
au moment d'exécuter le code !


"Pierre CFI [mvp]" a écrit dans le message de news:

re
à force de tatonnenements j'ai trouvé
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")

Debug.Print w.Worksheets(Feuil1.name).[a1]


--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

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

Il y a toujours moyen de simplifier la saisie en utilisant une petite procédure
comme ceci si tu dois répéter la chose à plusieurs reprise...

Il ne reste plus dans cette ligne de code "Var_Feuil Wk, "Feuil1", Sh"
de la procédure qu'à renseigner le nom de l'objet "Feuil1"

'-------------------------------
Sub Test1()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Var_Feuil Wk, "Feuil1", Sh
Set Sh = Sh
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub

'-----------------------------

Sub Var_Feuil(Wk As Workbook, F As String, Optional Sh As Worksheet)

Set Sh = Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents(F).Properties("Index")).Name)

End Sub
'-----------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:

merci michdenisje vais essayer çà demain, je pensais qu'il y avait une synthaxe plus simple
je préfere utiliser le nom systéme, car des fois l'utilisateur change le nom de l'onglet, et bien
sur le développeur vend de la
"daube"

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

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


Pour faire référence à une feuille "objet" d'un autre classer
voici un exemple simple à adapter à ta situation :

Exemple : dans le classeur A, nous voulons faire référence
à un objet feuille dont la propriété "Name" est Feuil1
et qui est dans le classeur2.xls

'--------------------------------
Sub Test()

Dim Wk As Workbook
Dim Sh As Worksheet

Set Wk = Workbooks("classeur2.xls")
Set Sh >> Wk.Worksheets(Wk.Worksheets(Wk.VBProject.VBComponents("Feuil1").Properties("Index")).Name)
MsgBox Sh.Parent.Name
MsgBox Sh.Range("A1")

End Sub
'--------------------------------




"Pierre CFI [mvp]" a écrit dans le message de news:
%
bonjour isabelle
çà coince, voici mon code
Dim i As Integer
Dim Rcode As Range

Dim Wdata As Workbook
Dim Fdata As Worksheet
'On Error Resume Next
Set Wdata = Workbooks("basedata.xls")
If Wdata Is Nothing Then
Set Wdata = Workbooks.Open([chemin], , True)
End If
Windows(Wdata.Name).Visible = False
'*************** ICI
Set Fdata = Wdata.Feuil4
'*************************** Feuil4 est le nom logique
Set Rcode = Fdata.Range("id_produit").Find(qui)
If Rcode Is Nothing Then
MsgBox "Code produit non trouvé"
Err = 0
For i = 1 To 2
qui.Offset(0, i) = Null
Next

Exit Sub
End If
For i = 1 To 2
qui.Offset(0, i) = Rcode.Offset(0, i)
Next



--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info

"isabelle" a écrit dans le message de news:
bonjour Pierre,

With w
Debug.Print Feuil1.[a1]
End With

isabelle


bonjour
bon, aprés 1 1/2 mois en vendée et 15 jours sur les flots bleus de la méditérranée, il faut que
je bosse un peu pour gagner un
peu de sous et méme beaucoup si je veux rafraichir JPS :o)

je sais que AV est un pro des [A1] plutot que range("a1"), je voudrais faire référence au nom
objet d'une feuille, plutot qu'au
nom "humain", donc Feuil1 plutot que "Bon de commande"
Sub es1()
Dim w As Workbook
Set w = Workbooks.open("c:ddddd.xls")
'ici comment on fait pour lire
Debug.Print w.[Feuil1].[a1]
End Sub
















1 2