Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement
si elle
est executée de la Feuil1 et me donne un message d'erreur si je l'execute de
la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement.
Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1
'avec condition et renvoie le nom de la colonne dans un autre tableau de la
Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3
Set c = Worksheets("Feuil2").Range("L2")
Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight))
For Each cell In TdR
If cell.Value = c.Value Then
n = n + 1
Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value
End If
Next cell
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
vraisemeblablement parce qu'il manque un point (.) devant le l'expression Range("B" & Fin).End(xlToRight) contenue dans la formule Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
bonjour,
vraisemeblablement parce qu'il manque un point (.) devant le
l'expression Range("B" &
Fin).End(xlToRight) contenue dans la formule
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé
implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de
problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement
si elle
est executée de la Feuil1 et me donne un message d'erreur si je l'execute de
la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement.
Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1
'avec condition et renvoie le nom de la colonne dans un autre tableau de la
Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3
Set c = Worksheets("Feuil2").Range("L2")
Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight))
For Each cell In TdR
If cell.Value = c.Value Then
n = n + 1
Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value
End If
Next cell
End Sub
vraisemeblablement parce qu'il manque un point (.) devant le l'expression Range("B" & Fin).End(xlToRight) contenue dans la formule Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Did
Bonjour anonymousA Merci beaucoup, j'ai modifié le code pour Set TdR = Worksheets("Feuil1").Range("B" & Fin, Worsheets("Feuil1").Range("B" & Fin).End(xlToRight)). et ça fonctionne sans probleme.
Tres cdlt. Did. "anonymousA" a écrit dans le message de news: 4287217a$0$26063$
bonjour,
vraisemeblablement parce qu'il manque un point (.) devant le l'expression Range("B" & Fin).End(xlToRight) contenue dans la formule Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Bonjour anonymousA
Merci beaucoup, j'ai modifié le code pour
Set TdR = Worksheets("Feuil1").Range("B" & Fin,
Worsheets("Feuil1").Range("B" & Fin).End(xlToRight)).
et ça fonctionne sans probleme.
Tres cdlt.
Did.
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4287217a$0$26063$7a628cd7@news.club-internet.fr...
bonjour,
vraisemeblablement parce qu'il manque un point (.) devant le l'expression
Range("B" &
Fin).End(xlToRight) contenue dans la formule
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé
implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de
problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne
correctement si elle
est executée de la Feuil1 et me donne un message d'erreur si je l'execute
de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement.
Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1
'avec condition et renvoie le nom de la colonne dans un autre tableau de
la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3
Set c = Worksheets("Feuil2").Range("L2")
Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight))
For Each cell In TdR
If cell.Value = c.Value Then
n = n + 1
Worksheets("Feuil2").Cells(n, 12).Value =
cell.End(xlUp).Value
End If
Next cell
End Sub
Bonjour anonymousA Merci beaucoup, j'ai modifié le code pour Set TdR = Worksheets("Feuil1").Range("B" & Fin, Worsheets("Feuil1").Range("B" & Fin).End(xlToRight)). et ça fonctionne sans probleme.
Tres cdlt. Did. "anonymousA" a écrit dans le message de news: 4287217a$0$26063$
bonjour,
vraisemeblablement parce qu'il manque un point (.) devant le l'expression Range("B" & Fin).End(xlToRight) contenue dans la formule Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight)). En effet dans ces conditions ce rage est référencé implicitement à la feuille active . Donc quand tu es sur Feuil1 pas de problème . Mais quand tu es sur Feuil2, c'est Feuil2 la feuille implicite.
A+
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Patrick Catarsi
Le 15/05/05 11:10, dans #, « Did » a écrit :
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en feuille 1 et qui oblige à etre en feuille 1 donc Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2"). Select ,tu dois avoir résolu ton problème. Patrick
Le 15/05/05 11:10, dans #S6a23SWFHA.3188@TK2MSFTNGP09.phx.gbl, « Did »
<dicanivet@wanadoo.fr> a écrit :
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement
si elle
est executée de la Feuil1 et me donne un message d'erreur si je l'execute de
la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement.
Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1
'avec condition et renvoie le nom de la colonne dans un autre tableau de la
Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3
Set c = Worksheets("Feuil2").Range("L2")
Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight))
For Each cell In TdR
If cell.Value = c.Value Then
n = n + 1
Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value
End If
Next cell
End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en
feuille 1 et qui oblige à etre en feuille 1 donc
Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite
Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2").
Select ,tu dois avoir résolu ton problème.
Patrick
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en feuille 1 et qui oblige à etre en feuille 1 donc Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2"). Select ,tu dois avoir résolu ton problème. Patrick
Did
Bonjour Patrick
En effet, j'ai solutionné mon problème en identifiant un range qui se trouve dans la feuille1. Merci de tes conseils.
Cdlt. Did.
"Patrick Catarsi" a écrit dans le message de news: BEAD142D.6D8C%
Le 15/05/05 11:10, dans #, « Did »
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en feuille 1 et qui oblige à etre en feuille 1 donc Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2"). Select ,tu dois avoir résolu ton problème. Patrick
Bonjour Patrick
En effet, j'ai solutionné mon problème en identifiant un range qui se trouve
dans la feuille1.
Merci de tes conseils.
Cdlt.
Did.
"Patrick Catarsi" <patrick.catarsi@wanadoo.fr> a écrit dans le message de
news: BEAD142D.6D8C%patrick.catarsi@wanadoo.fr...
Le 15/05/05 11:10, dans #S6a23SWFHA.3188@TK2MSFTNGP09.phx.gbl, « Did »
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne
correctement
si elle
est executée de la Feuil1 et me donne un message d'erreur si je l'execute
de
la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement.
Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1
'avec condition et renvoie le nom de la colonne dans un autre tableau de
la
Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3
Set c = Worksheets("Feuil2").Range("L2")
Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row
Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" &
Fin).End(xlToRight))
For Each cell In TdR
If cell.Value = c.Value Then
n = n + 1
Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value
End If
Next cell
End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en
feuille 1 et qui oblige à etre en feuille 1 donc
Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite
Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2").
Select ,tu dois avoir résolu ton problème.
Patrick
En effet, j'ai solutionné mon problème en identifiant un range qui se trouve dans la feuille1. Merci de tes conseils.
Cdlt. Did.
"Patrick Catarsi" a écrit dans le message de news: BEAD142D.6D8C%
Le 15/05/05 11:10, dans #, « Did »
Bonjour à Tous
Quelqu'un peut-il m'expliquer, pourquoi cette macro fonctionne correctement si elle est executée de la Feuil1 et me donne un message d'erreur si je l'execute de la Feuil2.
Je souhaiterai l'executer de la Feuil2.
Merci de votre aide et de vos explications
Cordialement. Didier.
Sub RechercheValeur() 'Recherche une valeur dans un tableau de la Feuil1 'avec condition et renvoie le nom de la colonne dans un autre tableau de la Feuil2
Dim c As Range, cell As Range, TdR As Range
n = 3 Set c = Worksheets("Feuil2").Range("L2") Worksheets("Feuil2").Range("L4:L23").ClearContents
Fin = Worksheets("Feuil1").Range("A1").End(xlDown).Row Set TdR = Worksheets("Feuil1").Range("B" & Fin, Range("B" & Fin).End(xlToRight))
For Each cell In TdR If cell.Value = c.Value Then n = n + 1 Worksheets("Feuil2").Cells(n, 12).Value = cell.End(xlUp).Value End If Next cell End Sub
Slt
Je pense que c'est parce que tu lui demandes une action qui sélectionne en feuille 1 et qui oblige à etre en feuille 1 donc Tu peut démarrer ta macro en feuille 2 mais rajouter ensuite Un code Worksheets("feuil1").select, à la fin un worksheets("feuil2"). Select ,tu dois avoir résolu ton problème. Patrick