OVH Cloud OVH Cloud

Trouver sur une feuille la valeur d'une cellule d'une autre feuille et copier

5 réponses
Avatar
Denys
Bonjour =E0 tous,

Dans un module, j'essaie de construire une macro qui irait chercher sur
la feuille3 l'=E9quivalent de la valeur en cellule B27 de la feuille1
(une date).

Une fois la date trouv=E9e sur la feuille3, je dois copier la valeur
dans les 19 cellules plus bas (Supposons que la date est en C4, je dois
copier les valeurs de C5 jusqu'en C24 et coller les valeurs en J3 de
la feuille1, puis copier les cellules de C25 =E0 C46 et coller les
valeurs en P3 de la feuille1.

Voici o=F9 j'en suis... C'est un peu path=E9tique, Excel ne cherche m=EAme
pas dans la feuille 3 la date qui apparait en cellule B27 de la feuille
2=2E..

Sub ImporterTemps()
On Error Resume Next
Dim c, fistA
Sheet3.Select
Nom =3D Sheet2.Range("B27").Value
With ActiveSheet().Range("$C$4:$BC$4")
Set c =3D .Find(What:=3DNom, After:=3DRange("C3"), LookIn:=3DxlValu=
es)
'If Not c Is Nothing Then
fistA =3D c.Address
Application.GoTo Reference:=3DRange(c.Address)
ActiveCell.Offset(1, 0).Select
ActiveCell.Resize(19, 0).Select
Selection.Copy
Sheet2.Select
Range("J3").Select
Selection.PasteSpecial Paste:=3DxlPasteValues, Operation:=3DxlNone,
SkipBlanks _
:=3DFalse, Transpose:=3DFalse
Range("J3").Select
Sheets("Temps").Select
Application.CutCopyMode =3D False
ActiveCell.Offset(0, 19).Select
ActiveCell.Resize(0, 19).Select
Selection.Copy
Sheets("Stats").Select
Range("P3").Select
Selection.PasteSpecial Paste:=3DxlPasteValues, Operation:=3DxlNone,
SkipBlanks _
:=3DFalse, Transpose:=3DFalse
Range("P3").Select
Sheets("Temps").Select
Range("C5").Select
Application.CutCopyMode =3D False
Sheets("Stats").Select
End With

End Sub

Auriez-vous une piste?

Merci

Denys

5 réponses

Avatar
Denys
Je n'y comprends rien.....

Si je remplace la date en B27 par "Allo" et que je fais de même en
cellule D4 disons de la feuille 3, alors excel trouve la cellule.....
Pourquoi ne recherche-t-il pas le contenu de la cellulle B27 lorsque
celle-ci contient une date?

Merci encore

Denys
Avatar
MichDenis
Bonjour Denys,

Si tu as quelques minutes, tu iras voir cet article sur la fonction Find
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate

Pour faire une histoire courte, si ta plage de cellules où tu recherches
les dates n'émanent pas de formules, utilise ceci :

J'ai remplacé Xlvalues par XlFormulas
Remplace Nom par soit la cellule qui contient la date (avec la référence
à la feuille à laquelle elle appartient)
Set c = .Find(What:=Nom, After:=Range("C3"), LookIn:=xlFormulas)

Est-ce que ça va ?




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

Bonjour à tous,

Dans un module, j'essaie de construire une macro qui irait chercher sur
la feuille3 l'équivalent de la valeur en cellule B27 de la feuille1
(une date).

Une fois la date trouvée sur la feuille3, je dois copier la valeur
dans les 19 cellules plus bas (Supposons que la date est en C4, je dois
copier les valeurs de C5 jusqu'en C24 et coller les valeurs en J3 de
la feuille1, puis copier les cellules de C25 à C46 et coller les
valeurs en P3 de la feuille1.

Voici où j'en suis... C'est un peu pathétique, Excel ne cherche même
pas dans la feuille 3 la date qui apparait en cellule B27 de la feuille
2...

Sub ImporterTemps()
On Error Resume Next
Dim c, fistA
Sheet3.Select
Nom = Sheet2.Range("B27").Value
With ActiveSheet().Range("$C$4:$BC$4")
Set c = .Find(What:=Nom, After:=Range("C3"), LookIn:=xlValues)
'If Not c Is Nothing Then
fistA = c.Address
Application.GoTo Reference:=Range(c.Address)
ActiveCell.Offset(1, 0).Select
ActiveCell.Resize(19, 0).Select
Selection.Copy
Sheet2.Select
Range("J3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Range("J3").Select
Sheets("Temps").Select
Application.CutCopyMode = False
ActiveCell.Offset(0, 19).Select
ActiveCell.Resize(0, 19).Select
Selection.Copy
Sheets("Stats").Select
Range("P3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Range("P3").Select
Sheets("Temps").Select
Range("C5").Select
Application.CutCopyMode = False
Sheets("Stats").Select
End With

End Sub

Auriez-vous une piste?

Merci

Denys
Avatar
Denys
Bonjour Denis,

Excellent article merci bien..... Sauf que j'ai beau changer xlValues
pour xlFormulas, rien n'y fait..... J'ai copié/collé en valeurs les
dates inscrites en C4:BF4 de la feuille 3, Excel, ne recherche toujours
pas la date qui est inscrite en B27 de la feuille 2.

Je continue à chercher... Peut-être que si je formate tout enm
texte.... J'essaie et reviens...

Merci encore Denis

Denys



Bonjour Denys,

Si tu as quelques minutes, tu iras voir cet article sur la fonction Find
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate

Pour faire une histoire courte, si ta plage de cellules où tu recherches
les dates n'émanent pas de formules, utilise ceci :

J'ai remplacé Xlvalues par XlFormulas
Remplace Nom par soit la cellule qui contient la date (avec la référe nce
à la feuille à laquelle elle appartient)
Set c = .Find(What:=Nom, After:=Range("C3"), LookIn:=xlFormulas)

Est-ce que ça va ?




Avatar
MichDenis
En supposant qu'il n'y a pas de formules dans ta plage où tu recherches une date:

Ceci devrait fonctionner si la date recherchée est dans la feuille1
'-----------------------
Dim F as range
With Worksheets("Feuil1")
Set F = .Cells.Find(What:=.Range("A1"), after:=.Range("c3"), _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlNext)
If Not F is Nothing then
MsgBox F.Row
Else
Msgbox "Pas trouvé."
End if
End With
'-----------------------

Si la date n'est pas dans la même feuille, tu peux utiliser une variable
Dim D as Date
D = worksheets("NomDeLaFeuille").range("G25")
Et remplacer dans la fonction .Range("A1") par D




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

Bonjour Denis,

Excellent article merci bien..... Sauf que j'ai beau changer xlValues
pour xlFormulas, rien n'y fait..... J'ai copié/collé en valeurs les
dates inscrites en C4:BF4 de la feuille 3, Excel, ne recherche toujours
pas la date qui est inscrite en B27 de la feuille 2.

Je continue à chercher... Peut-être que si je formate tout enm
texte.... J'essaie et reviens...

Merci encore Denis

Denys



Bonjour Denys,

Si tu as quelques minutes, tu iras voir cet article sur la fonction Find
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate

Pour faire une histoire courte, si ta plage de cellules où tu recherches
les dates n'émanent pas de formules, utilise ceci :

J'ai remplacé Xlvalues par XlFormulas
Remplace Nom par soit la cellule qui contient la date (avec la référence
à la feuille à laquelle elle appartient)
Set c = .Find(What:=Nom, After:=Range("C3"), LookIn:=xlFormulas)

Est-ce que ça va ?




Avatar
Denys
Bonjour Denis,

Maintenant, ça fonctionne parfaitement bien...... C'est un peu
choquant, d'autant plus que je suis pas sûr de vraiment comprendre
pourquoi.... Je me suis fait parvenir le lien que tu m'as proposé chez
moi..... Je vais regarder cela à tête reposée...

Merci infiniment ....encore une fois...

Denys



En supposant qu'il n'y a pas de formules dans ta plage où tu recherches une date:

Ceci devrait fonctionner si la date recherchée est dans la feuille1
'-----------------------
Dim F as range
With Worksheets("Feuil1")
Set F = .Cells.Find(What:=.Range("A1"), after:=.Range("c3"), _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection: =xlNext)
If Not F is Nothing then
MsgBox F.Row
Else
Msgbox "Pas trouvé."
End if
End With
'-----------------------

Si la date n'est pas dans la même feuille, tu peux utiliser une variable
Dim D as Date
D = worksheets("NomDeLaFeuille").range("G25")
Et remplacer dans la fonction .Range("A1") par D




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

Bonjour Denis,

Excellent article merci bien..... Sauf que j'ai beau changer xlValues
pour xlFormulas, rien n'y fait..... J'ai copié/collé en valeurs les
dates inscrites en C4:BF4 de la feuille 3, Excel, ne recherche toujours
pas la date qui est inscrite en B27 de la feuille 2.

Je continue à chercher... Peut-être que si je formate tout enm
texte.... J'essaie et reviens...

Merci encore Denis

Denys



Bonjour Denys,

Si tu as quelques minutes, tu iras voir cet article sur la fonction Find
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate

Pour faire une histoire courte, si ta plage de cellules où tu recherc hes
les dates n'émanent pas de formules, utilise ceci :

J'ai remplacé Xlvalues par XlFormulas
Remplace Nom par soit la cellule qui contient la date (avec la réfé rence
à la feuille à laquelle elle appartient)
Set c = .Find(What:=Nom, After:=Range("C3"), LookIn:=xlFormula s)

Est-ce que ça va ?