Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
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
isabelle
bonjour Eric,
modifie cette ligne :
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole)
par celle ci
Set Cible = Worksheets(1).Range(Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole).address)
isabelle
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
bonjour Eric,
modifie cette ligne :
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole)
par celle ci
Set Cible = Worksheets(1).Range(Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole).address)
isabelle
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole)
par celle ci
Set Cible = Worksheets(1).Range(Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole).address)
isabelle
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
anonymousA
bonjour,
extrait de l'aide d'excel
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
bonjour,
extrait de l'aide d'excel
Find recherche une information spécifique dans une plage et renvoie un
objet Range qui représente la première cellule où cette information
apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est
pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que
Find renvoie Nothing alors cible recoit nothing. Dans ces conditions,
cible.offset n'a pas de sens.
Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence
Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0,
36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
anonymousA
ah , et effectivement comme le fait bien remarquer Isabelle, ton cible est défini à nothing dans ta boucle en tete de boucle et si jamais tu as une cellule appartenant à B3:Y3 qui est égale à="" alors ton cible reste à nothing et du coup ce que je t'écrivais préalablement arrive. Pour t'en sortir,
on error resume next For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible=nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlPart) End If
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
ah , et effectivement comme le fait bien remarquer Isabelle, ton cible
est défini à nothing dans ta boucle en tete de boucle et si jamais tu as
une cellule appartenant à B3:Y3 qui est égale à="" alors ton cible reste
à nothing et du coup ce que je t'écrivais préalablement arrive.
Pour t'en sortir,
on error resume next
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible=nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlPart)
End If
Find recherche une information spécifique dans une plage et renvoie un
objet Range qui représente la première cellule où cette information
apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est
pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que
Find renvoie Nothing alors cible recoit nothing. Dans ces conditions,
cible.offset n'a pas de sens.
Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence
Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0,
36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur
contient une clé vers une ligne de la feuille 1. je cherche une
cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage
indirect) correspondant à cette clé. A partir de celle-ci (par
décalage) je fais un copier/collage spécial vers une zone de la
feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77")
ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne
feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
ah , et effectivement comme le fait bien remarquer Isabelle, ton cible est défini à nothing dans ta boucle en tete de boucle et si jamais tu as une cellule appartenant à B3:Y3 qui est égale à="" alors ton cible reste à nothing et du coup ce que je t'écrivais préalablement arrive. Pour t'en sortir,
on error resume next For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible=nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlPart) End If
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
Eric
merci pour tout !
eric
bonjour,
extrait de l'aide d'excel
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...
Merci d'avance
merci pour tout !
eric
bonjour,
extrait de l'aide d'excel
Find recherche une information spécifique dans une plage et renvoie un
objet Range qui représente la première cellule où cette information
apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est
pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que
Find renvoie Nothing alors cible recoit nothing. Dans ces conditions,
cible.offset n'a pas de sens.
Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence
Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0,
36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient
une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage
B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à
cette clé. A partir de celle-ci (par décalage) je fais un copier/collage
spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click()
Dim Cell, Cible As Range
Dim Intitulé As String
For Each Cell In Worksheets(2).Range("B3:Y3")
Intitulé = Cell.Value
Set Cible = Nothing
If Intitulé <> "" Then
Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé,
LookAt:=xlWhole)
End If
Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy
Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationAdd
Next
End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne
soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une
confusion dans l'adressage des feuilles/plages ...
Find recherche une information spécifique dans une plage et renvoie un objet Range qui représente la première cellule où cette information apparaît. Cette méthode renvoie la valeur Nothing si l'information n'est pas trouvée. N'affecte ni la sélection ni la cellule active.
Donc si cible est défini comme range , ce qu'il est visiblement , et que Find renvoie Nothing alors cible recoit nothing. Dans ces conditions, cible.offset n'a pas de sens. Si il y a quelque chose qui doit planter, ce n'est pas en l'occurrence Find mais Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy car offset de nothing pose problème.
A+
Je ne parviens pas à comprendre pourquoi mon code plante.
Chaque cellule de la plage B3:Y3 de la feuille 2 de mon classeur contient une clé vers une ligne de la feuille 1. je cherche une cellule dans une plage B3:B77 de ma feuille 1 (une espèce d'adressage indirect) correspondant à cette clé. A partir de celle-ci (par décalage) je fais un copier/collage spécial vers une zone de la feuille 2.
Private Sub DéclencheMaJCAA_Click() Dim Cell, Cible As Range Dim Intitulé As String For Each Cell In Worksheets(2).Range("B3:Y3") Intitulé = Cell.Value Set Cible = Nothing If Intitulé <> "" Then Set Cible = Worksheets(1).Range("b3:b77").Find(Intitulé, LookAt:=xlWhole) End If Worksheets(1).Range(Cible.Offset(0, 21), Cible.Offset(0, 36)).Copy Worksheets(2).Range("AD3").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlPasteSpecialOperationAdd Next End Sub
Seulement, La méthode Find plante car il semble que la range("B3:B77") ne soit pas reconnue.
Enfin... des fois ça marche parce VBA semble être calé sur la bonne feuille !
En gros, ce qui m'arrangerait, c'est qu'on me dise là où il y a une confusion dans l'adressage des feuilles/plages ...